mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
ac/nir/ngg: Fix packing 16-bit MS outputs.
Fixes: 9f36fba9be
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28765>
This commit is contained in:
parent
c6c9da0336
commit
65f5f1559f
1 changed files with 2 additions and 3 deletions
|
|
@ -3908,15 +3908,14 @@ ms_store_arrayed_output(nir_builder *b,
|
|||
}
|
||||
|
||||
u_foreach_bit(comp, write_mask_32) {
|
||||
nir_def *val = nir_channel(b, store_val, comp);
|
||||
unsigned idx = io_sem.location * 4 + comp + component_offset;
|
||||
nir_def *val = nir_channel(b, store_val, comp);
|
||||
nir_def *v = nir_load_var(b, s->out_variables[idx]);
|
||||
|
||||
if (lo_16b) {
|
||||
nir_def *v = nir_channel(b, nir_load_var(b, s->out_variables[idx]), comp + component_offset);
|
||||
nir_def *var_hi = nir_unpack_32_2x16_split_y(b, v);
|
||||
val = nir_pack_32_2x16_split(b, val, var_hi);
|
||||
} else if (hi_16b) {
|
||||
nir_def *v = nir_channel(b, nir_load_var(b, s->out_variables[idx]), comp + component_offset);
|
||||
nir_def *var_lo = nir_unpack_32_2x16_split_x(b, v);
|
||||
val = nir_pack_32_2x16_split(b, var_lo, val);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue