From ed21f1c96257f1fc7fded5db636707dd443779f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Thu, 26 Oct 2023 12:00:31 +0200 Subject: [PATCH] radv: Expose radv_get_dcc_max_uncompressed_block_size function. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device.c | 12 ++++++------ src/amd/vulkan/radv_private.h | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 73783403f5b..f3c92ed7197 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -1433,13 +1433,13 @@ radv_surface_max_layer_count(struct radv_image_view *iview) : (iview->vk.base_array_layer + iview->vk.layer_count); } -static unsigned -get_dcc_max_uncompressed_block_size(const struct radv_device *device, const struct radv_image_view *iview) +unsigned +radv_get_dcc_max_uncompressed_block_size(const struct radv_device *device, const struct radv_image *image) { - if (device->physical_device->rad_info.gfx_level < GFX10 && iview->image->vk.samples > 1) { - if (iview->image->planes[0].surface.bpe == 1) + if (device->physical_device->rad_info.gfx_level < GFX10 && image->vk.samples > 1) { + if (image->planes[0].surface.bpe == 1) return V_028C78_MAX_BLOCK_SIZE_64B; - else if (iview->image->planes[0].surface.bpe == 2) + else if (image->planes[0].surface.bpe == 2) return V_028C78_MAX_BLOCK_SIZE_128B; } @@ -1464,7 +1464,7 @@ get_dcc_min_compressed_block_size(const struct radv_device *device) static uint32_t radv_init_dcc_control_reg(struct radv_device *device, struct radv_image_view *iview) { - unsigned max_uncompressed_block_size = get_dcc_max_uncompressed_block_size(device, iview); + unsigned max_uncompressed_block_size = radv_get_dcc_max_uncompressed_block_size(device, iview->image); unsigned min_compressed_block_size = get_dcc_min_compressed_block_size(device); unsigned max_compressed_block_size; unsigned independent_128b_blocks; diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index ccfb1549401..7fd3583337e 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -2932,6 +2932,8 @@ bool radv_are_formats_dcc_compatible(const struct radv_physical_device *pdev, co bool vi_alpha_is_on_msb(const struct radv_device *device, const VkFormat format); +unsigned radv_get_dcc_max_uncompressed_block_size(const struct radv_device *device, const struct radv_image *image); + VkResult radv_image_from_gralloc(VkDevice device_h, const VkImageCreateInfo *base_info, const VkNativeBufferANDROID *gralloc_info, const VkAllocationCallbacks *alloc, VkImage *out_image_h);