Module: Mesa Branch: main Commit: 46dc02354ae0df85440a1d9cc5dc0d4ef1e534ca URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46dc02354ae0df85440a1d9cc5dc0d4ef1e534ca
Author: Samuel Pitoiset <samuel.pitoi...@gmail.com> Date: Mon Oct 30 10:13:02 2023 +0100 radv: adjust binning settings to improve performance on GFX9 This partially reverts 74ab9401561c5d5bef62330c0b1264f42bfe52da 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.pitoi...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25951> --- src/amd/vulkan/radv_physical_device.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index efdbb0de379..580c51291d3 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -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; }