mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
anv: fix descriptor pool internal size allocation
The size of the pool is slightly smaller than the size of the
structure containing the whole pool. We need to take that into account
on when setting up the internals.
Fixes a crash due to out of bound memory access in:
dEQP-VK.api.descriptor_pool.out_of_pool_memory
v2: Drop debug traces (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "17.0 13.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit c3421106ec)
This commit is contained in:
parent
f69b8510ba
commit
5210d157c4
1 changed files with 4 additions and 4 deletions
|
|
@ -329,18 +329,18 @@ VkResult anv_CreateDescriptorPool(
|
|||
}
|
||||
}
|
||||
|
||||
const size_t size =
|
||||
sizeof(*pool) +
|
||||
const size_t pool_size =
|
||||
pCreateInfo->maxSets * sizeof(struct anv_descriptor_set) +
|
||||
descriptor_count * sizeof(struct anv_descriptor) +
|
||||
buffer_count * sizeof(struct anv_buffer_view);
|
||||
const size_t total_size = sizeof(*pool) + pool_size;
|
||||
|
||||
pool = vk_alloc2(&device->alloc, pAllocator, size, 8,
|
||||
pool = vk_alloc2(&device->alloc, pAllocator, total_size, 8,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
if (!pool)
|
||||
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
pool->size = size;
|
||||
pool->size = pool_size;
|
||||
pool->next = 0;
|
||||
pool->free_list = EMPTY;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue