Half globals are legal with the backwards-compatibility flag, though. Which is not to say that 1/8 is wrong as is, but maybe we should add a test to half.shader_test.
Good point, fixed (together with the CI failure, related to the SM6 parser).
Wrt 3/8 and 6/8, should we instead skip resource directives if we're under a [require] directive?
Yeah, it makes sense. Done.
Wrt 8/8, do you know where it crashes? d3dcompiler_47 here seems perfectly capable of compiling both of those shaders.
Yes, I don't think the problem is compilation. However, I found it pretty hard to collect more information: I couldn't reproduce the crash on my own virtual machine (only on the CI), even on the CI it is not deterministic (sometimes it passes) and, unfortunately, I can't collect any stdout/stderr from a process that crashes, I don't know why. I tried setting line buffering, but it didn't help. I didn't want to waste too much time on this minor case, so I just cut it short.