[Mesa-dev] [PATCH] gm107/ir: fix texturing with indirect samplers
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Oct 18 10:33:54 UTC 2016
On 10/18/2016 10:50 AM, Samuel Pitoiset wrote:
>
>
> 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.
Confirmed, this fixes a bunch of dEQP tests with indirect samplers.
No regressions with full piglit on GM206.
Thanks!
>
>> } 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