summaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2020-03-10 21:51:01 -0400
committerMarge Bot <[email protected]>2020-03-12 17:27:23 +0000
commit7ba5e94c50cbc79fddc8c764c6569a0da2092b58 (patch)
treea899c1a169d3125da4a209d546490c91397dad86 /src/amd
parent09295e95eba6f015d1731b589070cf5bbef3d581 (diff)
ac: add radeon_info::use_late_alloc to control LATE_ALLOC globally
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4143>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/common/ac_gpu_info.c4
-rw-r--r--src/amd/common/ac_gpu_info.h1
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;