Mesa (master): radv/image: don't rescale width/height if the format isn' t changing

Dave Airlie airlied at kemper.freedesktop.org
Thu Aug 24 00:15:11 UTC 2017


Module: Mesa
Branch: master
Commit: a74d98743115b928eaeabc0d58b63174158aa209
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a74d98743115b928eaeabc0d58b63174158aa209

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Aug 21 13:58:27 2017 +1000

radv/image: don't rescale width/height if the format isn't changing

If the image view has the same format, we don't need to rescale
the w/h.

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Cc: "17.2" <mesa-stable at lists.freedesktop.org>
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 5e38041170..ddf15bc836 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);




More information about the mesa-commit mailing list