diff options
author | Rob Clark <[email protected]> | 2018-12-26 14:09:55 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2019-01-03 08:09:24 -0500 |
commit | f1c88336e6af1bb68546b064420d649f63d7ba8c (patch) | |
tree | c3acf9d89703bdaa26d55b2b867c5c2ad28bb602 /src/gallium/drivers/freedreno/freedreno_state.h | |
parent | 4d3f6cb9739dfeaf9605fcd2f5318e03acf5066e (diff) |
freedreno: skip depth resolve if not written
For multi-pass rendering, it is common to keep the same depth buffer
from previous pass, to discard geometry that would be hidden by later
draws. In the later passes with depth-test enabled, but depth-write
disabled, there is no reason to do gmem2mem resolve.
TODO probably do something similar for stencil.. although stencil
buffer isn't used as commonly these days
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_state.h')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_state.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_state.h b/src/gallium/drivers/freedreno/freedreno_state.h index 35584e41e3a..ad2c4943ec8 100644 --- a/src/gallium/drivers/freedreno/freedreno_state.h +++ b/src/gallium/drivers/freedreno/freedreno_state.h @@ -35,6 +35,11 @@ static inline bool fd_depth_enabled(struct fd_context *ctx) return ctx->zsa && ctx->zsa->depth.enabled; } +static inline bool fd_depth_write_enabled(struct fd_context *ctx) +{ + return ctx->zsa && ctx->zsa->depth.writemask; +} + static inline bool fd_stencil_enabled(struct fd_context *ctx) { return ctx->zsa && ctx->zsa->stencil[0].enabled; |