mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 09:10:11 +01:00
anv: finish the binding_table_pool on destroyDevice when use_softpin
Running VK-CTS in batch execution mode was raising the
VK_ERROR_INITIALIZATION_FAILED error in multiple tests. But when the
same failing tests were run isolated they always passed.
createDevice and destroyDevice were called before and after every
tests. Because the binding_table_pool was never closed, we reached the
maximum number of open file descriptors (ulimit -n) and when that
happened every call to createDevice implied a
VK_ERROR_INITIALIZATION_FAILED error.
Fixes: c7db0ed4e9
("anv: Use a separate pool for binding tables when soft pinning")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
ea8b55b49f
commit
a99c9e63a0
1 changed files with 3 additions and 0 deletions
|
|
@ -1771,6 +1771,7 @@ void anv_DestroyDevice(
|
|||
const VkAllocationCallbacks* pAllocator)
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||
struct anv_physical_device *physical_device = &device->instance->physicalDevice;
|
||||
|
||||
if (!device)
|
||||
return;
|
||||
|
|
@ -1797,6 +1798,8 @@ void anv_DestroyDevice(
|
|||
if (device->info.gen >= 10)
|
||||
anv_gem_close(device, device->hiz_clear_bo.gem_handle);
|
||||
|
||||
if (physical_device->use_softpin)
|
||||
anv_state_pool_finish(&device->binding_table_pool);
|
||||
anv_state_pool_finish(&device->surface_state_pool);
|
||||
anv_state_pool_finish(&device->instruction_state_pool);
|
||||
anv_state_pool_finish(&device->dynamic_state_pool);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue