aboutsummaryrefslogtreecommitdiff
path: root/layers/vk_layer_utils.cpp
diff options
context:
space:
mode:
authorDave Houlton <daveh@lunarg.com>2017-03-01 16:23:25 -0700
committerDave Houlton <daveh@lunarg.com>2017-03-07 11:19:42 -0700
commit6072cc914a1807b803601f7da928edfd4b150104 (patch)
treec2e120132636a58475c0189414055ff9c19bbbe7 /layers/vk_layer_utils.cpp
parent713cefc6f3d451e3f4f9b6034b068f9193bf944d (diff)
downloadusermoji-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.cpp32
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;