Mesa (staging/21.2): pan/bi: Extract load_sample_id to a helper

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 23 17:44:11 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: 0dc054e58f94b1e7d4b6448cf2a8854d41bb2544
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0dc054e58f94b1e7d4b6448cf2a8854d41bb2544

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Wed Aug 18 22:07:50 2021 +0000

pan/bi: Extract load_sample_id to a helper

Will be reused in the next commit.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 9f19a883bc536374d38f295f26eadeb3e1a56d47)

---

 .pick_status.json                      |  2 +-
 src/panfrost/bifrost/bifrost_compile.c | 21 +++++++++++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index cc6fbdb3db9..d57aef204b0 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -292,7 +292,7 @@
         "description": "pan/bi: Extract load_sample_id to a helper",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c
index 74639ff7d6b..457916591c6 100644
--- a/src/panfrost/bifrost/bifrost_compile.c
+++ b/src/panfrost/bifrost/bifrost_compile.c
@@ -414,6 +414,17 @@ bi_load_sysval(bi_builder *b, int sysval,
         return tmp;
 }
 
+static void
+bi_load_sample_id_to(bi_builder *b, bi_index dst)
+{
+        /* r61[16:23] contains the sampleID, mask it out. Upper bits
+         * seem to read garbage (despite being architecturally defined
+         * as zero), so use a 5-bit mask instead of 8-bits */
+
+        bi_rshift_and_i32_to(b, dst, bi_register(61), bi_imm_u32(0x1f),
+                                bi_imm_u8(16));
+}
+
 static void
 bi_emit_load_blend_input(bi_builder *b, nir_intrinsic_instr *instr)
 {
@@ -1266,15 +1277,9 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr)
                 bi_u16_to_u32_to(b, dst, bi_half(bi_register(61), false));
                 break;
 
-        case nir_intrinsic_load_sample_id: {
-                /* r61[16:23] contains the sampleID, mask it out. Upper bits
-                 * seem to read garbage (despite being architecturally defined
-                 * as zero), so use a 5-bit mask instead of 8-bits */
-
-                bi_rshift_and_i32_to(b, dst, bi_register(61), bi_imm_u32(0x1f),
-                                bi_imm_u8(16));
+        case nir_intrinsic_load_sample_id:
+                bi_load_sample_id_to(b, dst);
                 break;
-        }
 
 	case nir_intrinsic_load_front_face:
                 /* r58 == 0 means primitive is front facing */



More information about the mesa-commit mailing list