mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
nir: fix a bug with constant folding non-per-component instructions
Before, we were only copying the first N channels, where N is the size of the SSA destination, which is fine for per-component instructions, but non-per-component instructions like fdot3 can have more source components than destination components. Fix this using the helper function introduced in the last patch. v2: use new helper name Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
parent
816f0515a2
commit
f1a9252def
1 changed files with 2 additions and 1 deletions
|
|
@ -56,7 +56,8 @@ constant_fold_alu_instr(nir_alu_instr *instr, void *mem_ctx)
|
|||
return false;
|
||||
nir_load_const_instr* load_const = nir_instr_as_load_const(src_instr);
|
||||
|
||||
for (unsigned j = 0; j < instr->dest.dest.ssa.num_components; j++) {
|
||||
for (unsigned j = 0; j < nir_ssa_alu_instr_src_components(instr, i);
|
||||
j++) {
|
||||
src[i].u[j] = load_const->value.u[instr->src[i].swizzle[j]];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue