summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_gmem.h
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2014-10-21 10:30:49 -0400
committerRob Clark <[email protected]>2014-10-21 20:08:49 -0400
commit01b757e2b0fb97a146b0ef278b449cecab0d15e8 (patch)
treea2b0089ba5f796a23ecb558f88ab72ba17daaede /src/gallium/drivers/freedreno/freedreno_gmem.h
parent1ab6543431b5a4eaf589cdabf2227088dd62ce6f (diff)
freedreno: clear vs scissor
The optimization of avoiding restore (mem2gmem) if there was a clear falls down a bit if you don't have a fullscreen scissor. We need to make the decision logic a bit more clever to keep track of *what* was cleared, so that we can (a) completely skip mem2gmem if entire buffer was cleared, or (b) skip mem2gmem on a per-tile basis for tiles that were completely cleared. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_gmem.h')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_gmem.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.h b/src/gallium/drivers/freedreno/freedreno_gmem.h
index c7c687419b4..ff322df3c2f 100644
--- a/src/gallium/drivers/freedreno/freedreno_gmem.h
+++ b/src/gallium/drivers/freedreno/freedreno_gmem.h
@@ -55,6 +55,11 @@ struct fd_gmem_stateobj {
bool has_zs; /* gmem config using depth/stencil? */
};
-void fd_gmem_render_tiles(struct pipe_context *pctx);
+struct fd_context;
+
+void fd_gmem_render_tiles(struct fd_context *ctx);
+
+bool fd_gmem_needs_restore(struct fd_context *ctx, struct fd_tile *tile,
+ uint32_t buffers);
#endif /* FREEDRENO_GMEM_H_ */