vkd3d-shader/hlsl: Output sm1 semantics with unique register_index values.

Match the register_index values from the d3dbc reader.
This commit is contained in:
Elizabeth Figura
2025-06-23 20:12:23 -05:00
committed by Henri Verbeet
parent 41cacba5ce
commit ecb19b33ba
Notes: Henri Verbeet 2025-06-25 17:08:41 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1597
2 changed files with 19 additions and 1 deletions

View File

@@ -2076,6 +2076,13 @@ static void d3dbc_write_semantic_dcl(struct d3dbc_compiler *d3dbc,
VKD3D_ASSERT(ret);
reg.reg.type = output ? VKD3DSPR_OUTPUT : VKD3DSPR_INPUT;
reg.reg.idx[0].offset = element->register_index;
if (!vkd3d_shader_ver_ge(version, 3, 0))
{
if (reg.reg.idx[0].offset > SM1_RASTOUT_REGISTER_OFFSET)
reg.reg.idx[0].offset -= SM1_RASTOUT_REGISTER_OFFSET;
else if (reg.reg.idx[0].offset > SM1_COLOR_REGISTER_OFFSET)
reg.reg.idx[0].offset -= SM1_COLOR_REGISTER_OFFSET;
}
}
token = VKD3D_SM1_OP_DCL;