nv50,nvc0: avoid unnecessary flushes
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Sat, 8 Oct 2011 22:10:47 +0000 (00:10 +0200)
committerMarcin Slusarz <marcin.slusarz@gmail.com>
Sun, 9 Oct 2011 12:49:30 +0000 (14:49 +0200)
Relocations don't consume pushbuffer space, so there is no need to
ensure there is any space in pushbuffer.

src/gallium/drivers/nv50/nv50_context.c
src/gallium/drivers/nv50/nv50_screen.c
src/gallium/drivers/nvc0/nvc0_context.c
src/gallium/drivers/nvc0/nvc0_screen.c

index 0d464063b5beb9cba663b42b8dfadca08c12a9bf..a48b86474d1466317936508a9a57d8c3ff47ced8 100644 (file)
@@ -205,7 +205,7 @@ nv50_bufctx_emit_relocs(struct nv50_context *nv50)
    n  = nv50->residents_size / sizeof(struct resident);
    n += NV50_SCREEN_RESIDENT_BO_COUNT;
 
-   MARK_RING(nv50->screen->base.channel, n, n);
+   MARK_RING(nv50->screen->base.channel, 0, n);
 
    for (ctx = 0; ctx < NV50_BUFCTX_COUNT; ++ctx) {
       array = &nv50->residents[ctx];
index 7ff11ea4b0bc4d2e76695b02bd93830b90646e9b..fe8712d176502c38f976d5652b564070f11e0f51 100644 (file)
@@ -641,7 +641,7 @@ nv50_screen_make_buffers_resident(struct nv50_screen *screen)
 
    const unsigned flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_RD;
 
-   MARK_RING(chan, 5, 5);
+   MARK_RING(chan, 0, 5);
    nouveau_bo_validate(chan, screen->code, flags);
    nouveau_bo_validate(chan, screen->uniforms, flags);
    nouveau_bo_validate(chan, screen->txc, flags);
index 8fa1675902e73ef60572f50e4aa09a55c5928cef..d493d4b2a92df0a4671a2299d9c04cd85b49401e 100644 (file)
@@ -209,7 +209,7 @@ nvc0_bufctx_emit_relocs(struct nvc0_context *nvc0)
    n  = nvc0->residents_size / sizeof(struct resident);
    n += NVC0_SCREEN_RESIDENT_BO_COUNT;
 
-   MARK_RING(nvc0->screen->base.channel, n, n);
+   MARK_RING(nvc0->screen->base.channel, 0, n);
 
    for (ctx = 0; ctx < NVC0_BUFCTX_COUNT; ++ctx) {
       array = &nvc0->residents[ctx];
index 292cbddcc0c0070ffce4b450db446ccb837ac83e..0da7be48e445d0cf0d01ef40493c296a663a9910 100644 (file)
@@ -659,7 +659,7 @@ nvc0_screen_make_buffers_resident(struct nvc0_screen *screen)
 
    const unsigned flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_RD;
 
-   MARK_RING(chan, 5, 5);
+   MARK_RING(chan, 0, 5);
    nouveau_bo_validate(chan, screen->text, flags);
    nouveau_bo_validate(chan, screen->uniforms, flags);
    nouveau_bo_validate(chan, screen->txc, flags);