From d40422592ab12f224a14ae001ce8feea162d0985 Mon Sep 17 00:00:00 2001 From: Elizabeth Figura Date: Mon, 12 May 2025 14:08:40 -0500 Subject: [PATCH] vkd3d-shader/ir: Merge tess factor used masks together. Encountered with the domain shader in test_domain_shader_one_patch_constant_input(). --- libs/vkd3d-shader/ir.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 4101e92e9..859f506a3 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -2048,23 +2048,27 @@ static enum vkd3d_result shader_signature_map_patch_constant_index_ranges(struct for (i = 0; i < s->element_count; i += register_count) { + uint32_t used_mask; + e = &s->elements[i]; register_count = 1; if (!e->sysval_semantic) continue; + used_mask = e->used_mask; for (j = i + 1; j < s->element_count; ++j, ++register_count) { f = &s->elements[j]; if (f->register_index != e->register_index + register_count || !sysval_semantics_should_merge(e, f)) break; + used_mask |= f->used_mask; } if (register_count < 2) continue; if ((ret = range_map_set_register_range(normaliser, range_map, - e->register_index, register_count, e->mask, e->used_mask, false)) < 0) + e->register_index, register_count, e->mask, used_mask, false)) < 0) return ret; }