[Mesa-dev] [PATCH 1/5] st/nine: Disable depth write when nothing gets updated
Axel Davy
davyaxel0 at gmail.com
Thu Mar 7 22:23:53 UTC 2019
I do not see any perf impact on radeonsi, but it
seems iris needs this.
It seems something sensible to do.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Tested-by: Andre Heider <a.heider at gmail.com>
---
It may be argued this kind of stuff should be done in the driver.
I don't mind either way. The ogl state tracker already does that
optimization.
src/gallium/state_trackers/nine/nine_pipe.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/gallium/state_trackers/nine/nine_pipe.c b/src/gallium/state_trackers/nine/nine_pipe.c
index a84a17f551f..b69ddb67113 100644
--- a/src/gallium/state_trackers/nine/nine_pipe.c
+++ b/src/gallium/state_trackers/nine/nine_pipe.c
@@ -36,8 +36,11 @@ nine_convert_dsa_state(struct pipe_depth_stencil_alpha_state *dsa_state,
if (rs[D3DRS_ZENABLE]) {
dsa.depth.enabled = 1;
- dsa.depth.writemask = !!rs[D3DRS_ZWRITEENABLE];
dsa.depth.func = d3dcmpfunc_to_pipe_func(rs[D3DRS_ZFUNC]);
+ /* Disable depth write if no change can occur */
+ dsa.depth.writemask = !!rs[D3DRS_ZWRITEENABLE] &&
+ dsa.depth.func != PIPE_FUNC_EQUAL &&
+ dsa.depth.func != PIPE_FUNC_NEVER;
}
if (rs[D3DRS_STENCILENABLE]) {
--
2.21.0
More information about the mesa-dev
mailing list