summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan/vk-device.cpp
diff options
context:
space:
mode:
authorlucy96chen <47800040+lucy96chen@users.noreply.github.com>2022-06-01 14:33:21 -0700
committerGitHub <noreply@github.com>2022-06-01 14:33:21 -0700
commitfc84455d0d1cb6b9396ba869a17d6f8d4b65ecc6 (patch)
tree21465f7fb11efc7329a754c5418126dd8c3906e6 /tools/gfx/vulkan/vk-device.cpp
parent393ce4f746c6697442a3a61debd12101fbe4e9db (diff)
Vulkan validation error fixes (#2254)
* Fixed Vulkan validation errors for incorrect layer counts and view types in Debug * Removed old (and empty) render-vk files; Ran premake.bat
Diffstat (limited to 'tools/gfx/vulkan/vk-device.cpp')
-rw-r--r--tools/gfx/vulkan/vk-device.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp
index 546f581b4..a5e990232 100644
--- a/tools/gfx/vulkan/vk-device.cpp
+++ b/tools/gfx/vulkan/vk-device.cpp
@@ -1589,7 +1589,7 @@ Result DeviceImpl::createTextureView(
return SLANG_OK;
}
- bool isArray = desc.subresourceRange.layerCount > 1;
+ bool isArray = resourceImpl->getDesc()->arraySize > 1;
VkImageViewCreateInfo createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
createInfo.flags = 0;
@@ -1625,9 +1625,15 @@ Result DeviceImpl::createTextureView(
createInfo.subresourceRange.baseArrayLayer = desc.subresourceRange.baseArrayLayer;
createInfo.subresourceRange.baseMipLevel = desc.subresourceRange.mipLevel;
- createInfo.subresourceRange.layerCount = desc.subresourceRange.layerCount == 0
- ? VK_REMAINING_ARRAY_LAYERS
- : desc.subresourceRange.layerCount;
+ createInfo.subresourceRange.layerCount = desc.subresourceRange.layerCount;
+ if (createInfo.subresourceRange.layerCount == 0)
+ {
+ createInfo.subresourceRange.layerCount = isArray ? VK_REMAINING_ARRAY_LAYERS : 1;
+ if (createInfo.viewType == VK_IMAGE_VIEW_TYPE_CUBE)
+ {
+ createInfo.subresourceRange.layerCount = 6;
+ }
+ }
createInfo.subresourceRange.levelCount = desc.subresourceRange.mipLevelCount == 0
? VK_REMAINING_MIP_LEVELS
: desc.subresourceRange.mipLevelCount;