diff options
author | Rob Clark <[email protected]> | 2013-12-20 20:48:18 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2013-12-26 12:06:29 -0500 |
commit | be01d7a905d827c3c0c222cab2430c6d4575429a (patch) | |
tree | fc714be776c88076f061280b60137c1322af103b /src/gallium/drivers/freedreno/freedreno_gmem.h | |
parent | 64fe0670664bc6f2c75cc1630aa07cef1898b8b5 (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.h | 22 |
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_ */ |