-- v2: vkd3d-shader/dxil: Handle semantic kind ISFRONTFACE. vkd3d-shader/dxil: Handle semantic kind VERTEXID.
From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d-shader/dxil.c | 1 + tests/hlsl/nointerpolation.shader_test | 25 ++++++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 186460540..05ad6af00 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -5686,6 +5686,7 @@ static enum vkd3d_shader_minimum_precision minimum_precision_from_dxil_component static const enum vkd3d_shader_sysval_semantic sysval_semantic_table[] = { [SEMANTIC_KIND_ARBITRARY] = VKD3D_SHADER_SV_NONE, + [SEMANTIC_KIND_VERTEXID] = VKD3D_SHADER_SV_VERTEX_ID, [SEMANTIC_KIND_POSITION] = VKD3D_SHADER_SV_POSITION, [SEMANTIC_KIND_TARGET] = VKD3D_SHADER_SV_TARGET, }; diff --git a/tests/hlsl/nointerpolation.shader_test b/tests/hlsl/nointerpolation.shader_test index a3c9edfd1..ff9ecd004 100644 --- a/tests/hlsl/nointerpolation.shader_test +++ b/tests/hlsl/nointerpolation.shader_test @@ -23,7 +23,7 @@ float4 main(nointerpolation float4 t : texcoord) : sv_target }
[test] -todo(sm>=6) draw triangle list 3 +draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0)
[vertex shader] @@ -50,7 +50,7 @@ float4 main(ps_input input) : sv_target }
[test] -todo(sm>=6) draw triangle list 3 +draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0)
[vertex shader] @@ -77,7 +77,7 @@ float4 main(nointerpolation ps_input input) : sv_target }
[test] -todo(sm>=6) draw triangle list 3 +draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0)
[vertex shader] @@ -104,7 +104,7 @@ float4 main(centroid ps_input input) : sv_target }
[test] -todo(sm>=6) draw triangle list 3 +draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0)
[vertex shader] @@ -130,10 +130,25 @@ float4 main(nointerpolation ps_input input) : sv_target return input.t; }
+[require] +shader model < 6.0 + [test] -todo(sm>=6) draw triangle list 3 +draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0)
+% Centroid for SM 6. +[require] +shader model >= 6.0 + +[test] +draw triangle list 3 +probe (320,240) rgba (0.250390589, 0.499088615, 0.250520796, 1.0) 1 + +[require] +shader model >= 4.0 + + [vertex shader fail todo] struct ps_input {
From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d-shader/dxil.c | 1 + tests/hlsl/is-front-face.shader_test | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 05ad6af00..4d09b8c17 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -5688,6 +5688,7 @@ static const enum vkd3d_shader_sysval_semantic sysval_semantic_table[] = [SEMANTIC_KIND_ARBITRARY] = VKD3D_SHADER_SV_NONE, [SEMANTIC_KIND_VERTEXID] = VKD3D_SHADER_SV_VERTEX_ID, [SEMANTIC_KIND_POSITION] = VKD3D_SHADER_SV_POSITION, + [SEMANTIC_KIND_ISFRONTFACE] = VKD3D_SHADER_SV_IS_FRONT_FACE, [SEMANTIC_KIND_TARGET] = VKD3D_SHADER_SV_TARGET, };
diff --git a/tests/hlsl/is-front-face.shader_test b/tests/hlsl/is-front-face.shader_test index 162d4e634..11447d262 100644 --- a/tests/hlsl/is-front-face.shader_test +++ b/tests/hlsl/is-front-face.shader_test @@ -22,7 +22,7 @@ float4 main(bool face : sv_isfrontface) : sv_target }
[test] -todo(sm>=6) draw triangle strip 4 +draw triangle strip 4 probe all rgba (0.0, 1.0, 0.0, 1.0)
[vertex buffer 0] @@ -32,5 +32,5 @@ probe all rgba (0.0, 1.0, 0.0, 1.0) 2.0 2.0
[test] -todo(sm>=6) draw triangle strip 4 +draw triangle strip 4 probe all rgba (1.0, 2.0, 1.0, 2.0)