summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_state.h
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-12-26 14:09:55 -0500
committerRob Clark <[email protected]>2019-01-03 08:09:24 -0500
commitf1c88336e6af1bb68546b064420d649f63d7ba8c (patch)
treec3acf9d89703bdaa26d55b2b867c5c2ad28bb602 /src/gallium/drivers/freedreno/freedreno_state.h
parent4d3f6cb9739dfeaf9605fcd2f5318e03acf5066e (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.h5
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;