From 00e89229bf201f863fc6d45a8c1469f11b7eb6b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Mon, 8 Jul 2024 11:58:51 +0200 Subject: [PATCH] RenderingDevice: Leave handling of compressed block granularity to the driver --- servers/rendering/rendering_device.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp index 801ad1b825a..f3bfe988e31 100644 --- a/servers/rendering/rendering_device.cpp +++ b/servers/rendering/rendering_device.cpp @@ -1617,9 +1617,6 @@ Vector RenderingDevice::texture_get_data(RID p_texture, uint32_t p_laye thread_local LocalVector command_buffer_texture_copy_regions_vector; command_buffer_texture_copy_regions_vector.clear(); - uint32_t block_w = 0, block_h = 0; - get_compressed_image_format_block_dimensions(tex->format, block_w, block_h); - uint32_t w = tex->width; uint32_t h = tex->height; uint32_t d = tex->depth; @@ -1635,8 +1632,8 @@ Vector RenderingDevice::texture_get_data(RID p_texture, uint32_t p_laye copy_region.texture_region_size.z = d; command_buffer_texture_copy_regions_vector.push_back(copy_region); - w = MAX(block_w, w >> 1); - h = MAX(block_h, h >> 1); + w = (w >> 1); + h = (h >> 1); d = MAX(1u, d >> 1); } @@ -1653,6 +1650,10 @@ Vector RenderingDevice::texture_get_data(RID p_texture, uint32_t p_laye const uint8_t *read_ptr = driver->buffer_map(tmp_buffer); ERR_FAIL_NULL_V(read_ptr, Vector()); + uint32_t block_w = 0; + uint32_t block_h = 0; + get_compressed_image_format_block_dimensions(tex->format, block_w, block_h); + Vector buffer_data; uint32_t tight_buffer_size = get_image_format_required_size(tex->format, tex->width, tex->height, tex->depth, tex->mipmaps); buffer_data.resize(tight_buffer_size);