nouveau: Get larger push buffers.
authorFrancisco Jerez <currojerez@riseup.net>
Tue, 28 Sep 2010 20:51:28 +0000 (22:51 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Tue, 12 Oct 2010 02:13:22 +0000 (04:13 +0200)
Useful to amortize the command submission/reloc overhead (e.g. etracer
goes from 72 to 109 FPS on nv4b).

src/gallium/drivers/nouveau/nouveau_screen.c
src/mesa/drivers/dri/nouveau/nouveau_context.c
src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c

index ebb21a6e5a37d53b5c817c86cb24f38001453e12..a9426df686f928add89793574b07111e145a0d28 100644 (file)
@@ -236,7 +236,7 @@ nouveau_screen_init(struct nouveau_screen *screen, struct nouveau_device *dev)
        int ret;
 
        ret = nouveau_channel_alloc(dev, 0xbeef0201, 0xbeef0202,
-                                   &screen->channel);
+                                   512*1024, &screen->channel);
        if (ret)
                return ret;
        screen->device = dev;
index 6369e8d7b14fbf9b72ba735e639cfb30961b9a55..1c7f600d2b058b9528406de966d6587a041d27e6 100644 (file)
@@ -128,7 +128,7 @@ nouveau_context_init(GLcontext *ctx, struct nouveau_screen *screen,
 
        /* Allocate a hardware channel. */
        ret = nouveau_channel_alloc(context_dev(ctx), 0xbeef0201, 0xbeef0202,
-                                   &nctx->hw.chan);
+                                   512*1024, &nctx->hw.chan);
        if (ret) {
                nouveau_error("Error initializing the FIFO.\n");
                return GL_FALSE;
index e4415cbedb5f4d5e93dc2908b2cb20694057a8ed..9373b936ab7b9c76ba1785465fb9cad2cabf2f4a 100644 (file)
@@ -32,7 +32,7 @@
 
 /* Arbitrary pushbuf length we can assume we can get with a single
  * WAIT_RING. */
-#define PUSHBUF_DWORDS 2048
+#define PUSHBUF_DWORDS 65536
 
 /* Functions to set up struct nouveau_array_state from something like
  * a GL array or index buffer. */