diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index eb04d9022..aac7d5507 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -1635,6 +1635,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen, case VSIR_OP_RSQ: shader_glsl_intrinsic(gen, ins, "inversesqrt"); break; + case VSIR_OP_SIN: + shader_glsl_intrinsic(gen, ins, "sin"); + break; case VSIR_OP_SQRT: shader_glsl_intrinsic(gen, ins, "sqrt"); break; diff --git a/tests/hlsl/trigonometry.shader_test b/tests/hlsl/trigonometry.shader_test index e9c560bf7..e7e020305 100644 --- a/tests/hlsl/trigonometry.shader_test +++ b/tests/hlsl/trigonometry.shader_test @@ -13,7 +13,7 @@ float4 main(float tex : texcoord) : sv_target } [test] -todo(glsl | msl) draw quad +todo(msl) draw quad probe ( 0, 0) rgba ( 0.00000000, 1.00000000, 0.00000000, 0.0) probe ( 1, 0) rgba ( 0.84147098, 0.54030231, 1.55740772, 0.0) 1024 probe ( 2, 0) rgba ( 0.90929743, -0.41614684, -2.18503986, 0.0) 1024 @@ -42,7 +42,7 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 0.52359877 2.61799387 3.14159265 -todo(glsl | msl) draw quad +todo(msl) draw quad probe (0, 0) rgba (0.0, 500.0, 500.0, 0.0) @@ -72,7 +72,7 @@ float4 main() : sv_target % tan(pi/2) is an asymtote and therefore undefined % so check 0, pi/4, 3pi/4, pi uniform 0 float4 0.0 0.78539816 2.35619449 3.14159265 -todo(glsl | msl) draw quad +todo(msl) draw quad probe (0, 0) rgba (0, 1000, -1000.0, 0) @@ -140,10 +140,10 @@ float4 main() : sv_target [test] uniform 0 float4 7.604 0 0 0 -todo(glsl | msl) draw quad +todo(msl) draw quad probe (0, 0) rgba (0.968916833, 0.2473865, 0, 0) 1024 uniform 0 float4 -10.0 0 0 0 -todo(glsl | msl) draw quad +todo(msl) draw quad probe (0, 0) rgba (0.544020891, -0.839071631, 0.0, 0.0) 1024 [pixel shader fail] @@ -171,5 +171,5 @@ float4 main() : sv_target } [test] -todo(glsl | msl & sm<6) draw quad +todo(msl & sm<6) draw quad probe (0, 0) rgba (0, 0, 0, 0);