[Mesa-dev] [PATCH v2 8/8] ir3/nir: Correctly use both tex->texture_index and tex->sampler_index
Rob Clark
robdclark at gmail.com
Sat Feb 6 19:14:08 UTC 2016
On Sat, Feb 6, 2016 at 1:19 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> Previously, NIR only provided a single sampler_index which was doubled as
> the texture index. Now, it provides separate sampler and texture indices
> which we can use. For both GLSL and TGSI they should usually be the same.
> The one exception is quaries where the sampler isn't needed.
hmm, for border-color we need a bit of a hack which assumes
texture:sampler is 1:1.. since the border-color needs to be swizzled
according to the texture format..
so while hw does support specifying sampler and texture independently,
I'm not sure it is practical in real life.. :-(
BR,
-R
> Cc: Rob Clark <robclark at gmail.com>
> ---
> src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
> index 922a9a6..b1c2b2d 100644
> --- a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
> +++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
> @@ -1544,7 +1544,7 @@ emit_tex(struct ir3_compile *ctx, nir_tex_instr *tex)
> type = TYPE_U32;
>
> sam = ir3_SAM(b, opc, type, TGSI_WRITEMASK_XYZW,
> - flags, tex->texture_index, tex->texture_index,
> + flags, tex->sampler_index, tex->texture_index,
> create_collect(b, src0, nsrc0),
> create_collect(b, src1, nsrc1));
>
> @@ -1571,7 +1571,7 @@ emit_tex_query_levels(struct ir3_compile *ctx, nir_tex_instr *tex)
> dst = get_dst(ctx, &tex->dest, 1);
>
> sam = ir3_SAM(b, OPC_GETINFO, TYPE_U32, TGSI_WRITEMASK_Z, 0,
> - tex->texture_index, tex->texture_index, NULL, NULL);
> + tex->sampler_index, tex->texture_index, NULL, NULL);
>
> /* even though there is only one component, since it ends
> * up in .z rather than .x, we need a split_dest()
> @@ -1608,7 +1608,7 @@ emit_tex_txs(struct ir3_compile *ctx, nir_tex_instr *tex)
> lod = get_src(ctx, &tex->src[0].src)[0];
>
> sam = ir3_SAM(b, OPC_GETSIZE, TYPE_U32, TGSI_WRITEMASK_XYZW, flags,
> - tex->texture_index, tex->texture_index, lod, NULL);
> + tex->sampler_index, tex->texture_index, lod, NULL);
>
> split_dest(b, dst, sam, 4);
>
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list