[Mesa-dev] [PATCH] gm107/ir: fix texturing with indirect samplers
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Oct 18 08:50:49 UTC 2016
On 10/18/2016 05:53 AM, Ilia Mirkin wrote:
> The indirect handle has to come right after the coordinates, so if there
> was a sample/bias/depth compare/offset, everything would end up being
> shifted by one argument position.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Cc: mesa-stable at lists.freedesktop.org
> ---
> src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> index dab3e2d..83154c1 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> @@ -751,6 +751,16 @@ NVC0LoweringPass::handleTEX(TexInstruction *i)
> i->tex.rIndirectSrc = 0;
> i->tex.sIndirectSrc = -1;
> }
> + // Move the indirect reference to right after the coords
> + else if (i->tex.rIndirectSrc >= 0 && chipset >= NVISA_GM107_CHIPSET) {
> + Value *hnd = i->getIndirectR();
> +
> + i->setIndirectR(NULL);
> + i->moveSources(arg, 1);
> + i->setSrc(arg, hnd);
> + i->tex.rIndirectSrc = 0;
> + i->tex.sIndirectSrc = -1;
> + }
This looks (a bit) redundant with the loop above, but texture arguments
are insane, so... :)
I'm going to run piglit.
> } else
> // (nvc0) generate and move the tsc/tic/array source to the front
> if (i->tex.target.isArray() || i->tex.rIndirectSrc >= 0 || i->tex.sIndirectSrc >= 0) {
>
--
-Samuel
More information about the mesa-dev
mailing list