Giovanni Mascellani (@giomasce) commented about tests/hlsl/register-reservations-numeric.shader_test:
+% Results differ between SM1 and SM4 because in the latter variables can share the same register, +% using different writemasks. +[require] +shader model < 4.0
+[pixel shader] +struct +{
- float2 a;
- float b;
+} apple : register(c2);
+float4 main() : sv_target +{
- return float4(apple.a, apple.b, 0);
+}
I think that by moving this code above `[require]` you don't have to set it again below.