radv: adjust binning settings to improve performance on GFX9

This partially reverts 74ab940156 which
was a fix for random GPU hangs with binning on GFX10+. Though,
according to RadeonSI, only GFX10+ is affected and this reduced perf
on GFX9 chips.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25951>
This commit is contained in:
Samuel Pitoiset
2023-10-30 10:13:02 +01:00
committed by Marge Bot
parent e4a1bc70dd
commit 46dc02354a
+10 -2
View File
@@ -370,8 +370,16 @@ radv_find_memory_index(const struct radv_physical_device *pdevice, VkMemoryPrope
static void
radv_get_binning_settings(const struct radv_physical_device *pdevice, struct radv_binning_settings *settings)
{
settings->context_states_per_bin = 1;
settings->persistent_states_per_bin = 1;
if ((pdevice->rad_info.has_dedicated_vram && pdevice->rad_info.max_render_backends > 4) ||
pdevice->rad_info.gfx_level >= GFX10) {
/* Using higher settings on GFX10+ can cause random GPU hangs. */
settings->context_states_per_bin = 1;
settings->persistent_states_per_bin = 1;
} else {
settings->context_states_per_bin = pdevice->rad_info.has_gfx9_scissor_bug ? 1 : 3;
settings->persistent_states_per_bin = 1;
}
settings->fpovs_per_batch = 63;
}