path: root/src/gallium/drivers/nouveau
diff options
authorIlia Mirkin <>2014-06-30 22:43:39 -0400
committerCarl Worth <>2014-07-03 20:03:06 -0700
commitda80e6a1c45a6dc6952f7a009caedf26efd0320b (patch)
tree9f2c7e5872d0a4556330404db33de7dd1c0fc164 /src/gallium/drivers/nouveau
parent5ba1cf1893a63907d96f0d49a5c95612e7a9be8f (diff)
nv50: disable dedicated ubo upload method
The hardware allows multiple simultaneous renders with the same memory-backed constbufs but with each invocation having different values. However in order for that to work, the data has to be streamed in via the right constbuf slot. We weren't doing that for UBOs. Signed-off-by: Ilia Mirkin <> Cc: "10.2 10.1" <> (cherry picked from commit b2b7c651221037266abee7c3ede1ca7b3cb2da33)
Diffstat (limited to 'src/gallium/drivers/nouveau')
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_context.c b/src/gallium/drivers/nouveau/nv50/nv50_context.c
index f84459224c2..3f3a888eaf2 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_context.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c
@@ -253,7 +253,14 @@ nv50_create(struct pipe_screen *pscreen, void *priv)
nv50->base.screen = &screen->base;
nv50->base.copy_data = nv50_m2mf_copy_linear;
nv50->base.push_data = nv50_sifc_linear_u8;
+ /* FIXME: Make it possible to use this again. The problem is that there is
+ * some clever logic in the card that allows for multiple renders to happen
+ * when there are only constbuf changes. However that relies on the
+ * constbuf updates happening to the right constbuf slots. Currently
+ * implementation just makes it go through a separate slot which doesn't
+ * properly update the right constbuf data.
nv50->base.push_cb = nv50_cb_push;
+ */
nv50->screen = screen;
pipe->screen = pscreen;