nvc0: save some CPU cycles in nvc0_context_unreference_resources()
This reduces the number of loop iterations for invalidating buffers
and images.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
index d51e89d..bf84371 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
@@ -150,6 +150,12 @@
for (i = 0; i < NVC0_MAX_PIPE_CONSTBUFS; ++i)
if (!nvc0->constbuf[s][i].user)
pipe_resource_reference(&nvc0->constbuf[s][i].u.buf, NULL);
+
+ for (i = 0; i < NVC0_MAX_BUFFERS; ++i)
+ pipe_resource_reference(&nvc0->buffers[s][i].buffer, NULL);
+
+ for (i = 0; i < NVC0_MAX_IMAGES; ++i)
+ pipe_resource_reference(&nvc0->images[s][i].resource, NULL);
}
for (s = 0; s < 2; ++s) {
@@ -157,14 +163,6 @@
pipe_surface_reference(&nvc0->surfaces[s][i], NULL);
}
- for (s = 0; s < 6; ++s)
- for (i = 0; i < NVC0_MAX_BUFFERS; ++i)
- pipe_resource_reference(&nvc0->buffers[s][i].buffer, NULL);
-
- for (s = 0; s < 6; ++s)
- for (i = 0; i < NVC0_MAX_IMAGES; ++i)
- pipe_resource_reference(&nvc0->images[s][i].resource, NULL);
-
for (i = 0; i < nvc0->num_tfbbufs; ++i)
pipe_so_target_reference(&nvc0->tfbbuf[i], NULL);