From 507990d3c5a7b61ad5df63a17bbd122d8dc7e2e3 Mon Sep 17 00:00:00 2001 From: Elizabeth Figura Date: Tue, 14 Oct 2025 15:28:26 -0500 Subject: [PATCH] vkd3d-shader/d3dbc: Fix writing vertex input semantics. --- libs/vkd3d-shader/d3dbc.c | 6 +++--- tests/hlsl/many-semantics.shader_test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d-shader/d3dbc.c b/libs/vkd3d-shader/d3dbc.c index 52554cfcb..87a7d48ac 100644 --- a/libs/vkd3d-shader/d3dbc.c +++ b/libs/vkd3d-shader/d3dbc.c @@ -2174,11 +2174,11 @@ 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 ((version->type == VKD3D_SHADER_TYPE_PIXEL || output) && !vkd3d_shader_ver_ge(version, 3, 0)) { - if (reg.reg.idx[0].offset > SM1_RASTOUT_REGISTER_OFFSET) + 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) + else if (reg.reg.idx[0].offset >= SM1_COLOR_REGISTER_OFFSET) reg.reg.idx[0].offset -= SM1_COLOR_REGISTER_OFFSET; } } diff --git a/tests/hlsl/many-semantics.shader_test b/tests/hlsl/many-semantics.shader_test index d296637fd..8ff4de188 100644 --- a/tests/hlsl/many-semantics.shader_test +++ b/tests/hlsl/many-semantics.shader_test @@ -33,5 +33,5 @@ float4 main(float color[2] : color, float texcoord[8] : texcoord) : sv_target } [test] -todo(sm<4 | msl & sm>=6) draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0,0) f32(.65, .86, .37, .48) 1