summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/svga/svga_pipe_flush.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2011-02-18 14:33:55 +0000
committerJosé Fonseca <jfonseca@vmware.com>2011-02-18 16:43:59 +0000
commit0ced789a0b56256891a2a26342befe645f4fa46d (patch)
tree74633fa9f75bf81288d6a9b4cd2699d57c2958e4 /src/gallium/drivers/svga/svga_pipe_flush.c
parentf9b48678463e926571ab5e547bb5ced5f4a6896a (diff)
svga: Ensure pending drawing commands other surface operations are emitted before DMAs.
This behavior was last when moving the transfers to the contexts. This fixes several piglit failures, which were reading the color renderbuffer before the draw operations were emitted.
Diffstat (limited to 'src/gallium/drivers/svga/svga_pipe_flush.c')
-rw-r--r--src/gallium/drivers/svga/svga_pipe_flush.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_flush.c b/src/gallium/drivers/svga/svga_pipe_flush.c
index 6c69d29d15e..9357d827f28 100644
--- a/src/gallium/drivers/svga/svga_pipe_flush.c
+++ b/src/gallium/drivers/svga/svga_pipe_flush.c
@@ -36,20 +36,10 @@ static void svga_flush( struct pipe_context *pipe,
struct pipe_fence_handle **fence )
{
struct svga_context *svga = svga_context(pipe);
- int i;
- /* Emit buffered drawing commands.
+ /* Emit buffered drawing commands, and any back copies.
*/
- svga_hwtnl_flush_retry( svga );
-
- /* Emit back-copy from render target view to texture.
- */
- for (i = 0; i < PIPE_MAX_COLOR_BUFS; i++) {
- if (svga->curr.framebuffer.cbufs[i])
- svga_propagate_surface(pipe, svga->curr.framebuffer.cbufs[i]);
- }
- if (svga->curr.framebuffer.zsbuf)
- svga_propagate_surface(pipe, svga->curr.framebuffer.zsbuf);
+ svga_surfaces_flush( svga );
/* Flush command queue.
*/