radeonsi,radv: fix a late alloc deadlock with <= 6 CUs per SA
We should always prevent 1 CU from executing VS and GS waves
to prevent a deadlock.
Fixes: c377f45c18
"radeonsi/gfx10: rewrite late alloc computation"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754>
This commit is contained in:
@@ -345,8 +345,6 @@ si_emit_graphics(struct radv_device *device, struct radeon_cmdbuf *cs)
|
|||||||
*/
|
*/
|
||||||
if (!physical_device->rad_info.use_late_alloc) {
|
if (!physical_device->rad_info.use_late_alloc) {
|
||||||
late_alloc_wave64 = 0;
|
late_alloc_wave64 = 0;
|
||||||
} else if (num_cu_per_sh <= 6) {
|
|
||||||
late_alloc_wave64 = num_cu_per_sh - 2;
|
|
||||||
} else {
|
} else {
|
||||||
late_alloc_wave64 = (num_cu_per_sh - 2) * 4;
|
late_alloc_wave64 = (num_cu_per_sh - 2) * 4;
|
||||||
|
|
||||||
|
@@ -5303,8 +5303,6 @@ void si_init_cs_preamble_state(struct si_context *sctx, bool uses_reg_shadowing)
|
|||||||
*/
|
*/
|
||||||
if (!sscreen->info.use_late_alloc) {
|
if (!sscreen->info.use_late_alloc) {
|
||||||
late_alloc_wave64 = 0;
|
late_alloc_wave64 = 0;
|
||||||
} else if (num_cu_per_sh <= 6) {
|
|
||||||
late_alloc_wave64 = num_cu_per_sh - 2;
|
|
||||||
} else {
|
} else {
|
||||||
late_alloc_wave64 = (num_cu_per_sh - 2) * 4;
|
late_alloc_wave64 = (num_cu_per_sh - 2) * 4;
|
||||||
|
|
||||||
|
@@ -1224,8 +1224,6 @@ static void gfx10_shader_ngg(struct si_screen *sscreen, struct si_shader *shader
|
|||||||
*/
|
*/
|
||||||
if (sscreen->info.family == CHIP_NAVI14 || !sscreen->info.use_late_alloc)
|
if (sscreen->info.family == CHIP_NAVI14 || !sscreen->info.use_late_alloc)
|
||||||
late_alloc_wave64 = 0;
|
late_alloc_wave64 = 0;
|
||||||
else if (num_cu_per_sh <= 6)
|
|
||||||
late_alloc_wave64 = num_cu_per_sh - 2; /* All CUs enabled */
|
|
||||||
else if (shader->key.opt.ngg_culling)
|
else if (shader->key.opt.ngg_culling)
|
||||||
late_alloc_wave64 = num_cu_per_sh * 10;
|
late_alloc_wave64 = num_cu_per_sh * 10;
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user