diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index 0f21fb27..25e746f6 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -94,7 +94,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h #endif -static_assert( VK_HEADER_VERSION == 164 , "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 165 , "Wrong VK_HEADER_VERSION!" ); // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION @@ -3686,36 +3686,6 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const * m_dispatch = nullptr; }; - template - class ObjectReleaseExt - { - public: - ObjectReleaseExt() = default; - - ObjectReleaseExt( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT - { - return m_owner; - } - - protected: - template - void destroy( T t ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.releaseExt( t, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Dispatch const * m_dispatch = nullptr; - }; - - template class PoolFree { @@ -15268,11 +15238,11 @@ namespace VULKAN_HPP_NAMESPACE : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( static_cast( geometries_.size() ) ), pGeometries( geometries_.data() ), ppGeometries( pGeometries_.data() ), scratchData( scratchData_ ) { #ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( geometries_.size() == pGeometries_.size() ); + VULKAN_HPP_ASSERT( geometries_.empty() || pGeometries_.empty() || ( geometries_.size() == pGeometries_.size() ) ); #else - if ( geometries_.size() != pGeometries_.size() ) + if ( !geometries_.empty() && !pGeometries_.empty() && ( geometries_.size() != pGeometries_.size() ) ) { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: geometries_.size() != pGeometries_.size()" ); + throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: !geometries_.empty() && !pGeometries_.empty() && ( geometries_.size() != pGeometries_.size() )" ); } #endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } @@ -29607,6 +29577,12 @@ namespace VULKAN_HPP_NAMESPACE { *this = rhs; } + +#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) + DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) + : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ) + {} +#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT @@ -29645,6 +29621,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } +#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) + DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) VULKAN_HPP_NOEXCEPT + { + descriptorSetCount = static_cast( setLayouts_.size() ); + pSetLayouts = setLayouts_.data(); + return *this; + } +#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) + operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT { @@ -92171,7 +92156,7 @@ namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_NAMESPACE::DisplayKHR display; Result result = static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); - ObjectReleaseExt deleter( *this, d ); + ObjectRelease deleter( *this, d ); return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique", deleter ); } # endif /*VULKAN_HPP_NO_SMART_HANDLE*/ diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 0faf4ca3..7295571b 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -43,7 +43,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 164 +#define VK_HEADER_VERSION 165 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) diff --git a/registry/validusage.json b/registry/validusage.json index ede24ef7..19d65e57 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.2.164", - "comment": "from git branch: github-main commit: 8f718b4194ed1e0a572d37072e5558dd9ceabcb0", - "date": "2020-12-07 11:19:04Z" + "api version": "1.2.165", + "comment": "from git branch: github-main commit: ffbc67c499b92e864ad51275e606468975b5e397", + "date": "2020-12-14 05:44:28Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -1250,6 +1250,10 @@ "vuid": "VUID-vkQueueSubmit-pSubmits-02808", "text": " Any resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed" }, + { + "vuid": "VUID-vkQueueSubmit-pSubmits-04626", + "text": " Any resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time" + }, { "vuid": "VUID-vkQueueSubmit-queue-parameter", "text": " queue must be a valid VkQueue handle" @@ -5088,7 +5092,7 @@ }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04535", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.pname:layerCount greater than or equal to layers" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layers" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883", @@ -5664,31 +5668,31 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03210", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-04627", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216", @@ -7108,11 +7112,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", - "text": " If a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with identical Stream values that match the rasterizationStream" + "text": " If a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", - "text": " If VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with a Stream value of zero, or must not specify the Stream decoration" + "text": " If VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", @@ -14478,11 +14482,15 @@ }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", - "text": " pSetLayouts must be a valid pointer to a valid VkDescriptorSetLayout handle" + "text": " pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength", + "text": " descriptorSetCount must be greater than 0" }, { "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent", - "text": " Both of descriptorPool, and pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" } ] }, @@ -29922,7 +29930,7 @@ }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", - "text": " The width and height members of imageExtent must be less than VkPhysicalDeviceLimits::maxImageDimension2D" + "text": " The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D" }, { "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType", @@ -30810,7 +30818,7 @@ }, { "vuid": "VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618", - "text": " It is only valid to call vkSetLocalDimmingAMD if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported" + "text": " VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported" } ] }, @@ -32129,12 +32137,12 @@ "VkStridedDeviceAddressRegionKHR": { "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [ { - "vuid": "VUID-VkStridedDeviceAddressRegionKHR-deviceAddress-03630", - "text": " If deviceAddress is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer" + "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04631", + "text": " If size is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer" }, { - "vuid": "VUID-VkStridedDeviceAddressRegionKHR-deviceAddress-03631", - "text": " If deviceAddress is not zero, stride must be less than the size of the buffer from which deviceAddress was queried" + "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632", + "text": " If size is not zero, stride must be less than the size of the buffer from which deviceAddress was queried" } ] }, @@ -32554,6 +32562,18 @@ }, "vkCmdBuildAccelerationStructuresKHR": { "core": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628", + "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", + "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630", + "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403", "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" @@ -32832,6 +32852,18 @@ }, "vkCmdBuildAccelerationStructuresIndirectKHR": { "core": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628", + "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629", + "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630", + "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403", "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" @@ -33206,18 +33238,6 @@ "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter", "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values" }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-mode-parameter", - "text": " mode must be a valid VkBuildAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-srcAccelerationStructure-parameter", - "text": " If srcAccelerationStructure is not VK_NULL_HANDLE, srcAccelerationStructure must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-parameter", - "text": " If dstAccelerationStructure is not VK_NULL_HANDLE, dstAccelerationStructure must be a valid VkAccelerationStructureKHR handle" - }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter", "text": " If geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid VkAccelerationStructureGeometryKHR structures" @@ -33870,6 +33890,18 @@ }, "vkBuildAccelerationStructuresKHR": { "core": [ + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-mode-04628", + "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", + "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04630", + "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" + }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03403", "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" @@ -36609,6 +36641,326 @@ "text": " pNext must be NULL" } ] + }, + "StandaloneSpirv": { + "core": [ + { + "vuid": "VUID-StandaloneSpirv-None-04633", + "text": " Every entry point must have no return value and accept no arguments" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04634", + "text": " The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04635", + "text": " The Logical or PhysicalStorageBuffer64 addressing model must be selected" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04636", + "text": " Scope for execution must be limited to Workgroup or Subgroup" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04637", + "text": " If the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute execution models" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04638", + "text": " Scope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04639", + "text": " If the Scope for memory is Workgroup, then it must only be used in the task, mesh, or compute execution models" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04640", + "text": " If the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable execution models" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04641", + "text": " If the Scope for memory is Invocation, then memory semantics must be None" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04642", + "text": " Scope for Non Uniform Group Operations must be limited to Subgroup" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04643", + "text": " Storage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, or PhysicalStorageBuffer" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04644", + "text": " If the Storage Class is Output, then it must not be used in the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR execution models" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04645", + "text": " If the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute execution models" + }, + { + "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04646", + "text": " Acquire memory semantics must not be used with OpAtomicStore" + }, + { + "vuid": "VUID-StandaloneSpirv-OpAtomicLoad-04647", + "text": " Release memory semantics must not be used with OpAtomicLoad" + }, + { + "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04648", + "text": " AcquireRelease memory semantics must not be used with OpAtomicStore or OpAtomicLoad" + }, + { + "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04649", + "text": " OpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics and must include at least one storage class" + }, + { + "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04650", + "text": " If the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one storage class" + }, + { + "vuid": "VUID-StandaloneSpirv-OpVariable-04651", + "text": " Any OpVariable with an Initializer operand must have Output, Private, or Function as its Storage Class operand" + }, + { + "vuid": "VUID-StandaloneSpirv-OpReadClockKHR-04652", + "text": " Scope for OpReadClockKHR must be limited to Subgroup or Device" + }, + { + "vuid": "VUID-StandaloneSpirv-OriginLowerLeft-04653", + "text": " The OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft" + }, + { + "vuid": "VUID-StandaloneSpirv-PixelCenterInteger-04654", + "text": " The PixelCenterInteger execution mode must not be used (pixels are always centered at half-integer coordinates)" + }, + { + "vuid": "VUID-StandaloneSpirv-UniformConstant-04655", + "text": " Any variable in the UniformConstant storage class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeImage-04656", + "text": " OpTypeImage must declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the “Sampled Type” (RelaxedPrecision can be applied to a sampling instruction and to the variable holding the result of a sampling instruction)" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeImage-04657", + "text": " OpTypeImage must have a “Sampled” operand of 1 (sampled image) or 2 (storage image)" + }, + { + "vuid": "VUID-StandaloneSpirv-OpImageTexelPointer-04658", + "text": " If an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui" + }, + { + "vuid": "VUID-StandaloneSpirv-OpImageQuerySizeLod-04659", + "text": " OpImageQuerySizeLod, and OpImageQueryLevels must only consume an “Image” operand whose type has its “Sampled” operand set to 1" + }, + { + "vuid": "VUID-StandaloneSpirv-SubpassData-04660", + "text": " The (u,v) coordinates used for a SubpassData must be the <id> of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeImage-04661", + "text": " Objects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, and arrays of these types must not be stored to or modified" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04662", + "text": " Any image operation must use at most one of the Offset, ConstOffset, and ConstOffsets image operands" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04663", + "text": " Image operand Offset must only be used with OpImage*Gather instructions" + }, + { + "vuid": "VUID-StandaloneSpirv-OpImageGather-04664", + "text": " The “Component” operand of OpImageGather, and OpImageSparseGather must be the <id> of a constant instruction" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeAccelerationStructureKHR-04665", + "text": " Objects of types OpTypeAccelerationStructureKHR and arrays of this type must not be stored to or modified" + }, + { + "vuid": "VUID-StandaloneSpirv-OpReportIntersectionKHR-04666", + "text": " The value of the “Hit Kind” operand of OpReportIntersectionKHR must be in the range [0,127]" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04667", + "text": " Structure types must not contain opaque types" + }, + { + "vuid": "VUID-StandaloneSpirv-BuiltIn-04668", + "text": " Any BuiltIn decoration not listed in Built-In Variables must not be used" + }, + { + "vuid": "VUID-StandaloneSpirv-GLSLShared-04669", + "text": " The GLSLShared and GLSLPacked decorations must not be used" + }, + { + "vuid": "VUID-StandaloneSpirv-Flat-04670", + "text": " The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with storage class other than Input or on variables used in the interface of non-fragment shader entry points" + }, + { + "vuid": "VUID-StandaloneSpirv-Patch-04671", + "text": " The Patch decoration must not be used on variables in the interface of a vertex, geometry, or fragment shader stage’s entry point" + }, + { + "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04672", + "text": " The ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages" + }, + { + "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04673", + "text": " The ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint" + }, + { + "vuid": "VUID-StandaloneSpirv-ViewportMaskNV-04674", + "text": " The ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint’s that form the vertex processing stages of a graphics pipeline" + }, + { + "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04675", + "text": " Only the round-to-nearest-even and the round-towards-zero rounding modes can be used for the FPRoundingMode decoration" + }, + { + "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04676", + "text": " The FPRoundingMode decoration can only be used for the floating-point conversion instructions as described in the SPV_KHR_16bit_storage SPIR-V extension" + }, + { + "vuid": "VUID-StandaloneSpirv-Invariant-04677", + "text": " Variables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input storage class, Invariant used on an Input storage class variable or structure member has no effect" + }, + { + "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04678", + "text": " If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" + }, + { + "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04679", + "text": " If the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeRuntimeArray-04680", + "text": " OpTypeRuntimeArray must only be used for the last member of an OpTypeStruct that is in the StorageBuffer or PhysicalStorageBuffer storage class decorated as Block, or that is in the Uniform storage class decorated as BufferBlock" + }, + { + "vuid": "VUID-StandaloneSpirv-Function-04681", + "text": " A type T that is an array sized with a specialization constant can be, or be contained in, the type of a Variable V only if: T is the (top-level) type of V; V is declared in the Function, Private, or Workgroup storage classes; V is an interface variable with an additional level of arrayness, as described in interface matching, in which case T is allowed to be the element type of the (top-level) type of V" + }, + { + "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04682", + "text": " If OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup" + }, + { + "vuid": "VUID-StandaloneSpirv-LocalSize-04683", + "text": " For each compute shader entry point, either a LocalSize execution mode or an object decorated with the WorkgroupSize decoration must be specified" + }, + { + "vuid": "VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684", + "text": " For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two" + }, + { + "vuid": "VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685", + "text": " If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan" + }, + { + "vuid": "VUID-StandaloneSpirv-None-04686", + "text": " The Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04687", + "text": " Output variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04688", + "text": " Any output block or block member decorated with Offset containing a 64-bit type consumes a multiple of 8 bytes" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04689", + "text": " The size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04690", + "text": " The first member of an output block that specifies a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04691", + "text": " Output variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary" + }, + { + "vuid": "VUID-StandaloneSpirv-Offset-04692", + "text": " Output variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size" + }, + { + "vuid": "VUID-StandaloneSpirv-XfbBuffer-04693", + "text": " All variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values" + }, + { + "vuid": "VUID-StandaloneSpirv-Stream-04694", + "text": " If any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value" + }, + { + "vuid": "VUID-StandaloneSpirv-Stream-04695", + "text": " Output variables, blocks or block members that are not decorated with Stream default to vertex stream zero" + }, + { + "vuid": "VUID-StandaloneSpirv-XfbBuffer-04696", + "text": " For any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap" + }, + { + "vuid": "VUID-StandaloneSpirv-XfbBuffer-04697", + "text": " All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value" + }, + { + "vuid": "VUID-StandaloneSpirv-RayPayloadKHR-04698", + "text": " RayPayloadKHR storage class must only be used in ray generation, any-hit, closest hit or miss shaders" + }, + { + "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699", + "text": " IncomingRayPayloadKHR storage class must only be used in closest hit, any-hit, or miss shaders" + }, + { + "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700", + "text": " There must be at most one variable with the IncomingRayPayloadKHR storage class in the input interface of an entry point" + }, + { + "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04701", + "text": " HitAttributeKHR storage class must only be used in intersection, any-hit, or closest hit shaders" + }, + { + "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04702", + "text": " There must be at most one variable with the HitAttributeKHR storage class in the input interface of an entry point" + }, + { + "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04703", + "text": " A variable with HitAttributeKHR storage class must only be written to in an intersection shader" + }, + { + "vuid": "VUID-StandaloneSpirv-CallableDataKHR-04704", + "text": " CallableDataKHR storage class must only be used in ray generation, closest hit, miss, and callable shaders" + }, + { + "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04705", + "text": " IncomingCallableDataKHR storage class must only be used in callable shaders" + }, + { + "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04706", + "text": " There must be at most one variable with the IncomingCallableDataKHR storage class in the input interface of an entry point" + }, + { + "vuid": "VUID-StandaloneSpirv-Base-04707", + "text": " The Base operand of OpPtrAccessChain must point to one of the following: Workgroup, if VariablePointers is enabled; StorageBuffer, if VariablePointers or VariablePointersStorageBuffer is enabled; PhysicalStorageBuffer, if the PhysicalStorageBuffer64 addressing model is enabled" + }, + { + "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708", + "text": " If the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand" + }, + { + "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709", + "text": " If the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore" + }, + { + "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710", + "text": " If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeForwardPointer-04711", + "text": " OpTypeForwardPointer must have a storage class of PhysicalStorageBuffer" + } + ] } } } \ No newline at end of file diff --git a/registry/vk.xml b/registry/vk.xml index 0b9d3db1..084823b9 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -137,7 +137,7 @@ branch of the member gitlab server. // Vulkan 1.2 version number #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 164 +#define VK_HEADER_VERSION 165 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) @@ -1083,7 +1083,7 @@ typedef void CAMetalLayer; const void* pNext VkDescriptorPool descriptorPool uint32_t descriptorSetCount - const VkDescriptorSetLayout* pSetLayouts + const VkDescriptorSetLayout* pSetLayouts uint32_t constantIDThe SpecConstant ID specified in the BIL @@ -4766,12 +4766,12 @@ typedef void CAMetalLayer; const void* pNext VkAccelerationStructureTypeKHR type VkBuildAccelerationStructureFlagsKHR flags - VkBuildAccelerationStructureModeKHR mode - VkAccelerationStructureKHR srcAccelerationStructure - VkAccelerationStructureKHR dstAccelerationStructure + VkBuildAccelerationStructureModeKHR mode + VkAccelerationStructureKHR srcAccelerationStructure + VkAccelerationStructureKHR dstAccelerationStructure uint32_t geometryCount - const VkAccelerationStructureGeometryKHR* pGeometries - const VkAccelerationStructureGeometryKHR* const* ppGeometries + const VkAccelerationStructureGeometryKHR* pGeometries + const VkAccelerationStructureGeometryKHR* const* ppGeometries VkDeviceOrHostAddressKHR scratchData @@ -5680,31 +5680,31 @@ typedef void CAMetalLayer; - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + Flags @@ -10331,7 +10331,7 @@ typedef void CAMetalLayer; - + @@ -10356,7 +10356,7 @@ typedef void CAMetalLayer; - + @@ -10398,8 +10398,8 @@ typedef void CAMetalLayer; - - + + @@ -10523,7 +10523,7 @@ typedef void CAMetalLayer; - + @@ -11888,7 +11888,7 @@ typedef void CAMetalLayer; - + @@ -12476,7 +12476,7 @@ typedef void CAMetalLayer; - + @@ -13801,7 +13801,7 @@ typedef void CAMetalLayer; - + @@ -14584,6 +14584,12 @@ typedef void CAMetalLayer; + + + + + +