gallium: make state tracker explictly ask for rendercache flushes
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 20 Dec 2007 13:47:46 +0000 (13:47 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 20 Dec 2007 13:47:46 +0000 (13:47 +0000)
src/mesa/state_tracker/st_cb_accum.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_flush.c
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_framebuffer.c

index ea0b1187fc922cd1717cc1c2cf9c14d7924a37f0..cf2e9db51cb410404f45c1a7c36f9d35ac3a51eb 100644 (file)
@@ -321,7 +321,7 @@ st_Accum(GLcontext *ctx, GLenum op, GLfloat value)
    const GLint height = ctx->DrawBuffer->_Ymax - ypos;
 
    /* make sure color bufs aren't cached */
-   pipe->flush(pipe, 0);
+   pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE);
 
    switch (op) {
    case GL_ADD:
index e70a5b49e125271d6726158846d7c53c5d08b591..2db12c653b6adc4f3ae87fdbad8fe1d74c33c2a9 100644 (file)
@@ -849,7 +849,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
    GLint skipPixels;
    ubyte *stmap;
 
-   pipe->flush(pipe, 0);
+   pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE);
 
    /* map the stencil buffer */
    stmap = pipe_surface_map(ps);
@@ -1208,7 +1208,7 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy,
    uint format;
 
    /* make sure rendering has completed */
-   pipe->flush(pipe, 0x0);
+   pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE);
 
    st_validate_state(st);
 
index c40f75417fad364402f3b694294869667b011ffc..bc0f26ffb052e456b272eddf3a2b781c1dedf321 100644 (file)
@@ -365,7 +365,7 @@ st_finish_render_texture(GLcontext *ctx,
 
    assert(strb);
 
-   ctx->st->pipe->flush(ctx->st->pipe, 0x0);
+   ctx->st->pipe->flush(ctx->st->pipe, PIPE_FLUSH_RENDER_CACHE);
 
    /*
    printf("FINISH RENDER TO TEXTURE surf=%p\n", strb->surface);
index 95149a32006bb70c2e24e97ecd1f99a992d8dae5..9808b1f8f65b45a7df6489c913ecdf88c3201261 100644 (file)
@@ -83,7 +83,7 @@ void st_flush( struct st_context *st, uint pipeFlushFlags )
  */
 static void st_Flush(GLcontext *ctx)
 {
-   st_flush(ctx->st, 0x0);
+   st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE);
 }
 
 
@@ -92,7 +92,7 @@ static void st_Flush(GLcontext *ctx)
  */
 static void st_Finish(GLcontext *ctx)
 {
-   st_flush(ctx->st, PIPE_FLUSH_WAIT);
+   st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_WAIT);
 }
 
 
index 96829fcfa0fe0718dc6cc6be45fd0fc0e1adf936..b0c9275c6f882649fcbfbc50376726420e9a086a 100644 (file)
@@ -155,7 +155,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
    }
 
    /* make sure rendering has completed */
-   pipe->flush(pipe, 0x0);
+   pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE);
 
    if (pack->BufferObj && pack->BufferObj->Name) {
       /* reading into a PBO */
index 5e0943f75cc47494eef596c0f67a3f8b439f7ba9..7ddc74e355c6fd4a1ef200665f6b47df3aa92079 100644 (file)
@@ -33,6 +33,7 @@
 #include "st_public.h"
 #include "st_context.h"
 #include "st_cb_fbo.h"
+#include "pipe/p_defines.h"
 
 
 struct st_framebuffer *
@@ -170,7 +171,7 @@ st_notify_swapbuffers(struct st_framebuffer *stfb)
    GET_CURRENT_CONTEXT(ctx);
 
    if (ctx && ctx->DrawBuffer == &stfb->Base) {
-      st_flush(ctx->st, 0x0);
+      st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE);
    }
 }