Mesa (main): pan/mdg: Model zero/sign extension for 8/16-bit loads
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Feb 18 15:28:39 UTC 2022
Module: Mesa
Branch: main
Commit: 8d949ecd3ae58d8e8975de698b5b49529038ebaf
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d949ecd3ae58d8e8975de698b5b49529038ebaf
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Fri Feb 4 17:36:27 2022 -0500
pan/mdg: Model zero/sign extension for 8/16-bit loads
The destinations are packed as if 32-bit even for 8/16-bit loads, so the mask
needs to be constructed accordingly.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14888>
---
src/panfrost/midgard/midgard_compile.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index 793612b7131..4dabf8bf9a4 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -1199,7 +1199,9 @@ mir_set_intr_mask(nir_instr *instr, midgard_instruction *ins, bool is_read)
if (is_read) {
nir_mask = mask_of(nir_intrinsic_dest_components(intr));
- dsize = nir_dest_bit_size(intr->dest);
+
+ /* Extension is mandatory for 8/16-bit loads */
+ dsize = nir_dest_bit_size(intr->dest) == 64 ? 64 : 32;
} else {
nir_mask = nir_intrinsic_write_mask(intr);
dsize = OP_IS_COMMON_STORE(ins->op) ?
More information about the mesa-commit
mailing list