vkd3d-shader/msl: Implement support for VKD3DSPR_UNDEF registers.

MSL doesn't seem to have any special handling for undefined values,
differently from SPIR-V. Thus we just emit zeros.

UNDEF registers are sometimes created by the DXIL parser,
for example in sm6_parser_emit_composite_construct().
This commit is contained in:
Giovanni Mascellani
2025-10-20 22:04:46 +02:00
committed by Henri Verbeet
parent eaabd2ffd7
commit cc1db404b0
Notes: Henri Verbeet 2025-10-30 20:00:07 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1757
10 changed files with 125 additions and 135 deletions

View File

@@ -73,12 +73,11 @@ float4 main(float4 pos : sv_position) : sv_target
}
[test]
todo(msl & sm>=6) draw quad
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8)
probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1)
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
draw quad
probe (0, 0) f32(0.1, 0.2, 0.3, 0.4)
probe (1, 0) f32(0.5, 0.7, 0.6, 0.8)
probe (0, 1) f32(0.6, 0.5, 0.2, 0.1)
probe (1, 1) f32(0.8, 0.0, 0.7, 1.0)
[srv 0]
size (2d, 1, 1)
@@ -111,9 +110,8 @@ float4 main() : sv_target
}
[test]
todo(mvk & sm>=6 | msl & sm>=6) draw quad
probe (0, 0) rgba (312, 312, 312, 111)
todo(mvk & sm>=6) draw quad
probe (0, 0) f32(312, 312, 312, 111)
[pixel shader]
Texture2D tex1;
@@ -134,9 +132,8 @@ float4 main() : sv_target
}
[test]
todo(msl & sm>=6) draw quad
probe (0, 0) rgba (2132, 2132, 2132, 1111)
draw quad
probe (0, 0) f32(2132, 2132, 2132, 1111)
[pixel shader fail(sm<6) todo(sm>=5.1)]
Texture2D tex[3];