From aecca24d03a84fda14dc86b548304e6aaf250984 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sun, 14 Jun 2020 11:46:46 +0200 Subject: [PATCH] nv50/ir/nir: add workaround for double vertex attribs Gallium adjusts the vertrix attrib types for doubles, but can run out of bounds this way. As the slot is counted from 0 anyway, just fix it. Signed-off-by: Karol Herbst Tested-by: Ben Skeggs Part-of: --- src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp index 90ce9eb..81aa7af 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp @@ -989,6 +989,8 @@ bool Converter::assignSlots() { info->numPatchConstants = MAX2(info->numPatchConstants, index + slots); break; case Program::TYPE_VERTEX: + if (slot >= VERT_ATTRIB_GENERIC0) + slot = VERT_ATTRIB_GENERIC0 + vary; vert_attrib_to_tgsi_semantic((gl_vert_attrib)slot, &name, &index); switch (name) { case TGSI_SEMANTIC_EDGEFLAG: -- 2.7.4