vkd3d-shader/hlsl: Allocate return variables before other outputs.

point-sprite.shader_test is not technically well formed since, in SM4,
the vertex output signature should be:

// Output signature:
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// sv_position              0   xyzw        0      POS   float   xyzw
// texcoord                 0   xy          1     NONE   float   xy

and the pixel input signature should be:

// Input signature:
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// texcoord                 0   xy          0     NONE   float   xy

so we are not passing "texcoord" properly to the pixel shader, even on
Windows.
This commit is contained in:
Francisco Casas
2025-06-18 14:59:01 -04:00
committed by Henri Verbeet
parent e0359c5299
commit 2e0cbff3a0
Notes: Henri Verbeet 2025-06-23 20:18:28 +02:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1578
3 changed files with 23 additions and 19 deletions

View File

@@ -39,4 +39,4 @@ float4 main(float cc : SEMC, float aa : SEMA, float bb[2] : SEMB) : sv_target
[test]
bug(mvk & sm>=6) draw quad
todo(sm<6) probe (0, 0) f32(300, 100, 200, 201)
probe (0, 0) f32(300, 100, 200, 201)