diff options
| author | Dave Houlton <daveh@lunarg.com> | 2017-03-01 16:23:25 -0700 |
|---|---|---|
| committer | Dave Houlton <daveh@lunarg.com> | 2017-03-07 11:19:42 -0700 |
| commit | 6072cc914a1807b803601f7da928edfd4b150104 (patch) | |
| tree | c2e120132636a58475c0189414055ff9c19bbbe7 /layers/vk_layer_utils.cpp | |
| parent | 713cefc6f3d451e3f4f9b6034b068f9193bf944d (diff) | |
| download | usermoji-6072cc914a1807b803601f7da928edfd4b150104.tar.xz | |
layers, Fix checks for GH 1507
Bugfix and refactor for github issue 1507 (and lunar exchange #652).
Fixes buffer size calculation for compressed textures when copy
extent is less than block size, corrected for mip level. Layer tests
modified to avoid breakage from this fix.
Change-Id: If91d6f8c7ce17a3e012923304a3b178e750d2659
Diffstat (limited to 'layers/vk_layer_utils.cpp')
| -rw-r--r-- | layers/vk_layer_utils.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/layers/vk_layer_utils.cpp b/layers/vk_layer_utils.cpp index af911df1..62ccf35f 100644 --- a/layers/vk_layer_utils.cpp +++ b/layers/vk_layer_utils.cpp @@ -703,8 +703,8 @@ VK_LAYER_EXPORT bool vk_format_is_compressed(VkFormat format) { } // Return compressed texel block sizes for block compressed formats -VK_LAYER_EXPORT VkExtent2D vk_format_compressed_texel_block_extents(VkFormat format) { - VkExtent2D block_size = {1, 1}; +VK_LAYER_EXPORT VkExtent3D vk_format_compressed_texel_block_extents(VkFormat format) { + VkExtent3D block_size = {1, 1, 1}; switch (format) { case VK_FORMAT_BC1_RGB_UNORM_BLOCK: case VK_FORMAT_BC1_RGB_SRGB_BLOCK: @@ -734,59 +734,59 @@ VK_LAYER_EXPORT VkExtent2D vk_format_compressed_texel_block_extents(VkFormat for case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: case VK_FORMAT_ASTC_4x4_UNORM_BLOCK: case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: - block_size = {4, 4}; + block_size = {4, 4, 1}; break; case VK_FORMAT_ASTC_5x4_UNORM_BLOCK: case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: - block_size = {5, 4}; + block_size = {5, 4, 1}; break; case VK_FORMAT_ASTC_5x5_UNORM_BLOCK: case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: - block_size = {5, 5}; + block_size = {5, 5, 1}; break; case VK_FORMAT_ASTC_6x5_UNORM_BLOCK: case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: - block_size = {6, 5}; + block_size = {6, 5, 1}; break; case VK_FORMAT_ASTC_6x6_UNORM_BLOCK: case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: - block_size = {6, 6}; + block_size = {6, 6, 1}; break; case VK_FORMAT_ASTC_8x5_UNORM_BLOCK: case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: - block_size = {8, 5}; + block_size = {8, 5, 1}; break; case VK_FORMAT_ASTC_8x6_UNORM_BLOCK: case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: - block_size = {8, 6}; + block_size = {8, 6, 1}; break; case VK_FORMAT_ASTC_8x8_UNORM_BLOCK: case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: - block_size = {8, 8}; + block_size = {8, 8, 1}; break; case VK_FORMAT_ASTC_10x5_UNORM_BLOCK: case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: - block_size = {10, 5}; + block_size = {10, 5, 1}; break; case VK_FORMAT_ASTC_10x6_UNORM_BLOCK: case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: - block_size = {10, 6}; + block_size = {10, 6, 1}; break; case VK_FORMAT_ASTC_10x8_UNORM_BLOCK: case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: - block_size = {10, 8}; + block_size = {10, 8, 1}; break; case VK_FORMAT_ASTC_10x10_UNORM_BLOCK: case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: - block_size = {10, 10}; + block_size = {10, 10, 1}; break; case VK_FORMAT_ASTC_12x10_UNORM_BLOCK: case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: - block_size = {12, 10}; + block_size = {12, 10, 1}; break; case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: - block_size = {12, 12}; + block_size = {12, 12, 1}; break; default: break; |
