[Mesa-dev] [PATCH] gallivm: use sampler index 0 for texel fetches

Jose Fonseca jfonseca at vmware.com
Fri Nov 20 04:20:33 PST 2015


On 20/11/15 03:50, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> texel fetches don't use any samplers. Previously we just set the same
> number for both texture and sampler unit (as per "ordinary" gl style
> sampling where the numbers are always the same) however this would trigger
> some assertions checking that the sampler index isn't over PIPE_MAX_SAMPLERS
> limit elsewhere with d3d10, so just set to 0.
> (Fixing the assertion instead isn't really an option, the sampler isn't
> really used but might still pass an out-of-bound pointer around and even
> copy some things from it.)
> ---
>   src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> index 7d2cd9a..28c7a86 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> @@ -2608,7 +2608,12 @@ emit_fetch_texels( struct lp_build_tgsi_soa_context *bld,
>      params.type = bld->bld_base.base.type;
>      params.sample_key = sample_key;
>      params.texture_index = unit;
> -   params.sampler_index = unit;
> +   /*
> +    * sampler not actually used, set to 0 so it won't exceed PIPE_MAX_SAMPLERS
> +    * and trigger some assertions with d3d10 where the sampler view number
> +    * can exceed this.
> +    */
> +   params.sampler_index = 0;
>      params.context_ptr = bld->context_ptr;
>      params.thread_data_ptr = bld->thread_data_ptr;
>      params.coords = coords;
>

Makes sense.

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

Jose


More information about the mesa-dev mailing list