mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/ir: Merge tess factor used masks together.
Encountered with the domain shader in test_domain_shader_one_patch_constant_input().
This commit is contained in:
committed by
Henri Verbeet
parent
d4032f7d09
commit
d40422592a
Notes:
Henri Verbeet
2025-05-14 15:26:55 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1493
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user