From: Roland Scheidegger Date: Fri, 19 Sep 2014 17:11:22 +0000 (+0200) Subject: gallivm: add information about different sampler/view units if analyzing shader X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7ede5a1a7bd9571cbcfb63a89d1225a638c346f0;p=mesa.git gallivm: add information about different sampler/view units if analyzing shader Useful to know in some cases. Reviewed-by: Jose Fonseca --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h index 85411ce4817..029ca3c8410 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h @@ -126,6 +126,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 */ diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c index fcaa20143e6..55acea83799 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) {