[Mesa-dev] [PATCH] anv: finish the binding_table_pool on destroyDevice when use_softpin

Jason Ekstrand jason at jlekstrand.net
Thu Jun 28 19:15:24 UTC 2018


Rb

On June 28, 2018 08:50:21 Jose Maria Casanova Crespo 
<jmcasanova at igalia.com> wrote:

> 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: c7db0ed4e94dce563d722e1b098684fbd7315d51
>      ("anv: Use a separate pool for binding tables when soft pinning")
>
>
> Cc: Scott D Phillips <scott.d.phillips at intel.com>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
>
> ---
> src/intel/vulkan/anv_device.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
> index ea24a0ad03d..5266b269244 100644
> --- a/src/intel/vulkan/anv_device.c
> +++ b/src/intel/vulkan/anv_device.c
> @@ -1782,6 +1782,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;
> @@ -1808,6 +1809,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);
> --
> 2.18.0





More information about the mesa-dev mailing list