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