From a46e9f4d9ac827e4e5ecfee4bf24e38cb09e349b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 11 Mar 2020 09:25:21 +0100 Subject: [PATCH] radv: use ac_gpu_info::use_late_alloc Based on PAL and RadeonSI. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Tested-by: Marge Bot Part-of: --- src/amd/vulkan/si_cmd_buffer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c index 0a15a3c4005..e53efc87f92 100644 --- a/src/amd/vulkan/si_cmd_buffer.c +++ b/src/amd/vulkan/si_cmd_buffer.c @@ -302,7 +302,9 @@ si_emit_graphics(struct radv_physical_device *physical_device, /* For Wave32, the hw will launch twice the number of late * alloc waves, so 1 == 2x wave32. */ - if (num_cu_per_sh <= 6) { + if (!physical_device->rad_info.use_late_alloc) { + late_alloc_wave64 = 0; + } else if (num_cu_per_sh <= 6) { late_alloc_wave64 = num_cu_per_sh - 2; } else { late_alloc_wave64 = (num_cu_per_sh - 2) * 4; @@ -323,8 +325,8 @@ si_emit_graphics(struct radv_physical_device *physical_device, cu_mask_gs = 0xffff; } } else { - if (physical_device->rad_info.family == CHIP_KABINI) { - late_alloc_wave64 = 0; /* Potential hang on Kabini. */ + if (!physical_device->rad_info.use_late_alloc) { + late_alloc_wave64 = 0; } else if (num_cu_per_sh <= 4) { /* Too few available compute units per SH. * Disallowing VS to run on one CU could hurt @@ -425,7 +427,7 @@ si_emit_graphics(struct radv_physical_device *physical_device, /* TODO: For culling, replace 128 with 256. */ radeon_set_uconfig_reg(cs, R_030980_GE_PC_ALLOC, - S_030980_OVERSUB_EN(1) | + S_030980_OVERSUB_EN(physical_device->rad_info.use_late_alloc) | S_030980_NUM_PC_LINES(128 * physical_device->rad_info.max_se - 1)); } -- 2.30.2