All of lore.kernel.org
 help / color / mirror / Atom feed
* [mesa PATCH] nv50: handle VP without inputs
@ 2012-05-06 18:53 Marcin Slusarz
       [not found] ` <20120506185308.GC4311-OI9uyE9O0yo@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Marcin Slusarz @ 2012-05-06 18:53 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-05-06 20:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-06 18:53 [mesa PATCH] nv50: handle VP without inputs Marcin Slusarz
     [not found] ` <20120506185308.GC4311-OI9uyE9O0yo@public.gmane.org>
2012-05-06 19:05   ` Christoph Bumiller
     [not found]     ` <4FA6CB71.9070308-oe7qfRrRQffzPE21tAIdciO7C/xPubJB@public.gmane.org>
2012-05-06 20:54       ` Marcin Slusarz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.