[Mesa-dev] [PATCH] radv/wsi: don't use a helper for blit, just call copy image.

Samuel Pitoiset samuel.pitoiset at gmail.com
Thu Nov 16 08:50:29 UTC 2017


Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 11/15/2017 11:55 PM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> We ignore layout currently, not sure what would be correct to pass.
> 
> (this is based on Jason's last wsi rfc)
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>   src/amd/vulkan/radv_meta.h      |  4 ----
>   src/amd/vulkan/radv_meta_copy.c | 20 --------------------
>   src/amd/vulkan/radv_wsi.c       | 19 ++++++++++++++++---
>   3 files changed, 16 insertions(+), 27 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_meta.h b/src/amd/vulkan/radv_meta.h
> index d10ec99..0974df0 100644
> --- a/src/amd/vulkan/radv_meta.h
> +++ b/src/amd/vulkan/radv_meta.h
> @@ -187,10 +187,6 @@ void radv_meta_resolve_fragment_image(struct radv_cmd_buffer *cmd_buffer,
>   				      uint32_t region_count,
>   				      const VkImageResolve *regions);
>   
> -void radv_blit_to_prime_linear(struct radv_cmd_buffer *cmd_buffer,
> -			       struct radv_image *image,
> -			       struct radv_image *linear_image);
> -
>   /* common nir builder helpers */
>   #include "nir/nir_builder.h"
>   
> diff --git a/src/amd/vulkan/radv_meta_copy.c b/src/amd/vulkan/radv_meta_copy.c
> index a42b15a..c3fe10e 100644
> --- a/src/amd/vulkan/radv_meta_copy.c
> +++ b/src/amd/vulkan/radv_meta_copy.c
> @@ -432,23 +432,3 @@ void radv_CmdCopyImage(
>   	meta_copy_image(cmd_buffer, src_image, dest_image,
>   			regionCount, pRegions);
>   }
> -
> -void radv_blit_to_prime_linear(struct radv_cmd_buffer *cmd_buffer,
> -			       struct radv_image *image,
> -			       struct radv_image *linear_image)
> -{
> -	struct VkImageCopy image_copy = { 0 };
> -
> -	image_copy.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
> -	image_copy.srcSubresource.layerCount = 1;
> -
> -	image_copy.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
> -	image_copy.dstSubresource.layerCount = 1;
> -
> -	image_copy.extent.width = image->info.width;
> -	image_copy.extent.height = image->info.height;
> -	image_copy.extent.depth = 1;
> -
> -	meta_copy_image(cmd_buffer, image, linear_image,
> -			1, &image_copy);
> -}
> diff --git a/src/amd/vulkan/radv_wsi.c b/src/amd/vulkan/radv_wsi.c
> index 0145da6..7515284 100644
> --- a/src/amd/vulkan/radv_wsi.c
> +++ b/src/amd/vulkan/radv_wsi.c
> @@ -233,6 +233,7 @@ radv_wsi_create_blit_cmd_buffer(VkDevice device_h,
>   				uint32_t queue_family_index,
>   				VkCommandPool *cmd_pool_p,
>   				VkCommandBuffer *cmd_buffer_p,
> +				const VkSwapchainCreateInfoKHR *pCreateInfo,
>   				const VkAllocationCallbacks* pAllocator)
>   {
>   	VkResult result = VK_SUCCESS;
> @@ -272,9 +273,20 @@ radv_wsi_create_blit_cmd_buffer(VkDevice device_h,
>   
>   	radv_BeginCommandBuffer(cmd_buffer_h, &begin_info);
>   
> -	radv_blit_to_prime_linear(radv_cmd_buffer_from_handle(cmd_buffer_h),
> -				  radv_image_from_handle(client_image_h),
> -				  radv_image_from_handle(wsi_image_h));
> +	struct VkImageCopy image_copy = { 0 };
> +
> +	image_copy.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
> +	image_copy.srcSubresource.layerCount = 1;
> +
> +	image_copy.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
> +	image_copy.dstSubresource.layerCount = 1;
> +
> +	image_copy.extent.width = pCreateInfo->imageExtent.width;
> +	image_copy.extent.height = pCreateInfo->imageExtent.height;
> +	image_copy.extent.depth = 1;
> +
> +	radv_CmdCopyImage(cmd_buffer_h, client_image_h, 0, wsi_image_h, 0,
> +			  1, &image_copy);
>   
>   	radv_EndCommandBuffer(cmd_buffer_h);
>   
> @@ -370,6 +382,7 @@ radv_wsi_image_create(VkDevice device_h,
>   								 q,
>   								 &private->blit_cmd_pools[q],
>   								 &private->blit_cmd_buffers[q],
> +								 pCreateInfo,
>   								 pAllocator);
>   			if (result != VK_SUCCESS)
>   				goto fail;
> 


More information about the mesa-dev mailing list