st/nine: Disable depth write when nothing gets updated

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@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Andre Heider <a.heider@gmail.com>
This commit is contained in:
Axel Davy 2019-02-25 21:02:14 +01:00
parent d7b3196976
commit f7b9c09c7c

View file

@ -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]) {