Comment # 3
on bug 101739
from Roland Scheidegger
(In reply to Jan from comment #2) > I also have this problem. Is there a way to force/override Z_ORDER to > LATE_Z, at best per application, so that I can try whether this has any > effect? > If not: what other way is there to test it? I am willing to e.g. patch, > compile and test some code if somebody tells me what to do, no promise when > I'll find the time for that though. You can't override that, you'd need a mesa patch looking something like this: diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index fcf4928e65..13e44dac16 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -1417,6 +1417,11 @@ static void si_emit_db_render_state(struct si_context *sctx, struct r600_atom *s db_shader_control |= S_02880C_Z_ORDER(V_02880C_LATE_Z); } + if (sctx->queued.named.blend->alpha_to_coverage) { + db_shader_control &= C_02880C_Z_ORDER; + db_shader_control |= S_02880C_Z_ORDER(V_02880C_LATE_Z); + } + Albeit probably would need to add a blend dependency like this too: @@ -658,6 +658,10 @@ static void si_bind_blend_state(struct pipe_context *ctx, void *state) old_blend->dual_src_blend != blend->dual_src_blend) si_mark_atom_dirty(sctx, &sctx->cb_render_state); + if (!old_blend || + old_blend->alpha_to_coverage != blend->alpha_to_coverage) + si_mark_atom_dirty(sctx, &sctx->db_render_state); + si_pm4_bind_state(sctx, blend, state); if (!old_blend || But as said, I really don't have much knowledge of the driver.
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel