vkd3d-shader/glsl: Implement VSIR_OP_DSX and VSIR_OP_DSY.

This commit is contained in:
Henri Verbeet
2024-11-21 02:01:38 +01:00
parent 4c91f4aa9e
commit 9609903770
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
3 changed files with 9 additions and 3 deletions

View File

@@ -1500,6 +1500,12 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *gen,
case VSIR_OP_DP4: case VSIR_OP_DP4:
shader_glsl_dot(gen, ins, VKD3DSP_WRITEMASK_ALL); shader_glsl_dot(gen, ins, VKD3DSP_WRITEMASK_ALL);
break; break;
case VSIR_OP_DSX:
shader_glsl_intrinsic(gen, ins, "dFdx");
break;
case VSIR_OP_DSY:
shader_glsl_intrinsic(gen, ins, "dFdy");
break;
case VSIR_OP_ELSE: case VSIR_OP_ELSE:
shader_glsl_else(gen, ins); shader_glsl_else(gen, ins);
break; break;

View File

@@ -8,7 +8,7 @@ float4 main(float4 pos : sv_position) : sv_target
} }
[test] [test]
todo(sm<4 | glsl) draw quad todo(sm<4) draw quad
probe (0, 0, 640, 480) rgba (1.0, 1.0, 0.0, 0.0) probe (0, 0, 640, 480) rgba (1.0, 1.0, 0.0, 0.0)
@@ -29,7 +29,7 @@ float4 main(float4 pos : sv_position) : sv_target
} }
[test] [test]
todo(sm<4 | glsl) draw quad todo(sm<4) draw quad
todo(sm<4) probe (10, 10) rgba (-16.0, -5.0, 3.0, 0.0) todo(sm<4) probe (10, 10) rgba (-16.0, -5.0, 3.0, 0.0)
todo(sm<4) probe (11, 10) rgba (-21.0, -5.0, 3.0, 0.0) todo(sm<4) probe (11, 10) rgba (-21.0, -5.0, 3.0, 0.0)
todo(sm<4) probe (10, 11) rgba (-13.0, -5.0, 3.0, 0.0) todo(sm<4) probe (10, 11) rgba (-13.0, -5.0, 3.0, 0.0)

View File

@@ -18,7 +18,7 @@ float4 main(float4 pos : sv_position) : sv_target
} }
[test] [test]
todo(sm<4 | glsl) draw quad todo(sm<4) draw quad
probe (10, 10) rgba (8.0, 8.0, 8.0, 8.0) probe (10, 10) rgba (8.0, 8.0, 8.0, 8.0)
probe (11, 10) rgba (8.0, 8.0, 8.0, 8.0) probe (11, 10) rgba (8.0, 8.0, 8.0, 8.0)
probe (12, 10) rgba (10.0, 10.0, 10.0, 10.0) probe (12, 10) rgba (10.0, 10.0, 10.0, 10.0)