summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_gmem.h
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2013-12-20 20:48:18 -0500
committerRob Clark <[email protected]>2013-12-26 12:06:29 -0500
commitbe01d7a905d827c3c0c222cab2430c6d4575429a (patch)
treefc714be776c88076f061280b60137c1322af103b /src/gallium/drivers/freedreno/freedreno_gmem.h
parent64fe0670664bc6f2c75cc1630aa07cef1898b8b5 (diff)
freedreno: prepare for hw binning
Actually assign VSC_PIPE's properly, which will be needed for tiling. And introduce fd_tile for per-tile state (including the assignment of tile to VSC_PIPE). This gives us the proper pipe setup that we'll need for hw binning pass, and also cleans things up a bit by not having to pass so many parameters around. And will also make it easier to introduce different tiling patterns (since we may no longer render tiles in a simple left-to-right top-to-bottom pattern). 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.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.h b/src/gallium/drivers/freedreno/freedreno_gmem.h
index 0c978a4d0a0..1082d542a91 100644
--- a/src/gallium/drivers/freedreno/freedreno_gmem.h
+++ b/src/gallium/drivers/freedreno/freedreno_gmem.h
@@ -31,6 +31,28 @@
#include "pipe/p_context.h"
+/* per-pipe configuration for hw binning: */
+struct fd_vsc_pipe {
+ struct fd_bo *bo;
+ uint8_t x, y, w, h; /* VSC_PIPE[p].CONFIG */
+};
+
+/* per-tile configuration for hw binning: */
+struct fd_tile {
+ uint8_t p; /* index into vsc_pipe[]s */
+ uint8_t n; /* slot within pipe */
+ uint16_t bin_w, bin_h;
+ uint16_t xoff, yoff;
+};
+
+struct fd_gmem_stateobj {
+ struct pipe_scissor_state scissor;
+ uint cpp;
+ uint16_t bin_h, nbins_y;
+ uint16_t bin_w, nbins_x;
+ uint16_t width, height;
+};
+
void fd_gmem_render_tiles(struct pipe_context *pctx);
#endif /* FREEDRENO_GMEM_H_ */