diff options
Diffstat (limited to 'src/amd')
-rw-r--r-- | src/amd/common/ac_gpu_info.c | 4 | ||||
-rw-r--r-- | src/amd/common/ac_gpu_info.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 4f928a8b51f..e53a1a15afc 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -717,14 +717,18 @@ bool ac_query_gpu_info(int fd, void *dev_p, info->num_physical_sgprs_per_simd = 128 * info->max_wave64_per_simd * 2; info->min_sgpr_alloc = 128; info->sgpr_alloc_granularity = 128; + info->use_late_alloc = true; } else if (info->chip_class >= GFX8) { info->num_physical_sgprs_per_simd = 800; info->min_sgpr_alloc = 16; info->sgpr_alloc_granularity = 16; + info->use_late_alloc = true; } else { info->num_physical_sgprs_per_simd = 512; info->min_sgpr_alloc = 8; info->sgpr_alloc_granularity = 8; + /* Potential hang on Kabini: */ + info->use_late_alloc = info->family != CHIP_KABINI; } info->max_sgpr_alloc = info->family == CHIP_TONGA || diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index 93cf323372c..20a2f79eb63 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -169,6 +169,7 @@ struct radeon_info { uint32_t min_wave64_vgpr_alloc; uint32_t max_vgpr_alloc; uint32_t wave64_vgpr_alloc_granularity; + bool use_late_alloc; /* VS and GS: late pos/param allocation */ /* Render backends (color + depth blocks). */ uint32_t r300_num_gb_pipes; |