gallium/u_gen_mipmap: don't release vertex buffer at end of frame / in glFlush
authorMarek Olšák <maraeo@gmail.com>
Fri, 13 Apr 2012 19:20:18 +0000 (21:20 +0200)
committerMarek Olšák <maraeo@gmail.com>
Wed, 18 Apr 2012 14:19:39 +0000 (16:19 +0200)
There's no reason to do that. The buffer being used for rendering is always
mapped as unsynchronized.

src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_gen_mipmap.h
src/mesa/state_tracker/st_cb_flush.c

index a28d41825493bbd4ca1a1d0061409dec8e0e444a..82474cd7bad848bf29916e1db0780d6e59e390b2 100644 (file)
@@ -1361,8 +1361,10 @@ get_next_slot(struct gen_mipmap_state *ctx)
 {
    const unsigned max_slots = 4096 / sizeof ctx->vertices;
 
-   if (ctx->vbuf_slot >= max_slots) 
-      util_gen_mipmap_flush( ctx );
+   if (ctx->vbuf_slot >= max_slots) {
+      pipe_resource_reference(&ctx->vbuf, NULL);
+      ctx->vbuf_slot = 0;
+   }
 
    if (!ctx->vbuf) {
       ctx->vbuf = pipe_buffer_create(ctx->pipe->screen,
@@ -1475,17 +1477,6 @@ util_destroy_gen_mipmap(struct gen_mipmap_state *ctx)
 }
 
 
-
-/* Release vertex buffer at end of frame to avoid synchronous
- * rendering.
- */
-void util_gen_mipmap_flush( struct gen_mipmap_state *ctx )
-{
-   pipe_resource_reference(&ctx->vbuf, NULL);
-   ctx->vbuf_slot = 0;
-} 
-
-
 /**
  * Generate mipmap images.  It's assumed all needed texture memory is
  * already allocated.
index a10b6a4aba9e8caaf794adb7f05934c34dd76f3d..1bcc50f511621fd77fb5159b4404c81cec14b7b0 100644 (file)
@@ -50,12 +50,6 @@ util_create_gen_mipmap(struct pipe_context *pipe, struct cso_context *cso);
 extern void
 util_destroy_gen_mipmap(struct gen_mipmap_state *ctx);
 
-/* Release vertex buffer at end of frame to avoid synchronous
- * rendering.
- */
-extern void 
-util_gen_mipmap_flush( struct gen_mipmap_state *ctx );
-
 
 extern void
 util_gen_mipmap(struct gen_mipmap_state *ctx,
index 4cde84a8e5b3452705add436e0fb104dd42635d3..4e40a93f5e67d8ca7544eef8633f693766333725 100644 (file)
@@ -81,11 +81,7 @@ void st_flush( struct st_context *st,
 {
    FLUSH_CURRENT(st->ctx, 0);
 
-   /* Release any vertex buffers that might potentially be accessed in
-    * successive frames:
-    */
    st_flush_bitmap(st);
-   util_gen_mipmap_flush(st->gen_mipmap);
 
    st->pipe->flush( st->pipe, fence );
 }