Mesa (master): gallivm: add information about different sampler/ view units if analyzing shader

Roland Scheidegger sroland at kemper.freedesktop.org
Sat Sep 20 00:19:14 UTC 2014


Module: Mesa
Branch: master
Commit: 7ede5a1a7bd9571cbcfb63a89d1225a638c346f0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ede5a1a7bd9571cbcfb63a89d1225a638c346f0

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Fri Sep 19 19:11:22 2014 +0200

gallivm: add information about different sampler/view units if analyzing shader

Useful to know in some cases.

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 src/gallium/auxiliary/gallivm/lp_bld_tgsi.h      |    6 ++++++
 src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c |    4 ++++
 2 files changed, 10 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
index 85411ce..029ca3c 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
@@ -127,6 +127,12 @@ struct lp_tgsi_info
    unsigned indirect_textures:1;
 
    /*
+    * Whether any of the texture (sample) ocpodes use different sampler
+    * and sampler view unit.
+    */
+   unsigned sampler_texture_units_different:1;
+
+   /*
     * Whether any immediate values are outside the range of 0 and 1
     */
    unsigned unclamped_immediates:1;
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c
index fcaa201..55acea8 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c
@@ -243,6 +243,10 @@ analyse_sample(struct analysis_context *ctx,
       tex_info->texture_unit = inst->Src[1].Register.Index;
       tex_info->sampler_unit = inst->Src[2].Register.Index;
 
+      if (tex_info->texture_unit != tex_info->sampler_unit) {
+         info->sampler_texture_units_different = TRUE;
+      }
+
       if (modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_DERIV ||
           modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_LOD ||
           modifier == LP_BLD_TEX_MODIFIER_LOD_BIAS || shadow) {




More information about the mesa-commit mailing list