[Mesa-dev] [PATCH 07/10] radv/image: don't rescale width/height if the format isn't changing

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Mon Aug 21 07:44:11 UTC 2017


The old code would just do a * blocksize / blocksize , which is the
identity (as long as we don't overflow).  Did this cause any issues?

On Mon, Aug 21, 2017, at 09:34, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> If the image view has the same format, we don't need to rescale
> the w/h.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/amd/vulkan/radv_image.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
> index 5e38041..ddf15bc 100644
> --- a/src/amd/vulkan/radv_image.c
> +++ b/src/amd/vulkan/radv_image.c
> @@ -947,10 +947,12 @@ radv_image_view_init(struct radv_image_view *iview,
>  		.depth  = radv_minify(image->info.depth , range->baseMipLevel),
>  	};
>  
> -       iview->extent.width = round_up_u32(iview->extent.width *
> vk_format_get_blockwidth(iview->vk_format),
> -                                         
> vk_format_get_blockwidth(image->vk_format));
> -       iview->extent.height = round_up_u32(iview->extent.height *
> vk_format_get_blockheight(iview->vk_format),
> -                                          
> vk_format_get_blockheight(image->vk_format));
> +       if (iview->vk_format != image->vk_format) {
> +               iview->extent.width = round_up_u32(iview->extent.width *
> vk_format_get_blockwidth(iview->vk_format),
> +                                                 
> vk_format_get_blockwidth(image->vk_format));
> +               iview->extent.height = round_up_u32(iview->extent.height
> * vk_format_get_blockheight(iview->vk_format),
> +                                                  
> vk_format_get_blockheight(image->vk_format));
> +       }
>  
>  	iview->base_layer = range->baseArrayLayer;
>  	iview->layer_count = radv_get_layerCount(image, range);
> -- 
> 2.9.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list