From fc84455d0d1cb6b9396ba869a17d6f8d4b65ecc6 Mon Sep 17 00:00:00 2001 From: lucy96chen <47800040+lucy96chen@users.noreply.github.com> Date: Wed, 1 Jun 2022 14:33:21 -0700 Subject: 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 --- build/visual-studio/gfx/gfx.vcxproj.filters | 92 ++++++++++++++--------------- tools/gfx/vulkan/render-vk.cpp | 89 ---------------------------- tools/gfx/vulkan/render-vk.h | 48 --------------- tools/gfx/vulkan/vk-device.cpp | 14 +++-- 4 files changed, 56 insertions(+), 187 deletions(-) delete mode 100644 tools/gfx/vulkan/render-vk.cpp delete mode 100644 tools/gfx/vulkan/render-vk.h diff --git a/build/visual-studio/gfx/gfx.vcxproj.filters b/build/visual-studio/gfx/gfx.vcxproj.filters index c9544a85f..b663bf704 100644 --- a/build/visual-studio/gfx/gfx.vcxproj.filters +++ b/build/visual-studio/gfx/gfx.vcxproj.filters @@ -150,82 +150,82 @@ Header Files - - Header Files - - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files Header Files - + Header Files - + Header Files Header Files - + + Header Files + + Header Files @@ -341,76 +341,76 @@ Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files Source Files - + Source Files - + Source Files Source Files - + Source Files diff --git a/tools/gfx/vulkan/render-vk.cpp b/tools/gfx/vulkan/render-vk.cpp deleted file mode 100644 index 83b9e979b..000000000 --- a/tools/gfx/vulkan/render-vk.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// render-vk.cpp -#include "render-vk.h" -#include "core/slang-blob.h" -#include "vk-util.h" - -// Vulkan has a different coordinate system to ogl -// http://anki3d.org/vulkan-coordinate-system/ -#ifndef ENABLE_VALIDATION_LAYER -# if _DEBUG -# define ENABLE_VALIDATION_LAYER 1 -# else -# define ENABLE_VALIDATION_LAYER 0 -# endif -#endif - -#ifdef _MSC_VER -# include -# pragma warning(disable : 4996) -# if (_MSC_VER < 1900) -# define snprintf sprintf_s -# endif -#endif - -#if SLANG_WINDOWS_FAMILY -# include -#endif - -namespace gfx -{ -using namespace Slang; - -namespace vk -{ -namespace -{ - -} // namespace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} // namespace vk - - - -} // namespace gfx diff --git a/tools/gfx/vulkan/render-vk.h b/tools/gfx/vulkan/render-vk.h deleted file mode 100644 index cd4a79b07..000000000 --- a/tools/gfx/vulkan/render-vk.h +++ /dev/null @@ -1,48 +0,0 @@ -// render-vk.h -#pragma once - -#include "../command-encoder-com-forward.h" -#include "../mutable-shader-object.h" -#include "../renderer-shared.h" -#include "../transient-resource-heap-base.h" -#include "core/slang-chunked-list.h" -#include "vk-api.h" -#include "vk-descriptor-allocator.h" -#include "vk-device-queue.h" - -namespace gfx -{ -namespace vk -{ -using namespace Slang; - -enum -{ - - kMaxPushConstantSize = 256, - kMaxDescriptorSets = 8, -}; - - - - - - - - - - - - - - - - - - - - - - -} // namespace vk -} // namespace gfx 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; -- cgit v1.2.3