Mesa (main): pan/bi: Use texture index instead of sampler for message preloading

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 2 13:10:27 UTC 2022


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

Author: Icecream95 <ixn at disroot.org>
Date:   Sat Apr 30 08:36:40 2022 +1200

pan/bi: Use texture index instead of sampler for message preloading

The VAR_TEX definition in ISA.xml only has a field for texture_index,
so trying to read sampler_index will return zero; read from
texture_index instead, and rename other fields for consistency.

The texture and sampler indices must be equal for VAR_TEX to be used,
so either name could be used for the field.

Fixes the wrong textures being used in Thief.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6219
Fixes: eb1479bda22 ("pan/bi: Support message preloading")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16255>

---

 src/panfrost/bifrost/bi_opt_message_preload.c | 2 +-
 src/panfrost/lib/genxml/v7.xml                | 2 +-
 src/panfrost/lib/pan_shader.h                 | 2 +-
 src/panfrost/util/pan_ir.h                    | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/panfrost/bifrost/bi_opt_message_preload.c b/src/panfrost/bifrost/bi_opt_message_preload.c
index e19eeb4b0ea..f890a45ecf3 100644
--- a/src/panfrost/bifrost/bi_opt_message_preload.c
+++ b/src/panfrost/bifrost/bi_opt_message_preload.c
@@ -112,7 +112,7 @@ bi_opt_message_preload(bi_context *ctx)
                                 .enabled = true,
                                 .texture = true,
                                 .varying_index = I->varying_index,
-                                .sampler_index = I->sampler_index,
+                                .texture_index = I->texture_index,
                                 .fp16 = (I->op == BI_OPCODE_VAR_TEX_F16),
                                 .skip = I->skip,
                                 .zero_lod = I->lod_mode
diff --git a/src/panfrost/lib/genxml/v7.xml b/src/panfrost/lib/genxml/v7.xml
index 18b81eaca5f..3440ee70613 100644
--- a/src/panfrost/lib/genxml/v7.xml
+++ b/src/panfrost/lib/genxml/v7.xml
@@ -854,7 +854,7 @@
 
   <struct name="VAR_TEX Preload" size="1" no-direct-packing="true">
     <field name="Varying Index" size="3" start="4" type="uint"/>
-    <field name="Sampler Index" size="2" start="7" type="uint"/>
+    <field name="Texture Index" size="2" start="7" type="uint"/>
     <field name="Register Format" size="2" start="9" type="Message Preload Register Format"/>
     <field name="Skip" size="1" start="14" type="bool"/>
     <field name="Zero LOD" size="1" start="15" type="bool"/>
diff --git a/src/panfrost/lib/pan_shader.h b/src/panfrost/lib/pan_shader.h
index 96a52cad2d1..8201b32c269 100644
--- a/src/panfrost/lib/pan_shader.h
+++ b/src/panfrost/lib/pan_shader.h
@@ -199,7 +199,7 @@ pan_pack_message_preload(struct MALI_MESSAGE_PRELOAD *cfg,
         if (msg->enabled && msg->texture) {
                 cfg->type = MALI_MESSAGE_TYPE_VAR_TEX;
                 cfg->var_tex.varying_index = msg->varying_index;
-                cfg->var_tex.sampler_index = msg->sampler_index;
+                cfg->var_tex.texture_index = msg->texture_index;
                 cfg->var_tex.register_format = regfmt;
                 cfg->var_tex.skip = msg->skip;
                 cfg->var_tex.zero_lod = msg->zero_lod;
diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h
index 9e58c69fcef..7d397d3ca17 100644
--- a/src/panfrost/util/pan_ir.h
+++ b/src/panfrost/util/pan_ir.h
@@ -231,11 +231,11 @@ struct bifrost_message_preload {
         unsigned num_components;
 
         /* If texture is set, performs a texture instruction according to
-         * sampler_index, skip, and zero_lod. If texture is unset, only the
+         * texture_index, skip, and zero_lod. If texture is unset, only the
          * varying load is performed.
          */
         bool texture, skip, zero_lod;
-        unsigned sampler_index;
+        unsigned texture_index;
 };
 
 struct bifrost_shader_info {



More information about the mesa-commit mailing list