vkd3d-shader/glsl: Invert gl_FragCoord w.

This commit is contained in:
Elizabeth Figura 2025-03-24 16:20:25 -05:00 committed by Henri Verbeet
parent 4b9c23272a
commit 33cd10581e
Notes: Henri Verbeet 2025-04-02 19:44:16 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1441
3 changed files with 34 additions and 1 deletions

View File

@ -200,6 +200,7 @@ vkd3d_shader_tests = \
tests/hlsl/object-parameters.shader_test \
tests/hlsl/object-references.shader_test \
tests/hlsl/patch-syntax.shader_test \
tests/hlsl/pixel-position.shader_test \
tests/hlsl/point-sprite.shader_test \
tests/hlsl/pointer-cast.shader_test \
tests/hlsl/pow.shader_test \

View File

@ -1296,7 +1296,7 @@ static void shader_glsl_print_sysval_name(struct vkd3d_string_buffer *buffer, st
vkd3d_glsl_compiler_error(gen, VKD3D_SHADER_ERROR_GLSL_INTERNAL,
"Internal compiler error: Unhandled SV_POSITION index %u.", idx);
if (version->type == VKD3D_SHADER_TYPE_PIXEL)
vkd3d_string_buffer_printf(buffer, "gl_FragCoord");
vkd3d_string_buffer_printf(buffer, "vec4(gl_FragCoord.xyz, 1.0 / gl_FragCoord.w)");
else
vkd3d_string_buffer_printf(buffer, "gl_Position");
break;

View File

@ -0,0 +1,32 @@
[vb 0]
-1.0 -1.0 0.1 1.2
-1.0 1.0 0.1 2.0
1.0 -1.0 0.7 1.2
1.0 1.0 0.7 2.0
[input layout]
0 r32g32b32a32-float POSITION
[vertex shader]
float4 main(float4 pos : POSITION) : sv_position
{
return pos;
}
[pixel shader fail(sm<4) todo(sm<4)]
float4 main(float4 pos : sv_position) : sv_target
{
return pos;
}
[test]
clear rtv 0 0.0 0.0 0.0 0.0
todo(msl) draw triangle strip 4
probe ( 80, 140) rgba( 0.0, 0.0, 0.0, 0.0)
probe ( 80, 420) rgba( 80.5, 420.5, 0.100678146, 1.229981) 192
probe (180, 140) rgba(180.5, 140.5, 0.077760354, 1.918082) 192
probe (180, 420) rgba(180.5, 420.5, 0.194427669, 1.229981) 192
probe (460, 140) rgba(460.5, 140.5, 0.340260297, 1.918082) 192
probe (460, 420) rgba(460.5, 420.5, 0.456926346, 1.229981) 192
probe (560, 140) rgba( 0.0, 0.0, 0.0, 0.0)
probe (560, 420) rgba(560.5, 420.5, 0.550675929, 1.229981) 192