On 19/09/14 18:12, [email protected] wrote:
From: Roland Scheidegger <[email protected]>

Useful to know in some cases.
---
  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) {


LGTM.

Jose
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to