[Mesa-dev] [PATCH] tgsi: fix tgsi_util_get_inst_usage_mask

sroland at vmware.com sroland at vmware.com
Wed Oct 18 21:17:01 UTC 2017


From: Roland Scheidegger <sroland at vmware.com>

The logic for handling shadow coords was completely broken.
Fixes be3ab867bd444594f9d9e0f8e59d305d15769afd.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103265
---
 src/gallium/auxiliary/tgsi/tgsi_util.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_util.c b/src/gallium/auxiliary/tgsi/tgsi_util.c
index be8bcdf..cfce590 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_util.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_util.c
@@ -292,17 +292,17 @@ tgsi_util_get_inst_usage_mask(const struct tgsi_full_instruction *inst,
    case TGSI_OPCODE_TXL2:
    case TGSI_OPCODE_LODQ:
    case TGSI_OPCODE_TG4: {
-      unsigned dim_layer_shadow =
+      unsigned dim_layer =
          tgsi_util_get_texture_coord_dim(inst->Texture.Texture);
-      unsigned dim_layer, dim;
+      unsigned dim_layer_shadow, dim;
 
-      /* Remove shadow. */
+      /* Add shadow. */
       if (tgsi_is_shadow_target(inst->Texture.Texture)) {
-         dim_layer = dim_layer_shadow - 1;
+         dim_layer_shadow = dim_layer + 1;
          if (inst->Texture.Texture == TGSI_TEXTURE_SHADOW1D)
-            dim_layer = 1;
+            dim_layer_shadow = 3;
       } else {
-         dim_layer = dim_layer_shadow;
+         dim_layer_shadow = dim_layer;
       }
 
       /* Remove layer. */
-- 
2.7.4



More information about the mesa-dev mailing list