aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarol Herbst <[email protected]>2020-06-14 11:46:46 +0200
committerMarge Bot <[email protected]>2020-06-22 11:41:31 +0000
commitaecca24d03a84fda14dc86b548304e6aaf250984 (patch)
treee4e6b32368e682321c3392df434480f7727a274a
parent83d2a73b73a58006d9835a93a64c3946a5923cda (diff)
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 <[email protected]> Tested-by: Ben Skeggs <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5512>
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp2
1 files changed, 2 insertions, 0 deletions
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 90ce9ebd2eb..81aa7af63ba 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: