radv: Apply the POPS missed overlap hardware bug workaround

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22250>
This commit is contained in:
Vitaliy Triang3l Kuzmin 2023-04-27 14:40:48 +03:00 committed by Marge Bot
parent 647952c8e3
commit 787a553262

View file

@ -8730,6 +8730,12 @@ radv_emit_db_shader_control(struct radv_cmd_buffer *cmd_buffer)
} else {
if (ps->info.ps.pops_is_per_sample)
db_shader_control |= S_02880C_POPS_OVERLAP_NUM_SAMPLES(util_logbase2(rasterization_samples));
if (rad_info->has_pops_missed_overlap_bug) {
radeon_set_context_reg(cmd_buffer->cs, R_028060_DB_DFSM_CONTROL,
S_028060_PUNCHOUT_MODE(V_028060_FORCE_OFF) |
S_028060_POPS_DRAIN_PS_ON_OVERLAP(rasterization_samples >= 8));
}
}
} else if (rad_info->has_export_conflict_bug && rasterization_samples == 1) {
for (uint32_t i = 0; i < MAX_RTS; i++) {