vkd3d-shader/dxil: Shift register write masks by the component index in sm6_parser_emit_dx_store_output().

To account for the change we made in commit
c571a45e65 on the SPIR-V side.
This commit is contained in:
Henri Verbeet 2024-10-09 15:21:00 +02:00
parent 2d848cf001
commit 90616be301
Notes: Henri Verbeet 2024-10-15 17:04:38 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1180
2 changed files with 3 additions and 1 deletions

View File

@ -5872,6 +5872,8 @@ static void sm6_parser_emit_dx_store_output(struct sm6_parser *sm6, enum dx_intr
return;
}
e = &signature->elements[row_index];
if (!e->sysval_semantic)
column_index += vsir_write_mask_get_component_idx(e->mask);
if (column_index >= VKD3D_VEC4_SIZE)
{

View File

@ -15,7 +15,7 @@ float4 main(float2 color_xy : COLOR0, float2 color_zw : COLOR1) : SV_TARGET
[test]
draw quad
todo(sm>=6) probe(320, 240) rgba(0.25, 0.5, 0.75, 1.0)
probe(320, 240) rgba(0.25, 0.5, 0.75, 1.0)
% Test handling of arrays in interface blocks