radv: fix a hang with binning on CHIP_RENOIR

Using (6, 16) for (context_states_per_bin, persistent_states_per_bin)
causes gpu hang in RDR2 benchmark on CHIP_RENOIR.  Follow radeonsi and
use (3, 8) instead.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21254>
This commit is contained in:
Chia-I Wu
2023-02-10 16:39:46 -08:00
committed by Marge Bot
parent 1c72424770
commit 4e03cfa3c6

View File

@@ -741,23 +741,19 @@ static void
radv_get_binning_settings(const struct radv_physical_device *pdevice,
struct radv_binning_settings *settings)
{
if (pdevice->rad_info.has_dedicated_vram) {
if (pdevice->rad_info.max_render_backends > 4) {
settings->context_states_per_bin = 1;
settings->persistent_states_per_bin = 1;
} else {
settings->context_states_per_bin = 3;
settings->persistent_states_per_bin = 8;
}
settings->fpovs_per_batch = 63;
if (pdevice->rad_info.has_dedicated_vram &&
pdevice->rad_info.max_render_backends > 4) {
settings->context_states_per_bin = 1;
settings->persistent_states_per_bin = 1;
} else {
/* The context states are affected by the scissor bug. */
settings->context_states_per_bin = 6;
settings->context_states_per_bin = 3;
/* 32 causes hangs for RAVEN. */
settings->persistent_states_per_bin = 16;
settings->fpovs_per_batch = 63;
settings->persistent_states_per_bin = 8;
}
settings->fpovs_per_batch = 63;
/* The context states are affected by the scissor bug. */
if (pdevice->rad_info.has_gfx9_scissor_bug)
settings->context_states_per_bin = 1;
}