mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
tests: Add some tests for HLSL attribute syntax.
This commit is contained in:
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
120
tests/hlsl-attributes.shader_test
Normal file
120
tests/hlsl-attributes.shader_test
Normal 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; }
|
Reference in New Issue
Block a user