anv: Align state pools to 2MiB on XeHP
Suggested-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Fixes: c17e2216dd ("anv: Align buffer VMA to 2MiB for XeHP")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15054>
This commit is contained in:
@@ -374,6 +374,12 @@ anv_block_pool_init(struct anv_block_pool *pool,
|
||||
{
|
||||
VkResult result;
|
||||
|
||||
if (device->info.verx10 >= 125) {
|
||||
/* Make sure VMA addresses are 2MiB aligned for the block pool */
|
||||
assert(anv_is_aligned(start_address, 2 * 1024 * 1024));
|
||||
assert(anv_is_aligned(initial_size, 2 * 1024 * 1024));
|
||||
}
|
||||
|
||||
pool->name = name;
|
||||
pool->device = device;
|
||||
pool->use_relocations = anv_use_relocations(device->physical);
|
||||
@@ -838,9 +844,13 @@ anv_state_pool_init(struct anv_state_pool *pool,
|
||||
/* We don't want to ever see signed overflow */
|
||||
assert(start_offset < INT32_MAX - (int32_t)BLOCK_POOL_MEMFD_SIZE);
|
||||
|
||||
uint32_t initial_size = block_size * 16;
|
||||
if (device->info.verx10 >= 125)
|
||||
initial_size = MAX2(initial_size, 2 * 1024 * 1024);
|
||||
|
||||
VkResult result = anv_block_pool_init(&pool->block_pool, device, name,
|
||||
base_address + start_offset,
|
||||
block_size * 16);
|
||||
initial_size);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user