tests: Add some tests for HLSL attribute syntax.

This commit is contained in:
Zebediah Figura
2021-08-16 12:25:41 -05:00
committed by Alexandre Julliard
parent 4d17758657
commit c0782a9029
Notes: Alexandre Julliard 2022-11-08 23:05:16 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/43
4 changed files with 333 additions and 0 deletions

View File

@ -0,0 +1,120 @@
% Test HLSL attribute syntax. The compiler ignores unrecognized attributes, so
% we need to get the parsing syntax right. Most of the following tests which
% succeed print warnings.
[pixel shader todo]
[numthreads]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[ numthreads ]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[numthreads(1)]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[numthreads("")]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[numthreads("one")]
float4 main() : sv_target { return 0; }
[pixel shader todo]
uniform float4 f;
[numthreads(1, "one", 3 + 9, -9.8e4, -float2(1, 2), f)]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[numthreads()]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[numthreads(1,)]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[numthreads(f)]
float4 main() : sv_target { return 0; }
[pixel shader fail]
/* Test an invalid constructor. */
[numthreads(float2(1))]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[not_a_real_attribute_name]
float4 main() : sv_target { return 0; }
[pixel shader todo]
uniform float4 f;
[f]
float4 main() : sv_target { return 0; }
[pixel shader fail]
% This is valid IDL syntax, but not HLSL.
[one, two]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[one][two]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[one][one]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[one][one(1)]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[one][One]
float4 main() : sv_target { return 0; }
[pixel shader todo]
[numthreads]
float4 main();
[numthreads]
float4 main() : sv_target { return 0; }
[pixel shader todo]
/* Expressions with side effects are forbidden in attributes—see
* hlsl-numthreads.shader_test for an example—but not if the attribute is
* ignored. */
static int i = 1;
[one(i++)]
[two(++i)]
[three(i = 4)]
float4 main() : sv_target { return 0; }
[pixel shader fail]
[one]
float4 f;
float4 main() : sv_target { return 0; }