[Nouveau] [mesa PATCH] nv50: handle VP without inputs
Marcin Slusarz
marcin.slusarz at gmail.com
Sun May 6 11:53:08 PDT 2012
Fixes 3 piglit tests:
general/pos-array
shaders/glsl-novertexdata
shaders/glsl-vs-point-size
and makes shaders/vp-ignore-input not trigger PGRAPH DATA_ERROR
---
It's a bit ugly... If there's a way to fix it properly, I'm open to suggestions.
---
src/gallium/drivers/nv50/nv50_program.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 48e8db3..c44f537 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -53,6 +53,13 @@ nv50_vertprog_assign_slots(struct nv50_ir_prog_info *info)
if (info->in[i].mask & (1 << c))
info->in[i].slot[c] = n++;
}
+
+ // Corner case: VP has no inputs, but we will still need to submit data to
+ // draw it. HW will shout at us and won't draw anything if we don't enable
+ // any input, so let's just pretend it's the first one.
+ if (info->numInputs == 0)
+ prog->vp.attrs[0] |= 0xf;
+
prog->in_nr = info->numInputs;
for (i = 0; i < info->numSysVals; ++i) {
--
1.7.8.5
More information about the Nouveau
mailing list