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 ea0b118..cf2e9db 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 e70a5b4..2db12c6 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 c40f754..bc0f26f 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 95149a3..9808b1f 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 96829fc..b0c9275 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 5e0943f..7ddc74e 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);
    }
 }