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

@@ -619,9 +619,8 @@ float4 main() : sv_target
}
[test]
todo(msl & sm>=6) draw quad
probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0)
draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
% Samplers cannot have packoffset(), unless register() is also specified, or they are not used.
% Note: In SM1 the rules are different: packoffset() is allowed for samplers, but they cannot be
@@ -850,8 +849,8 @@ uniform 4 float4 4.0 5.0 6.0 7.0
uniform 8 float4 8.0 9.0 10.0 11.0
uniform 12 float4 12.0 13.0 14.0 15.0
uniform 16 float4 16.0 17.0 18.0 19.0
todo(msl & sm>=6) draw quad
probe (0, 0) rgba (124.0, 135.0, 146.0, 150.5)
draw quad
probe (0, 0) f32(124.0, 135.0, 146.0, 150.5)
[require]
shader model >= 5.1