vkd3d-shader/glsl: Implement VSIR_OP_SIN.

This commit is contained in:
Henri Verbeet
2024-05-04 15:40:23 +02:00
parent ed438c1350
commit 86656b7544
Notes: Henri Verbeet 2025-08-28 20:32:38 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1696
2 changed files with 9 additions and 6 deletions

View File

@@ -1635,6 +1635,9 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen,
case VSIR_OP_RSQ: case VSIR_OP_RSQ:
shader_glsl_intrinsic(gen, ins, "inversesqrt"); shader_glsl_intrinsic(gen, ins, "inversesqrt");
break; break;
case VSIR_OP_SIN:
shader_glsl_intrinsic(gen, ins, "sin");
break;
case VSIR_OP_SQRT: case VSIR_OP_SQRT:
shader_glsl_intrinsic(gen, ins, "sqrt"); shader_glsl_intrinsic(gen, ins, "sqrt");
break; break;

View File

@@ -13,7 +13,7 @@ float4 main(float tex : texcoord) : sv_target
} }
[test] [test]
todo(glsl | msl) draw quad todo(msl) draw quad
probe ( 0, 0) rgba ( 0.00000000, 1.00000000, 0.00000000, 0.0) 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 ( 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 probe ( 2, 0) rgba ( 0.90929743, -0.41614684, -2.18503986, 0.0) 1024
@@ -42,7 +42,7 @@ float4 main() : sv_target
[test] [test]
uniform 0 float4 0.0 0.52359877 2.61799387 3.14159265 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) 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 % tan(pi/2) is an asymtote and therefore undefined
% so check 0, pi/4, 3pi/4, pi % so check 0, pi/4, 3pi/4, pi
uniform 0 float4 0.0 0.78539816 2.35619449 3.14159265 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) probe (0, 0) rgba (0, 1000, -1000.0, 0)
@@ -140,10 +140,10 @@ float4 main() : sv_target
[test] [test]
uniform 0 float4 7.604 0 0 0 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 probe (0, 0) rgba (0.968916833, 0.2473865, 0, 0) 1024
uniform 0 float4 -10.0 0 0 0 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 probe (0, 0) rgba (0.544020891, -0.839071631, 0.0, 0.0) 1024
[pixel shader fail] [pixel shader fail]
@@ -171,5 +171,5 @@ float4 main() : sv_target
} }
[test] [test]
todo(glsl | msl & sm<6) draw quad todo(msl & sm<6) draw quad
probe (0, 0) rgba (0, 0, 0, 0); probe (0, 0) rgba (0, 0, 0, 0);