mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
pan/bi: Fix unpack_32_2x16 definition
This got messed up when scalarizing the IR. Fix the definition of the opcode to
return (instead of break, asserting out) and to respect the swizzle (instead of
failing validation). Noticed when bringing up OpenCL on Valhall.
Fixes: 5febeae58e ("pan/bi: Emit collect and split")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17222>
This commit is contained in:
parent
6ee9002ff6
commit
9bd7570e96
1 changed files with 10 additions and 3 deletions
|
|
@ -2318,9 +2318,16 @@ bi_emit_alu(bi_builder *b, nir_alu_instr *instr)
|
|||
case nir_op_vec16:
|
||||
unreachable("should've been lowered");
|
||||
|
||||
case nir_op_unpack_32_2x16:
|
||||
bi_mov_i32_to(b, dst, bi_src_index(&instr->src[0].src));
|
||||
break;
|
||||
case nir_op_unpack_32_2x16: {
|
||||
/* Should have been scalarized */
|
||||
assert(comps == 2 && sz == 16);
|
||||
|
||||
bi_index vec = bi_src_index(&instr->src[0].src);
|
||||
unsigned chan = instr->src[0].swizzle[0];
|
||||
|
||||
bi_mov_i32_to(b, dst, bi_extract(b, vec, chan));
|
||||
return;
|
||||
}
|
||||
|
||||
case nir_op_unpack_64_2x32_split_x:
|
||||
bi_mov_i32_to(b, dst, bi_extract(b, bi_src_index(&instr->src[0].src), 0));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue