[Mesa-dev] [PATCH v2 07/32] radv: Implement VK_EXT_external_memory_dma_buf

Chad Versace chadversary at chromium.org
Wed Nov 29 21:41:56 UTC 2017


On Tue 28 Nov 2017, Jason Ekstrand wrote:
> ---
>  src/amd/vulkan/radv_device.c      | 8 ++++++--
>  src/amd/vulkan/radv_extensions.py | 1 +
>  src/amd/vulkan/radv_formats.c     | 8 ++++++--
>  3 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index 8e5ae0b..4517227 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -2166,7 +2166,9 @@ VkResult radv_alloc_memory(VkDevice                        _device,
>  
>  	if (import_info) {
>  		assert(import_info->handleType ==
> -		       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR);
> +		       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR ||
> +		       import_info->handleType ==
> +		       VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT);
>  		mem->bo = device->ws->buffer_from_fd(device->ws, import_info->fd,
>  						     NULL, NULL);
>  		if (!mem->bo) {
> @@ -3540,7 +3542,9 @@ VkResult radv_GetMemoryFdKHR(VkDevice _device,
>  
>  	/* We support only one handle type. */

This comment needs updating. I suggest copy-pasting the comment from
anvil.

>  	assert(pGetFdInfo->handleType ==
> -	       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR);
> +	       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR ||
> +	       pGetFdInfo->handleType ==
> +	       VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT);
>  
>  	bool ret = radv_get_memory_fd(device, memory, pFD);
>  	if (ret == false)

Also, radv_GetMemoryFdPropertiesKHR() (the next function in this file)
needs updating to support dma-buf.  Today it unconditionally fails.


More information about the mesa-dev mailing list