Bug 12998: change ImageSubresourceRange's aspect to aspectMask
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index f1191a1..704e540 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -1296,7 +1296,7 @@
VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT; // Going to check contents
const VkImageSubresourceRange range =
- vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_COLOR);
+ vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_COLOR_BIT);
std::vector<VkImageSubresourceRange> ranges(&range, &range + 1);
test_clear_color_image(img_info, color, ranges);
@@ -1476,14 +1476,14 @@
img_info.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
const VkImageSubresourceRange range =
- vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_DEPTH);
+ vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_DEPTH_BIT);
std::vector<VkImageSubresourceRange> ranges(&range, &range + 1);
if (it->format == VK_FORMAT_D32_SFLOAT_S8_UINT ||
it->format == VK_FORMAT_D16_UNORM_S8_UINT ||
it->format == VK_FORMAT_D24_UNORM_S8_UINT) {
const VkImageSubresourceRange range2 =
- vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_STENCIL);
+ vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_STENCIL_BIT);
ranges.push_back(range2);
}
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index fed5eae..4759e5c 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -289,7 +289,7 @@
viewInfo.subresourceRange.arraySize = 1;
viewInfo.subresourceRange.baseMipLevel = 0;
viewInfo.subresourceRange.mipLevels = 1;
- viewInfo.subresourceRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ viewInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
// VkResult VKAPI vkCreateImageView(
// VkDevice device,
diff --git a/tests/init.cpp b/tests/init.cpp
index 00b68ae..f933af3 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -463,7 +463,7 @@
viewInfo.subresourceRange.arraySize = 1;
viewInfo.subresourceRange.baseMipLevel = 0;
viewInfo.subresourceRange.mipLevels = 1;
- viewInfo.subresourceRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ viewInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
// VkResult VKAPI vkCreateImageView(
// VkDevice device,
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 708cab8..a199c19 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -862,7 +862,7 @@
view.channels.g = VK_CHANNEL_SWIZZLE_G;
view.channels.b = VK_CHANNEL_SWIZZLE_B;
view.channels.a = VK_CHANNEL_SWIZZLE_A;
- view.subresourceRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ view.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
view.subresourceRange.baseMipLevel = 0;
view.subresourceRange.mipLevels = 1;
view.subresourceRange.baseArrayLayer = 0;
@@ -1357,7 +1357,7 @@
// whatever we want to do, we do it to the whole buffer
VkImageSubresourceRange srRange = {};
- srRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ srRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
srRange.baseMipLevel = 0;
srRange.mipLevels = VK_REMAINING_MIP_LEVELS;
srRange.baseArrayLayer = 0;
@@ -1389,7 +1389,7 @@
if (depthStencilObj)
{
VkImageSubresourceRange dsRange = {};
- dsRange.aspect = VK_IMAGE_ASPECT_DEPTH;
+ dsRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT;
dsRange.baseMipLevel = 0;
dsRange.mipLevels = VK_REMAINING_MIP_LEVELS;
dsRange.baseArrayLayer = 0;
@@ -1444,7 +1444,7 @@
VK_MEMORY_INPUT_TRANSFER_BIT;
VkImageSubresourceRange srRange = {};
- srRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ srRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
srRange.baseMipLevel = 0;
srRange.mipLevels = VK_REMAINING_MIP_LEVELS;
srRange.baseArrayLayer = 0;
@@ -1614,7 +1614,7 @@
view_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
view_info.pNext = NULL;
view_info.image = VK_NULL_HANDLE;
- view_info.subresourceRange.aspect = VK_IMAGE_ASPECT_DEPTH;
+ view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT;
view_info.subresourceRange.baseMipLevel = 0;
view_info.subresourceRange.mipLevels = 1;
view_info.subresourceRange.baseArrayLayer = 0;
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 7a86501..d1ee018 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -417,13 +417,14 @@
}
static VkImageCreateInfo create_info();
+ static VkImageAspect image_aspect(VkImageAspectFlags flags);
static VkImageSubresource subresource(VkImageAspect aspect, uint32_t mip_level, uint32_t array_layer);
static VkImageSubresource subresource(const VkImageSubresourceRange &range, uint32_t mip_level, uint32_t array_layer);
static VkImageSubresourceCopy subresource(VkImageAspect aspect, uint32_t mip_level, uint32_t array_layer, uint32_t array_size);
static VkImageSubresourceCopy subresource(const VkImageSubresourceRange &range, uint32_t mip_level, uint32_t array_layer, uint32_t array_size);
- static VkImageSubresourceRange subresource_range(VkImageAspect aspect, uint32_t base_mip_level, uint32_t mip_levels,
+ static VkImageSubresourceRange subresource_range(VkImageAspectFlags aspect_mask, uint32_t base_mip_level, uint32_t mip_levels,
uint32_t base_array_layer, uint32_t array_size);
- static VkImageSubresourceRange subresource_range(const VkImageCreateInfo &info, VkImageAspect aspect);
+ static VkImageSubresourceRange subresource_range(const VkImageCreateInfo &info, VkImageAspectFlags aspect_mask);
static VkImageSubresourceRange subresource_range(const VkImageSubresource &subres);
static VkExtent2D extent(int32_t width, int32_t height);
@@ -722,7 +723,7 @@
inline VkImageSubresource Image::subresource(const VkImageSubresourceRange &range, uint32_t mip_level, uint32_t array_layer)
{
- return subresource(range.aspect, range.baseMipLevel + mip_level, range.baseArrayLayer + array_layer);
+ return subresource(image_aspect(range.aspectMask), range.baseMipLevel + mip_level, range.baseArrayLayer + array_layer);
}
inline VkImageSubresourceCopy Image::subresource(VkImageAspect aspect, uint32_t mip_level, uint32_t array_layer, uint32_t array_size)
@@ -735,16 +736,37 @@
return subres;
}
-inline VkImageSubresourceCopy Image::subresource(const VkImageSubresourceRange &range, uint32_t mip_level, uint32_t array_layer, uint32_t array_size)
+inline VkImageAspect Image::image_aspect(VkImageAspectFlags flags)
{
- return subresource(range.aspect, range.baseMipLevel + mip_level, range.baseArrayLayer + array_layer, array_size);
+ /*
+ * This will map VkImageAspectFlags into a single VkImageAspect.
+ * If there is more than one bit defined we'll get an assertion.
+ */
+ switch (flags) {
+ case VK_IMAGE_ASPECT_COLOR_BIT:
+ return VK_IMAGE_ASPECT_COLOR;
+ case VK_IMAGE_ASPECT_DEPTH_BIT:
+ return VK_IMAGE_ASPECT_DEPTH;
+ case VK_IMAGE_ASPECT_STENCIL_BIT:
+ return VK_IMAGE_ASPECT_STENCIL;
+ case VK_IMAGE_ASPECT_METADATA_BIT:
+ return VK_IMAGE_ASPECT_METADATA;
+ default:
+ assert(!"Invalid VkImageAspect");
+ }
+ return VK_IMAGE_ASPECT_COLOR;
}
-inline VkImageSubresourceRange Image::subresource_range(VkImageAspect aspect, uint32_t base_mip_level, uint32_t mip_levels,
+inline VkImageSubresourceCopy Image::subresource(const VkImageSubresourceRange &range, uint32_t mip_level, uint32_t array_layer, uint32_t array_size)
+{
+ return subresource(image_aspect(range.aspectMask), range.baseMipLevel + mip_level, range.baseArrayLayer + array_layer, array_size);
+}
+
+inline VkImageSubresourceRange Image::subresource_range(VkImageAspectFlags aspect_mask, uint32_t base_mip_level, uint32_t mip_levels,
uint32_t base_array_layer, uint32_t array_size)
{
VkImageSubresourceRange range = {};
- range.aspect = aspect;
+ range.aspectMask = aspect_mask;
range.baseMipLevel = base_mip_level;
range.mipLevels = mip_levels;
range.baseArrayLayer = base_array_layer;
@@ -752,9 +774,9 @@
return range;
}
-inline VkImageSubresourceRange Image::subresource_range(const VkImageCreateInfo &info, VkImageAspect aspect)
+inline VkImageSubresourceRange Image::subresource_range(const VkImageCreateInfo &info, VkImageAspectFlags aspect_mask)
{
- return subresource_range(aspect, 0, info.mipLevels, 0, info.arraySize);
+ return subresource_range(aspect_mask, 0, info.mipLevels, 0, info.arraySize);
}
inline VkImageSubresourceRange Image::subresource_range(const VkImageSubresource &subres)
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index ab8020c..25d392f 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -919,7 +919,7 @@
color_image_view.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
color_image_view.pNext = NULL;
color_image_view.format = m_format;
- color_image_view.subresourceRange.aspect = VK_IMAGE_ASPECT_COLOR;
+ color_image_view.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
color_image_view.subresourceRange.baseMipLevel = 0;
color_image_view.subresourceRange.mipLevels = 1;
color_image_view.subresourceRange.baseArrayLayer = 0;