You're missing one other caller in anv_queue.c On Mon, Oct 16, 2017 at 11:55 AM, Chad Versace <chadvers...@chromium.org> wrote:
> This will allow us to implement VK_ANDROID_native_buffer without dup'ing > the fd. We must close the fd in VK_KHR_external_memory_fd, but we should > not in VK_ANDROID_native_buffer. > --- > src/intel/vulkan/anv_allocator.c | 12 ------------ > src/intel/vulkan/anv_device.c | 11 +++++++++++ > src/intel/vulkan/anv_intel.c | 2 ++ > 3 files changed, 13 insertions(+), 12 deletions(-) > > diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_ > allocator.c > index 0f123563f7..401cea40e6 100644 > --- a/src/intel/vulkan/anv_allocator.c > +++ b/src/intel/vulkan/anv_allocator.c > @@ -1324,18 +1324,6 @@ anv_bo_cache_import(struct anv_device *device, > } > > pthread_mutex_unlock(&cache->mutex); > - > - /* From the Vulkan spec: > - * > - * "Importing memory from a file descriptor transfers ownership of > - * the file descriptor from the application to the Vulkan > - * implementation. The application must not perform any operations > on > - * the file descriptor after a successful import." > - * > - * If the import fails, we leave the file descriptor open. > - */ > - close(fd); > - > *bo_out = &bo->bo; > > return VK_SUCCESS; > diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c > index 2c10a2fe7f..1634b5158c 100644 > --- a/src/intel/vulkan/anv_device.c > +++ b/src/intel/vulkan/anv_device.c > @@ -1547,6 +1547,17 @@ VkResult anv_AllocateMemory( > &mem->bo); > if (result != VK_SUCCESS) > goto fail; > + > + /* From the Vulkan spec: > + * > + * "Importing memory from a file descriptor transfers ownership > of > + * the file descriptor from the application to the Vulkan > + * implementation. The application must not perform any > operations on > + * the file descriptor after a successful import." > + * > + * If the import fails, we leave the file descriptor open. > + */ > + close(fd_info->fd); > } else { > result = anv_bo_cache_alloc(device, &device->bo_cache, > pAllocateInfo->allocationSize, > diff --git a/src/intel/vulkan/anv_intel.c b/src/intel/vulkan/anv_intel.c > index 9f8cd92734..d6bad44091 100644 > --- a/src/intel/vulkan/anv_intel.c > +++ b/src/intel/vulkan/anv_intel.c > @@ -71,6 +71,8 @@ VkResult anv_CreateDmaBufImageINTEL( > if (result != VK_SUCCESS) > goto fail; > > + close(pCreateInfo->fd); > + > image = anv_image_from_handle(image_h); > > result = anv_bo_cache_import(device, &device->bo_cache, > -- > 2.13.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev