diff --git a/include/vkcv/ShaderStage.hpp b/include/vkcv/ShaderStage.hpp index 2b6ab23ca623bb837d3e4fd3c5b22ca3b187fd43..24d3e554a6d5cbca828398181ae16565062e4e19 100644 --- a/include/vkcv/ShaderStage.hpp +++ b/include/vkcv/ShaderStage.hpp @@ -14,48 +14,51 @@ namespace vkcv { * @brief Enum class to specify the stage of a shader. */ enum class ShaderStage : VkShaderStageFlags { - VERTEX = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eVertex), + VERTEX = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex), TESS_CONTROL = - static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTessellationControl), + static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eTessellationControl), TESS_EVAL = - static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTessellationEvaluation), - GEOMETRY = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eGeometry), - FRAGMENT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eFragment), - COMPUTE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCompute), - TASK = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTaskNV), - MESH = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMeshNV), - RAY_GEN = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eRaygenKHR), - RAY_ANY_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eAnyHitKHR), - RAY_CLOSEST_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eClosestHitKHR), - RAY_MISS = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMissKHR), + static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eTessellationEvaluation), + GEOMETRY = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eGeometry), + FRAGMENT = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eFragment), + COMPUTE = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eCompute), + TASK = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eTaskNV), + MESH = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eMeshNV), + RAY_GEN = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eRaygenKHR), + RAY_ANY_HIT = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eAnyHitKHR), + RAY_CLOSEST_HIT = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eClosestHitKHR), + RAY_MISS = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eMissKHR), RAY_INTERSECTION = - static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eIntersectionKHR), - RAY_CALLABLE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCallableKHR) + static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eIntersectionKHR), + RAY_CALLABLE = static_cast<VkShaderStageFlags>(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eCallableKHR) }; - using ShaderStages = vk::Flags<ShaderStage>; + using ShaderStages = VULKAN_HPP_NAMESPACE::Flags<ShaderStage>; } // namespace vkcv /** * @cond VULKAN_TYPES */ -namespace vk { +namespace VULKAN_HPP_NAMESPACE { template <> struct [[maybe_unused]] FlagTraits<vkcv::ShaderStage> { - enum : VkFlags { - allFlags [[maybe_unused]] = - (VkFlags(vkcv::ShaderStage::VERTEX) | VkFlags(vkcv::ShaderStage::TESS_CONTROL) - | VkFlags(vkcv::ShaderStage::TESS_EVAL) | VkFlags(vkcv::ShaderStage::GEOMETRY) - | VkFlags(vkcv::ShaderStage::FRAGMENT) | VkFlags(vkcv::ShaderStage::COMPUTE) - | VkFlags(vkcv::ShaderStage::TASK) | VkFlags(vkcv::ShaderStage::MESH) - | VkFlags(vkcv::ShaderStage::RAY_GEN) | VkFlags(vkcv::ShaderStage::RAY_ANY_HIT) - | VkFlags(vkcv::ShaderStage::RAY_CLOSEST_HIT) - | VkFlags(vkcv::ShaderStage::RAY_MISS) - | VkFlags(vkcv::ShaderStage::RAY_INTERSECTION) - | VkFlags(vkcv::ShaderStage::RAY_CALLABLE)) - }; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR Flags<vkcv::ShaderStage> allFlags = + vkcv::ShaderStage::VERTEX + | vkcv::ShaderStage::TESS_CONTROL + | vkcv::ShaderStage::TESS_EVAL + | vkcv::ShaderStage::GEOMETRY + | vkcv::ShaderStage::FRAGMENT + | vkcv::ShaderStage::TASK + | vkcv::ShaderStage::MESH + | vkcv::ShaderStage::RAY_GEN + | vkcv::ShaderStage::RAY_ANY_HIT + | vkcv::ShaderStage::RAY_CLOSEST_HIT + | vkcv::ShaderStage::RAY_MISS + | vkcv::ShaderStage::RAY_INTERSECTION + | vkcv::ShaderStage::RAY_CALLABLE; }; } // namespace vk @@ -65,8 +68,8 @@ namespace vk { namespace vkcv { - constexpr vk::ShaderStageFlags getShaderStageFlags(ShaderStages shaderStages) noexcept { - return vk::ShaderStageFlags(static_cast<VkShaderStageFlags>(shaderStages)); + constexpr VULKAN_HPP_NAMESPACE::ShaderStageFlags getShaderStageFlags(ShaderStages shaderStages) noexcept { + return VULKAN_HPP_NAMESPACE::ShaderStageFlags(static_cast<VkShaderStageFlags>(shaderStages)); } constexpr ShaderStages operator|(ShaderStage stage0, ShaderStage stage1) noexcept { diff --git a/lib/Vulkan-Headers b/lib/Vulkan-Headers index 8ba8294c86d0e99fcb457bedbd573dd678ccc9b3..b092b2fccc812453c1d0ec0a829eb8f34f174803 160000 --- a/lib/Vulkan-Headers +++ b/lib/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 8ba8294c86d0e99fcb457bedbd573dd678ccc9b3 +Subproject commit b092b2fccc812453c1d0ec0a829eb8f34f174803 diff --git a/lib/Vulkan-Hpp b/lib/Vulkan-Hpp index ef609a2f77dd1756e672712f264e76b64acdba61..a577b390e8651e9b1351d7c6839a4f43303c0f34 160000 --- a/lib/Vulkan-Hpp +++ b/lib/Vulkan-Hpp @@ -1 +1 @@ -Subproject commit ef609a2f77dd1756e672712f264e76b64acdba61 +Subproject commit a577b390e8651e9b1351d7c6839a4f43303c0f34 diff --git a/lib/VulkanMemoryAllocator b/lib/VulkanMemoryAllocator index c351692490513cdb0e5a2c925aaf7ea4a9b672f4..73d13a83ede142fa030d84e603a313831fcc424a 160000 --- a/lib/VulkanMemoryAllocator +++ b/lib/VulkanMemoryAllocator @@ -1 +1 @@ -Subproject commit c351692490513cdb0e5a2c925aaf7ea4a9b672f4 +Subproject commit 73d13a83ede142fa030d84e603a313831fcc424a diff --git a/lib/VulkanMemoryAllocator-Hpp b/lib/VulkanMemoryAllocator-Hpp index e00a0b1ab8bba230e8c701423540ff3828aea2d5..62b1d32e96acf36f6da619d3f818d2edc7cbbc7b 160000 --- a/lib/VulkanMemoryAllocator-Hpp +++ b/lib/VulkanMemoryAllocator-Hpp @@ -1 +1 @@ -Subproject commit e00a0b1ab8bba230e8c701423540ff3828aea2d5 +Subproject commit 62b1d32e96acf36f6da619d3f818d2edc7cbbc7b diff --git a/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp b/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp index bd5453abae353eed6739c41dbff084a0c909aaca..acefa3cb92c2646bafccc85bf75015f17a30313d 100644 --- a/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp +++ b/projects/rtx_ambient_occlusion/src/RTX/RTX.cpp @@ -280,7 +280,7 @@ namespace vkcv::rtx { shaderStages.data(), // const vk::PipelineShaderStageCreateInfo* pStages_ = {} (uint32_t) shaderGroups.size(), // uint32_t groupCount_ = {} shaderGroups.data(), // const vk::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {} - 16, // uint32_t maxPipelineRayRecursionDepth_ = {} + 1, // uint32_t maxPipelineRayRecursionDepth_ = {} &rtxPipelineLibraryCreateInfo, // const vk::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {} nullptr, // const vk::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {} nullptr, // const vk::PipelineDynamicStateCreateInfo* pDynamicState_ = {}