diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index 9bceaae4..1349a624 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -836,6 +836,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen, case VKD3DSIH_ROUND_Z: shader_glsl_intrinsic(gen, ins, "trunc"); break; + case VKD3DSIH_RSQ: + shader_glsl_intrinsic(gen, ins, "inversesqrt"); + break; case VKD3DSIH_SQRT: shader_glsl_intrinsic(gen, ins, "sqrt"); break; diff --git a/tests/hlsl/normalize.shader_test b/tests/hlsl/normalize.shader_test index 6b007c78..18815c93 100644 --- a/tests/hlsl/normalize.shader_test +++ b/tests/hlsl/normalize.shader_test @@ -8,7 +8,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 4.0 5.0 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (0.272165537, 0.408248305, 0.544331074, 0.680413842) 2 [pixel shader] @@ -21,7 +21,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 4.0 0.0 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (0.371390700, 0.557086051, 0.742781401, 0.0) 1 [pixel shader] @@ -34,7 +34,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 3.0 0.0 0.0 -todo(sm<4 | glsl) draw quad +todo(sm<4) draw quad probe (0, 0) rgba (0.554700196, 0.832050323, 0.0, 0.0) 1 [pixel shader] @@ -47,7 +47,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 0.0 0.0 0.0 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [pixel shader] @@ -60,7 +60,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 2.0 0.0 0.0 0.0 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [pixel shader fail] diff --git a/tests/hlsl/sqrt.shader_test b/tests/hlsl/sqrt.shader_test index 73235886..d576bf17 100644 --- a/tests/hlsl/sqrt.shader_test +++ b/tests/hlsl/sqrt.shader_test @@ -21,5 +21,5 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 9.0 4.0 16.0 -todo(glsl) draw quad +draw quad probe (0, 0) rgba (1.0, 0.33333333, 0.5, 0.25) 1