Mesa (main): pan/mdg: Scalarize with 64-bit sources

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 1 19:43:04 UTC 2022


Module: Mesa
Branch: main
Commit: 9e4b45795866547a5debecd122d6e72af6a9c603
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e4b45795866547a5debecd122d6e72af6a9c603

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Thu May 19 12:29:01 2022 -0400

pan/mdg: Scalarize with 64-bit sources

Otherwise, we can get vec3 with u2u32 with 64-bit sources which we need lowered.
Since our current approach is "scalarize all 64-bit ops", we need to check for
conversions too.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16798>

---

 src/panfrost/ci/panfrost-t860-fails.txt | 2 --
 src/panfrost/midgard/midgard_compile.c  | 3 +++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/panfrost/ci/panfrost-t860-fails.txt b/src/panfrost/ci/panfrost-t860-fails.txt
index c05cbd19824..aa6c90151bd 100644
--- a/src/panfrost/ci/panfrost-t860-fails.txt
+++ b/src/panfrost/ci/panfrost-t860-fails.txt
@@ -88,7 +88,5 @@ dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_uint_2d_array,F
 dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_int_2d,Fail
 dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_int_2d_array,Fail
 
-dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec3_highp_compute,Fail
-dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec3_highp_compute,Fail
 dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec4_highp_vertex,Fail
 dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec4_highp_vertex,Fail
diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index 3c17819750c..2874e49ff2c 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -287,6 +287,9 @@ mdg_should_scalarize(const nir_instr *instr, const void *_unused)
 {
         const nir_alu_instr *alu = nir_instr_as_alu(instr);
 
+        if (nir_src_bit_size(alu->src[0].src) == 64)
+                return true;
+
         if (nir_dest_bit_size(alu->dest.dest) == 64)
                 return true;
 



More information about the mesa-commit mailing list