[Mesa-dev] [PATCH] nvc0/ir: fix INTERP_* with indirect inputs
Karol Herbst
kherbst at redhat.com
Tue Mar 27 22:59:07 UTC 2018
Reviewed-by: Karol Herbst <kherbst at redhat.com>
On Sat, Mar 24, 2018 at 8:19 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> There were two problems, both of which are fixed now:
> - The indirect address was not being shifted by 4
> - The indirect address was being placed as an argument in the offset case
>
> This fixes some of the new interpolateAt* piglits which now test for
> these situations.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
> src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> index 09b5228127a..3c5bad05fe7 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> @@ -3083,10 +3083,11 @@ Converter::handleINTERP(Value *dst[4])
> assert(sym[c]);
> op = insn->op;
> mode = insn->ipa;
> + ptr = insn->getIndirect(0, 0);
> }
> } else {
> if (src.isIndirect(0))
> - ptr = fetchSrc(src.getIndirect(0), 0, NULL);
> + ptr = shiftAddress(fetchSrc(src.getIndirect(0), 0, NULL));
>
> // We can assume that the fixed index will point to an input of the same
> // interpolation type in case of an indirect.
> @@ -3144,10 +3145,10 @@ Converter::handleINTERP(Value *dst[4])
> insn = mkOp1(op, TYPE_F32, dst[c], sym[c] ? sym[c] : srcToSym(src, c));
> if (op == OP_PINTERP)
> insn->setSrc(1, w);
> - if (ptr)
> - insn->setIndirect(0, 0, ptr);
> if (offset)
> insn->setSrc(op == OP_PINTERP ? 2 : 1, offset);
> + if (ptr)
> + insn->setIndirect(0, 0, ptr);
>
> insn->setInterpolate(mode);
> }
> --
> 2.16.1
>
> _______________________________________________
> 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