aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorKarl Schultz <karl@lunarg.com>2016-12-09 16:34:16 -0700
committerKarl Schultz <karl@lunarg.com>2016-12-12 09:29:43 -0700
commitdba95552978423417af16ecf6e473d9773c7d76a (patch)
treedbc4d1dabf9548e92b1284dd85e8c1b164fa029e /layers/core_validation.cpp
parent12b2d4e319532977607a2c3e294095375c13cf87 (diff)
downloadusermoji-dba95552978423417af16ecf6e473d9773c7d76a.tar.xz
layers: Use resolved range to avoid long loops
Fixes #1251. Use the resolvedRange instead of the raw range, which could include VK_REMAINING_MIP_LEVELS and/or VK_REMAINING_ARRAY_LAYERS, which are really big numbers. This fixes a near-infinite loop issue when running the input_attachment sample with validation. Change-Id: I250118db74a6faaecd2b3cd4cb43f44c07ae436d
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 647e2090..4ebdf12c 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -8272,11 +8272,11 @@ static bool VerifyClearImageLayout(layer_data *dev_data, GLOBAL_CB_NODE *cb_node
}
}
- for (uint32_t levelIdx = 0; levelIdx < range.levelCount; ++levelIdx) {
- uint32_t level = levelIdx + range.baseMipLevel;
- for (uint32_t layerIdx = 0; layerIdx < range.layerCount; ++layerIdx) {
- uint32_t layer = layerIdx + range.baseArrayLayer;
- VkImageSubresource sub = {range.aspectMask, level, layer};
+ for (uint32_t levelIdx = 0; levelIdx < resolvedRange.levelCount; ++levelIdx) {
+ uint32_t level = levelIdx + resolvedRange.baseMipLevel;
+ for (uint32_t layerIdx = 0; layerIdx < resolvedRange.layerCount; ++layerIdx) {
+ uint32_t layer = layerIdx + resolvedRange.baseArrayLayer;
+ VkImageSubresource sub = {resolvedRange.aspectMask, level, layer};
IMAGE_CMD_BUF_LAYOUT_NODE node;
if (!FindLayout(cb_node, image, sub, node)) {
SetLayout(cb_node, image, sub, IMAGE_CMD_BUF_LAYOUT_NODE(dest_image_layout, dest_image_layout));