mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 02:00:12 +01:00
brw: fix shuffle with scalar/uniform index
The fixes commit isn't actually the source of the bug but likely the
biggest enabler because it creates scalar values that more easily end
up in the shuffle operations.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 1b24612c57 ("brw/nir: Treat load_*_uniform_block_intel as convergent")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12927
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12688
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12570
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12905
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12734
Reviewed-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34393>
This commit is contained in:
parent
610ad8d378
commit
19e4dda9a2
1 changed files with 2 additions and 1 deletions
|
|
@ -379,7 +379,8 @@ brw_generator::generate_shuffle(brw_inst *inst,
|
|||
/* We use VxH indirect addressing, clobbering a0.0 through a0.7. */
|
||||
struct brw_reg addr = vec8(brw_address_reg(0));
|
||||
|
||||
struct brw_reg group_idx = suboffset(idx, group);
|
||||
struct brw_reg group_idx = idx.is_scalar || is_uniform(idx) ?
|
||||
component(idx, 0) : suboffset(idx, group);
|
||||
|
||||
if (lower_width == 8 && group_idx.width == BRW_WIDTH_16) {
|
||||
/* Things get grumpy if the register is too wide. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue