diff options
author | Rob Clark <[email protected]> | 2016-06-27 11:28:37 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-07-30 09:23:42 -0400 |
commit | f02a64dbdd2ec147167ad60357bd46d8d964290a (patch) | |
tree | d4d0a74b53481862a46df052af1653b59e4337b7 /src/gallium/drivers/freedreno/freedreno_gmem.h | |
parent | eeafaf2d37cdc7f83f997e8babd8f770243ecf25 (diff) |
freedreno: move more batch related tracking to fd_batch
To flush batches out of order, the gmem code needs to not depend on
state from fd_context (since that may apply to a more recent batch).
So this all moves into batch.
The one exception is the gmem/pipe/tile state itself. But this is
only used from gmem code (and batches are flushed serially). The
alternative would be having to re-calculate GMEM layout on every
batch, even if the dimensions of the render targets are the same.
Note: This opens up the possibility of pushing gmem/submit into a
helper thread.
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 | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.h b/src/gallium/drivers/freedreno/freedreno_gmem.h index 38b557eb077..116423a40e2 100644 --- a/src/gallium/drivers/freedreno/freedreno_gmem.h +++ b/src/gallium/drivers/freedreno/freedreno_gmem.h @@ -59,11 +59,11 @@ struct fd_gmem_stateobj { uint16_t width, height; }; -struct fd_context; +struct fd_batch; -void fd_gmem_render_tiles(struct fd_context *ctx); +void fd_gmem_render_tiles(struct fd_batch *batch); -bool fd_gmem_needs_restore(struct fd_context *ctx, struct fd_tile *tile, +bool fd_gmem_needs_restore(struct fd_batch *batch, struct fd_tile *tile, uint32_t buffers); #endif /* FREEDRENO_GMEM_H_ */ |