From 2864094f69db38f1948bad738256db4699653fad Mon Sep 17 00:00:00 2001 From: Icecream95 Date: Sat, 30 Apr 2022 08:36:40 +1200 Subject: [PATCH] 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: --- 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 e19eeb4..f890a45 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 18b81ea..3440ee7 100644 --- a/src/panfrost/lib/genxml/v7.xml +++ b/src/panfrost/lib/genxml/v7.xml @@ -854,7 +854,7 @@ - + diff --git a/src/panfrost/lib/pan_shader.h b/src/panfrost/lib/pan_shader.h index 96a52ca..8201b32 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 9e58c69..7d397d3 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 { -- 2.7.4