winsys/amdgpu: align VA allocations to fragment size v2
BOs larger than the minimum fragment size should have their VA alignet to at least the fragment size for optimal performance. v2: drop unused leftover from initial implementation Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
51dc5e3df3
commit
5318870f54
|
@ -281,6 +281,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
|||
memcpy(info->cik_macrotile_mode_array, amdinfo->gb_macro_tile_mode,
|
||||
sizeof(amdinfo->gb_macro_tile_mode));
|
||||
|
||||
info->pte_fragment_size = alignment_info.size_local;
|
||||
info->gart_page_size = alignment_info.size_remote;
|
||||
|
||||
if (info->chip_class == SI)
|
||||
|
|
|
@ -45,6 +45,7 @@ struct radeon_info {
|
|||
uint32_t pci_id;
|
||||
enum radeon_family family;
|
||||
enum chip_class chip_class;
|
||||
uint32_t pte_fragment_size;
|
||||
uint32_t gart_page_size;
|
||||
uint64_t gart_size;
|
||||
uint64_t vram_size;
|
||||
|
|
|
@ -415,6 +415,8 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *ws,
|
|||
}
|
||||
|
||||
va_gap_size = ws->check_vm ? MAX2(4 * alignment, 64 * 1024) : 0;
|
||||
if (size > ws->info.pte_fragment_size)
|
||||
alignment = MAX2(alignment, ws->info.pte_fragment_size);
|
||||
r = amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general,
|
||||
size + va_gap_size, alignment, 0, &va, &va_handle, 0);
|
||||
if (r)
|
||||
|
|
Loading…
Reference in New Issue