diff options
author | Keith Whitwell <[email protected]> | 2009-11-27 12:19:28 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2009-11-27 12:24:57 +0000 |
commit | b84b7f19dfdc0ac02175847065b39110db7ad98f (patch) | |
tree | 9de4431e0067509b1533302a3e8450008f371077 /src/gallium/drivers/svga/svga_context.c | |
parent | b911688b87a011eacf2034bd61562e633952a66b (diff) |
svga: flush our command buffer after the 8th distinct render target
This helps improve the surface cache behaviour in the face of the
large number of single-use render targets generated by EXA and the xorg
state tracker. Without this we can reference hundreds of individual
render targets from a command buffer, which leaves little scope for
sharing or reuse of those targets.
Flushing early means we can start reusing textures much sooner.
This shouldn't have much effect on normal 3d rendering as it's pretty
rare to have a command buffer with >8 different render targets in that
world.
Diffstat (limited to 'src/gallium/drivers/svga/svga_context.c')
-rw-r--r-- | src/gallium/drivers/svga/svga_context.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_context.c b/src/gallium/drivers/svga/svga_context.c index 73233957f36..c3de12b4a39 100644 --- a/src/gallium/drivers/svga/svga_context.c +++ b/src/gallium/drivers/svga/svga_context.c @@ -230,7 +230,9 @@ void svga_context_flush( struct svga_context *svga, struct pipe_fence_handle **pfence ) { struct svga_screen *svgascreen = svga_screen(svga->pipe.screen); - + + svga->curr.nr_fbs = 0; + /* Unmap upload manager buffers: */ u_upload_flush(svga->upload_vb); |