From 459f141e812c64b3b6c96dbe2807ce4c043244bb Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 2 May 2024 00:33:15 +0200 Subject: [PATCH] vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_Z. --- libs/vkd3d-shader/glsl.c | 3 +++ tests/hlsl/d3dcolor-to-ubyte4.shader_test | 4 ++-- tests/hlsl/trunc.shader_test | 8 ++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index a8cc6d87..634ec24a 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -718,6 +718,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen, case VKD3DSIH_ROUND_PI: shader_glsl_intrinsic(gen, ins, "ceil"); break; + case VKD3DSIH_ROUND_Z: + shader_glsl_intrinsic(gen, ins, "trunc"); + break; default: shader_glsl_unhandled(gen, ins); break; diff --git a/tests/hlsl/d3dcolor-to-ubyte4.shader_test b/tests/hlsl/d3dcolor-to-ubyte4.shader_test index 4fa95663..3d4b59d7 100644 --- a/tests/hlsl/d3dcolor-to-ubyte4.shader_test +++ b/tests/hlsl/d3dcolor-to-ubyte4.shader_test @@ -11,7 +11,7 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (1912.0, 1657.0, -127.0, 867.0) 1 [pixel shader] @@ -24,5 +24,5 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (-127.0, -127.0, -127.0, -127.0) 1 diff --git a/tests/hlsl/trunc.shader_test b/tests/hlsl/trunc.shader_test index 5e3ebd41..9568023f 100644 --- a/tests/hlsl/trunc.shader_test +++ b/tests/hlsl/trunc.shader_test @@ -8,10 +8,10 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (0.0, 6.0, 7.0, 3.0) uniform 0 float4 -1.5 6.5 7.5 3.4 -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (-1.0, 6.0, 7.0, 3.0) [pixel shader todo(sm<4)] @@ -27,7 +27,7 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (6.0, 7.0, 0.0, 3.0) @@ -45,5 +45,5 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 -1 6 7 3 if(sm>=4) uniform 0 int4 -1 6 7 3 -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (6.0, 7.0, -1.0, 3.0)