Module: Mesa Branch: main Commit: 7aec8db161931d8b8e1e7eca703a3cac34f56830 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7aec8db161931d8b8e1e7eca703a3cac34f56830
Author: Jason Ekstrand <[email protected]> Date: Mon May 9 15:24:46 2022 -0500 midgard: Handle FB fetch from non-vec4 output variables. Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309> --- src/panfrost/util/pan_lower_framebuffer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/panfrost/util/pan_lower_framebuffer.c b/src/panfrost/util/pan_lower_framebuffer.c index 7f0de066eec..80a88f636ae 100644 --- a/src/panfrost/util/pan_lower_framebuffer.c +++ b/src/panfrost/util/pan_lower_framebuffer.c @@ -489,7 +489,9 @@ pan_lower_fb_store(nir_shader *shader, bool reorder_comps) { /* For stores, add conversion before */ - nir_ssa_def *unpacked = nir_ssa_for_src(b, intr->src[1], 4); + nir_ssa_def *unpacked = + nir_ssa_for_src(b, intr->src[1], intr->num_components); + unpacked = nir_pad_vec4(b, unpacked); /* Re-order the components */ if (reorder_comps) @@ -539,7 +541,7 @@ pan_lower_fb_load(nir_shader *shader, pan_unpacked_type_for_format(desc)); unpacked = nir_convert_to_bit_size(b, unpacked, src_type, bits); - unpacked = nir_pad_vector(b, unpacked, nir_dest_num_components(intr->dest)); + unpacked = nir_resize_vector(b, unpacked, intr->dest.ssa.num_components); /* Reorder the components */ if (reorder_comps)
