From 7ede5a1a7bd9571cbcfb63a89d1225a638c346f0 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Fri, 19 Sep 2014 19:11:22 +0200 Subject: gallivm: add information about different sampler/view units if analyzing shader Useful to know in some cases. Reviewed-by: Jose Fonseca --- src/gallium/auxiliary/gallivm/lp_bld_tgsi.h | 6 ++++++ src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c | 4 ++++ 2 files changed, 10 insertions(+) (limited to 'src/gallium/auxiliary/gallivm') 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) { -- cgit v1.2.3