mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
ir3/parser: Make sure relative accesses have a size set.
This will avoid assertion failures about a size==0 in the upcoming change to regmask bitset handling, when collect_info() usees them to track references into the current alias table. We know that relative accesses won't go to the alias table, but that code doesn't. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37777>
This commit is contained in:
parent
30b7772ae4
commit
aa85e3331f
1 changed files with 14 additions and 0 deletions
|
|
@ -173,6 +173,13 @@ new_src(int num, unsigned flags)
|
|||
flags |= IR3_REG_HALF;
|
||||
reg = ir3_src_create(instr, num >> 1, flags);
|
||||
reg->wrmask = MAX2(1, rflags.wrmask);
|
||||
/* Make sure that relative reads have a size as required, so that
|
||||
* aliasing-related regmask checks in collect_info() aren't surprised by
|
||||
* 0-length arrays. We don't need a proper size, because aliases will
|
||||
* never be indirectly referenced, anyway.
|
||||
*/
|
||||
if (flags & IR3_REG_RELATIV)
|
||||
reg->size = 1;
|
||||
rflags.flags = rflags.wrmask = 0;
|
||||
return reg;
|
||||
}
|
||||
|
|
@ -186,6 +193,13 @@ new_dst(int num, unsigned flags)
|
|||
flags |= IR3_REG_HALF;
|
||||
reg = ir3_dst_create(instr, num >> 1, flags);
|
||||
reg->wrmask = MAX2(1, rflags.wrmask);
|
||||
/* Make sure that relative writes have a size as required, so that
|
||||
* aliasing-related regmask checks in collect_info() aren't surprised by
|
||||
* 0-length arrays. We don't need a proper size, because aliases will
|
||||
* never be indirectly referenced, anyway.
|
||||
*/
|
||||
if (flags & IR3_REG_RELATIV)
|
||||
reg->size = 1;
|
||||
rflags.flags = rflags.wrmask = 0;
|
||||
return reg;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue