[Mesa-dev] [PATCH] gallivm: add information about different sampler/view units if analyzing shader

Jose Fonseca jfonseca at vmware.com
Fri Sep 19 10:25:56 PDT 2014


On 19/09/14 18:12, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> 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


More information about the mesa-dev mailing list