From 5ffdab124836df520803e93ff4690a7abce4366c Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 17 Jul 2017 14:26:47 -0600 Subject: header: Update to version 1.0.55 of the Vulkan hdr - updated vulkan.h - updated generator.py - updated reg.py - updated vk.xml - updated Win/Lin json files - fixed and updated vulkan.hpp - updated validation error messages and database - applied validextensionstruct fixes from 1.0.54 LVL vk.xml file - fixed parameter_validation DebugMarker prototypes - fixed unique_objects DebugMarker prototypes - fixed NV_FILL_RECTANGLE in error DB - updated error database with new covered VUs Change-Id: I4eec816a6dc9756105a357beab6af4abb303994d --- include/vulkan/vulkan.h | 25 +- include/vulkan/vulkan.hpp | 68 +- layers/linux/VkLayer_core_validation.json | 2 +- layers/linux/VkLayer_object_tracker.json | 2 +- layers/linux/VkLayer_parameter_validation.json | 2 +- layers/linux/VkLayer_standard_validation.json | 2 +- layers/linux/VkLayer_threading.json | 2 +- layers/linux/VkLayer_unique_objects.json | 2 +- layers/parameter_validation.cpp | 8 +- layers/unique_objects.cpp | 4 +- layers/vk_validation_error_database.txt | 100 +- layers/vk_validation_error_messages.h | 96 +- layers/windows/VkLayer_core_validation.json | 2 +- layers/windows/VkLayer_object_tracker.json | 2 +- layers/windows/VkLayer_parameter_validation.json | 2 +- layers/windows/VkLayer_standard_validation.json | 2 +- layers/windows/VkLayer_threading.json | 2 +- layers/windows/VkLayer_unique_objects.json | 2 +- scripts/generator.py | 7 + scripts/reg.py | 14 + scripts/vk.xml | 1823 +++++++++++----------- 21 files changed, 1127 insertions(+), 1042 deletions(-) diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index 16434fef..f20af411 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -34,16 +34,16 @@ extern "C" { (((major) << 22) | ((minor) << 12) | (patch)) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) +//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) +#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 54 +#define VK_HEADER_VERSION 55 #define VK_NULL_HANDLE 0 @@ -3433,6 +3433,7 @@ typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), @@ -5088,31 +5089,31 @@ typedef struct VkDebugMarkerMarkerInfoEXT { } VkDebugMarkerMarkerInfoEXT; -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo); -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( VkDevice device, - VkDebugMarkerObjectTagInfoEXT* pTagInfo); + const VkDebugMarkerObjectTagInfoEXT* pTagInfo); VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( VkDevice device, - VkDebugMarkerObjectNameInfoEXT* pNameInfo); + const VkDebugMarkerObjectNameInfoEXT* pNameInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, - VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, - VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #endif #define VK_AMD_gcn_shader 1 @@ -6204,7 +6205,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( #endif #define VK_EXT_swapchain_colorspace 1 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 2 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index ef8eed3b..191307f2 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -33,7 +33,7 @@ # include # include #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -static_assert( VK_HEADER_VERSION == 54 , "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 55 , "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 @@ -491,7 +491,7 @@ namespace vk } } - +#ifndef VULKAN_HPP_NO_EXCEPTIONS #if defined(_MSC_VER) && (_MSC_VER == 1800) # define noexcept _NOEXCEPT #endif @@ -760,7 +760,7 @@ namespace vk default: throw SystemError( make_error_code( result ) ); } } - +#endif } // namespace vk namespace std @@ -18444,7 +18444,8 @@ namespace vk eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT, eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT, eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT, - ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT + ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT, + eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT }; struct SurfaceFormatKHR @@ -24118,16 +24119,16 @@ namespace vk void executeCommands( ArrayProxy commandBuffers ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - void debugMarkerBeginEXT( DebugMarkerMarkerInfoEXT* pMarkerInfo ) const; + void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - DebugMarkerMarkerInfoEXT debugMarkerBeginEXT() const; + void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ void debugMarkerEndEXT() const; - void debugMarkerInsertEXT( DebugMarkerMarkerInfoEXT* pMarkerInfo ) const; + void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - DebugMarkerMarkerInfoEXT debugMarkerInsertEXT() const; + void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ void drawIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const; @@ -24570,16 +24571,14 @@ namespace vk } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( DebugMarkerMarkerInfoEXT* pMarkerInfo ) const + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo ) const { - vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); + vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - VULKAN_HPP_INLINE DebugMarkerMarkerInfoEXT CommandBuffer::debugMarkerBeginEXT() const + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const { - DebugMarkerMarkerInfoEXT markerInfo; - vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - return markerInfo; + vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -24588,16 +24587,14 @@ namespace vk vkCmdDebugMarkerEndEXT( m_commandBuffer ); } - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( DebugMarkerMarkerInfoEXT* pMarkerInfo ) const + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo ) const { - vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); + vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - VULKAN_HPP_INLINE DebugMarkerMarkerInfoEXT CommandBuffer::debugMarkerInsertEXT() const + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const { - DebugMarkerMarkerInfoEXT markerInfo; - vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - return markerInfo; + vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -25496,14 +25493,14 @@ namespace vk ResultValue acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - Result debugMarkerSetObjectNameEXT( DebugMarkerObjectNameInfoEXT* pNameInfo ) const; + Result debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT* pNameInfo ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - ResultValueType::type debugMarkerSetObjectNameEXT() const; + ResultValueType::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - Result debugMarkerSetObjectTagEXT( DebugMarkerObjectTagInfoEXT* pTagInfo ) const; + Result debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT* pTagInfo ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - ResultValueType::type debugMarkerSetObjectTagEXT() const; + ResultValueType::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #ifdef VK_USE_PLATFORM_WIN32_KHR @@ -27403,29 +27400,27 @@ namespace vk } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( DebugMarkerObjectNameInfoEXT* pNameInfo ) const + VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT* pNameInfo ) const { - return static_cast( vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); + return static_cast( vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - VULKAN_HPP_INLINE ResultValueType::type Device::debugMarkerSetObjectNameEXT() const + VULKAN_HPP_INLINE ResultValueType::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const { - DebugMarkerObjectNameInfoEXT nameInfo; - Result result = static_cast( vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, nameInfo, "vk::Device::debugMarkerSetObjectNameEXT" ); + Result result = static_cast( vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); + return createResultValue( result, "vk::Device::debugMarkerSetObjectNameEXT" ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( DebugMarkerObjectTagInfoEXT* pTagInfo ) const + VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT* pTagInfo ) const { - return static_cast( vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); + return static_cast( vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - VULKAN_HPP_INLINE ResultValueType::type Device::debugMarkerSetObjectTagEXT() const + VULKAN_HPP_INLINE ResultValueType::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const { - DebugMarkerObjectTagInfoEXT tagInfo; - Result result = static_cast( vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, tagInfo, "vk::Device::debugMarkerSetObjectTagEXT" ); + Result result = static_cast( vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); + return createResultValue( result, "vk::Device::debugMarkerSetObjectTagEXT" ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32129,6 +32124,7 @@ namespace vk case ColorSpaceKHR::eAdobergbLinearEXT: return "AdobergbLinearEXT"; case ColorSpaceKHR::eAdobergbNonlinearEXT: return "AdobergbNonlinearEXT"; case ColorSpaceKHR::ePassThroughEXT: return "PassThroughEXT"; + case ColorSpaceKHR::eExtendedSrgbNonlinearEXT: return "ExtendedSrgbNonlinearEXT"; default: return "invalid"; } } diff --git a/layers/linux/VkLayer_core_validation.json b/layers/linux/VkLayer_core_validation.json index f7f91564..b9c6384c 100644 --- a/layers/linux/VkLayer_core_validation.json +++ b/layers/linux/VkLayer_core_validation.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_core_validation", "type": "GLOBAL", "library_path": "./libVkLayer_core_validation.so", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/linux/VkLayer_object_tracker.json b/layers/linux/VkLayer_object_tracker.json index e5cb7a13..ef39e4f0 100644 --- a/layers/linux/VkLayer_object_tracker.json +++ b/layers/linux/VkLayer_object_tracker.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_object_tracker", "type": "GLOBAL", "library_path": "./libVkLayer_object_tracker.so", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/linux/VkLayer_parameter_validation.json b/layers/linux/VkLayer_parameter_validation.json index 1290ac54..bb4028aa 100644 --- a/layers/linux/VkLayer_parameter_validation.json +++ b/layers/linux/VkLayer_parameter_validation.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_parameter_validation", "type": "GLOBAL", "library_path": "./libVkLayer_parameter_validation.so", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/linux/VkLayer_standard_validation.json b/layers/linux/VkLayer_standard_validation.json index e5f52394..3acd86b4 100644 --- a/layers/linux/VkLayer_standard_validation.json +++ b/layers/linux/VkLayer_standard_validation.json @@ -3,7 +3,7 @@ "layer": { "name": "VK_LAYER_LUNARG_standard_validation", "type": "GLOBAL", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Standard Validation", "component_layers": [ diff --git a/layers/linux/VkLayer_threading.json b/layers/linux/VkLayer_threading.json index 3fba647c..60634573 100644 --- a/layers/linux/VkLayer_threading.json +++ b/layers/linux/VkLayer_threading.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_GOOGLE_threading", "type": "GLOBAL", "library_path": "./libVkLayer_threading.so", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "Google Validation Layer", "instance_extensions": [ diff --git a/layers/linux/VkLayer_unique_objects.json b/layers/linux/VkLayer_unique_objects.json index f2bc92a9..d5f7e635 100644 --- a/layers/linux/VkLayer_unique_objects.json +++ b/layers/linux/VkLayer_unique_objects.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_GOOGLE_unique_objects", "type": "GLOBAL", "library_path": "./libVkLayer_unique_objects.so", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "Google Validation Layer" } diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index c0f81d18..7d6cf318 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -5456,7 +5456,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physica // Definitions for the VK_EXT_debug_marker Extension -VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo) { +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInfoEXT *pTagInfo) { VkResult result = VK_ERROR_VALIDATION_FAILED_EXT; bool skip = false; auto my_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); @@ -5476,7 +5476,7 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDeb return result; } -VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, VkDebugMarkerObjectNameInfoEXT *pNameInfo) { +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo) { VkResult result = VK_ERROR_VALIDATION_FAILED_EXT; bool skip = false; auto my_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); @@ -5501,7 +5501,7 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, VkDe return result; } -VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT *pMarkerInfo) { +VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT *pMarkerInfo) { bool skip = false; auto my_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map); assert(my_data != NULL); @@ -5513,7 +5513,7 @@ VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer, } } -VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT *pMarkerInfo) { +VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT *pMarkerInfo) { bool skip = false; auto my_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map); assert(my_data != NULL); diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index e4ddf088..d324ce49 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -702,7 +702,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice p } #endif -VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo) { +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInfoEXT *pTagInfo) { layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); auto local_tag_info = new safe_VkDebugMarkerObjectTagInfoEXT(pTagInfo); { @@ -717,7 +717,7 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDeb return result; } -VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, VkDebugMarkerObjectNameInfoEXT *pNameInfo) { +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo) { layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); auto local_name_info = new safe_VkDebugMarkerObjectNameInfoEXT(pNameInfo); { diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt index cf4f8678..d799144c 100644 --- a/layers/vk_validation_error_database.txt +++ b/layers/vk_validation_error_database.txt @@ -98,7 +98,7 @@ VALIDATION_ERROR_01400730~^~N~^~Unknown~^~vkCreateBuffer~^~VUID-VkBufferCreateIn VALIDATION_ERROR_01400ade~^~N~^~None~^~VkBufferCreateInfo~^~VUID-VkBufferCreateInfo-sharingMode-01391~^~!(VK_KHR_get_physical_device_properties2)~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-01391)~^~ VALIDATION_ERROR_01400b16~^~N~^~None~^~VkBufferCreateInfo~^~VUID-VkBufferCreateInfo-sharingMode-01419~^~(VK_KHR_get_physical_device_properties2)~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2KHR for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-01419)~^~ VALIDATION_ERROR_01409001~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkBufferCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-parameter)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_0141c40d~^~Y~^~Unknown~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationBufferCreateInfoNV or VkExternalMemoryBufferCreateInfoKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-pNext-pNext)~^~implicit +VALIDATION_ERROR_0141c40d~^~Y~^~Unknown~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkDedicatedAllocationBufferCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-pNext-pNext)~^~implicit VALIDATION_ERROR_0142b00b~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sType-sType)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_0142b00f~^~N~^~None~^~VkBufferCreateInfo~^~VUID-VkBufferCreateInfo-sType-unique~^~core~^~The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sType-unique)~^~implicit VALIDATION_ERROR_0142c001~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-sharingMode-parameter~^~core~^~The spec valid usage text states 'sharingMode must be a valid VkSharingMode value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-parameter)~^~implicit @@ -243,18 +243,18 @@ VALIDATION_ERROR_034000a0~^~N~^~Unknown~^~vkQueueSubmit~^~VUID-VkD3D12FenceSubmi VALIDATION_ERROR_03423201~^~N~^~Unknown~^~vkQueueSubmit~^~VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter~^~core~^~The spec valid usage text states 'If signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a pointer to an array of signalSemaphoreValuesCount uint64_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter)~^~implicit VALIDATION_ERROR_03427401~^~N~^~Unknown~^~vkQueueSubmit~^~VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter~^~core~^~The spec valid usage text states 'If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a pointer to an array of waitSemaphoreValuesCount uint64_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter)~^~implicit VALIDATION_ERROR_0342b00b~^~N~^~Unknown~^~vkQueueSubmit~^~VUID-VkD3D12FenceSubmitInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkD3D12FenceSubmitInfoKHR-sType-sType)~^~implicit -VALIDATION_ERROR_0361a801~^~N~^~Unknown~^~vkCmdDebugMarkerBeginEXT~^~VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter~^~core~^~The spec valid usage text states 'pMarkerName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter)~^~implicit -VALIDATION_ERROR_0361c40d~^~N~^~Unknown~^~vkCmdDebugMarkerBeginEXT~^~VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. +VALIDATION_ERROR_0361a801~^~Y~^~Unknown~^~vkCmdDebugMarkerBeginEXT~^~VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter~^~core~^~The spec valid usage text states 'pMarkerName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter)~^~implicit +VALIDATION_ERROR_0361c40d~^~Y~^~Unknown~^~vkCmdDebugMarkerBeginEXT~^~VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_0362b00b~^~Y~^~Unknown~^~vkCmdDebugMarkerBeginEXT~^~VUID-VkDebugMarkerMarkerInfoEXT-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerMarkerInfoEXT-sType-sType)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_0380da01~^~N~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter~^~core~^~The spec valid usage text states 'objectType must be a valid VkDebugReportObjectTypeEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter)~^~implicit -VALIDATION_ERROR_0381c40d~^~N~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_0381ce01~^~N~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter~^~core~^~The spec valid usage text states 'pObjectName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter)~^~implicit +VALIDATION_ERROR_0380da01~^~Y~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter~^~core~^~The spec valid usage text states 'objectType must be a valid VkDebugReportObjectTypeEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter)~^~implicit +VALIDATION_ERROR_0381c40d~^~Y~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. +VALIDATION_ERROR_0381ce01~^~Y~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter~^~core~^~The spec valid usage text states 'pObjectName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter)~^~implicit VALIDATION_ERROR_0382b00b~^~Y~^~Unknown~^~vkDebugMarkerSetObjectNameEXT~^~VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_03a0da01~^~N~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter~^~core~^~The spec valid usage text states 'objectType must be a valid VkDebugReportObjectTypeEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter)~^~implicit -VALIDATION_ERROR_03a1c40d~^~N~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_03a25a01~^~N~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter~^~core~^~The spec valid usage text states 'pTag must be a pointer to an array of tagSize bytes' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter)~^~implicit +VALIDATION_ERROR_03a0da01~^~Y~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter~^~core~^~The spec valid usage text states 'objectType must be a valid VkDebugReportObjectTypeEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter)~^~implicit +VALIDATION_ERROR_03a1c40d~^~Y~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. +VALIDATION_ERROR_03a25a01~^~Y~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter~^~core~^~The spec valid usage text states 'pTag must be a pointer to an array of tagSize bytes' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter)~^~implicit VALIDATION_ERROR_03a2b00b~^~Y~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_03a2f41b~^~N~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength~^~core~^~The spec valid usage text states 'tagSize must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength)~^~implicit +VALIDATION_ERROR_03a2f41b~^~Y~^~Unknown~^~vkDebugMarkerSetObjectTagEXT~^~VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength~^~core~^~The spec valid usage text states 'tagSize must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength)~^~implicit VALIDATION_ERROR_03c00ad2~^~N~^~Unknown~^~vkCreateDebugReportCallbackEXT~^~VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-01385~^~core~^~The spec valid usage text states 'pfnCallback must be a valid PFN_vkDebugReportCallbackEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-01385)~^~ VALIDATION_ERROR_03c09001~^~N~^~Unknown~^~vkCreateDebugReportCallbackEXT~^~VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkDebugReportFlagBitsEXT values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_03c1c40d~^~N~^~Unknown~^~vkCreateDebugReportCallbackEXT~^~VUID-VkDebugReportCallbackCreateInfoEXT-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDebugReportCallbackCreateInfoEXT-pNext-pNext)~^~implicit, TBD in parameter validation layer. @@ -330,7 +330,7 @@ VALIDATION_ERROR_056002ea~^~N~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateIn VALIDATION_ERROR_056002ec~^~Y~^~Maintenance1AndNegativeViewport~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374~^~(VK_KHR_maintenance1)+(VK_AMD_negative_viewport_height)~^~The spec valid usage text states 'ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374)~^~ VALIDATION_ERROR_05609005~^~Y~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-flags-zerobitmask)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_05615a01~^~N~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter~^~core~^~The spec valid usage text states 'If pEnabledFeatures is not NULL, pEnabledFeatures must be a pointer to a valid VkPhysicalDeviceFeatures structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter)~^~implicit -VALIDATION_ERROR_0561c40d~^~N~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceFeatures2KHR, VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceVariablePointerFeaturesKHR, VkPhysicalDeviceMultiviewFeaturesKHX, or VkDeviceGroupDeviceCreateInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pNext-pNext)~^~implicit +VALIDATION_ERROR_0561c40d~^~N~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupDeviceCreateInfoKHX, VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceFeatures2KHR, VkPhysicalDeviceMultiviewFeaturesKHX, or VkPhysicalDeviceVariablePointerFeaturesKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pNext-pNext)~^~implicit VALIDATION_ERROR_0561fe01~^~Y~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter~^~core~^~The spec valid usage text states 'pQueueCreateInfos must be a pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter)~^~implicit VALIDATION_ERROR_05628e01~^~Y~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter~^~core~^~The spec valid usage text states 'If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter)~^~implicit VALIDATION_ERROR_05629001~^~Y~^~Unknown~^~vkCreateDevice~^~VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter~^~core~^~The spec valid usage text states 'If enabledLayerCount is not 0, ppEnabledLayerNames must be a pointer to an array of enabledLayerCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter)~^~implicit @@ -536,7 +536,7 @@ VALIDATION_ERROR_09609001~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGra VALIDATION_ERROR_0960be01~^~Y~^~None~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-layout-parameter~^~core~^~The spec valid usage text states 'layout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-layout-parameter)~^~implicit VALIDATION_ERROR_09615601~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter~^~core~^~The spec valid usage text states 'If pDynamicState is not NULL, pDynamicState must be a pointer to a valid VkPipelineDynamicStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter)~^~implicit VALIDATION_ERROR_09619801~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-parameter~^~core~^~The spec valid usage text states 'pInputAssemblyState must be a pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-parameter)~^~implicit -VALIDATION_ERROR_0961c40d~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkPipelineDiscardRectangleStateCreateInfoEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pNext-pNext)~^~implicit, TBD in parameter validation layer. +VALIDATION_ERROR_0961c40d~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pNext-pNext)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_09620801~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter~^~core~^~The spec valid usage text states 'pRasterizationState must be a pointer to a valid VkPipelineRasterizationStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter)~^~implicit VALIDATION_ERROR_09623e01~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pStages-parameter~^~core~^~The spec valid usage text states 'pStages must be a pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pStages-parameter)~^~implicit VALIDATION_ERROR_09626801~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-parameter~^~core~^~The spec valid usage text states 'pVertexInputState must be a pointer to a valid VkPipelineVertexInputStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-parameter)~^~implicit @@ -595,7 +595,7 @@ VALIDATION_ERROR_09c0014a~^~Y~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageCopy-exte VALIDATION_ERROR_09c0014c~^~N~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageCopy-srcOffset-00166~^~core~^~The spec valid usage text states 'srcOffset, dstOffset, and extent must respect the image transfer granularity requirements of the queue family that it will be submitted against, as described in Physical Device Enumeration' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-srcOffset-00166)~^~ VALIDATION_ERROR_09c07a01~^~N~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageCopy-dstSubresource-parameter~^~core~^~The spec valid usage text states 'dstSubresource must be a valid VkImageSubresourceLayers structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-dstSubresource-parameter)~^~implicit VALIDATION_ERROR_09c2d601~^~N~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageCopy-srcSubresource-parameter~^~core~^~The spec valid usage text states 'srcSubresource must be a valid VkImageSubresourceLayers structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-srcSubresource-parameter)~^~implicit -VALIDATION_ERROR_09e00758~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-format-00940~^~core~^~The spec valid usage text states 'The combination of format, type, tiling, usage, and flags must be supported, as indicated by a VK_SUCCESS return value from vkGetPhysicalDeviceImageFormatProperties invoked with the same values passed to the corresponding parameters.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00940)~^~ +VALIDATION_ERROR_09e00758~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-format-00940~^~core~^~The spec valid usage text states 'The combination of format, imageType, tiling, usage, and flags must be supported, as indicated by a VK_SUCCESS return value from vkGetPhysicalDeviceImageFormatProperties invoked with the same values passed to the corresponding parameters.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00940)~^~ VALIDATION_ERROR_09e0075a~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-sharingMode-00941~^~core~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a pointer to an array of queueFamilyIndexCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-00941)~^~ VALIDATION_ERROR_09e0075c~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-sharingMode-00942~^~core~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-00942)~^~ VALIDATION_ERROR_09e0075e~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-format-00943~^~core~^~The spec valid usage text states 'format must not be VK_FORMAT_UNDEFINED' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00943)~^~ @@ -606,23 +606,23 @@ VALIDATION_ERROR_09e00766~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo VALIDATION_ERROR_09e00768~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-arrayLayers-00948~^~core~^~The spec valid usage text states 'arrayLayers must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00948)~^~ VALIDATION_ERROR_09e0076a~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-flags-00949~^~core~^~The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00949)~^~ VALIDATION_ERROR_09e0076c~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-flags-00950~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, imageType must be VK_IMAGE_TYPE_3D' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-flags-00950)~^~ -VALIDATION_ERROR_09e0076e~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00951~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension1D, or VkImageFormatProperties::maxExtent.width (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00951)~^~ -VALIDATION_ERROR_09e00770~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00952~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags does not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00952)~^~ -VALIDATION_ERROR_09e00772~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00953~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimensionCube, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00953)~^~ +VALIDATION_ERROR_09e0076e~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00951~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension1D, or VkImageFormatProperties::maxExtent.width (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00951)~^~ +VALIDATION_ERROR_09e00770~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00952~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags does not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00952)~^~ +VALIDATION_ERROR_09e00772~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00953~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimensionCube, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00953)~^~ VALIDATION_ERROR_09e00774~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00954~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00954)~^~ -VALIDATION_ERROR_09e00776~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00955~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height and extent.depth must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension3D, or VkImageFormatProperties::maxExtent.width/height/depth (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00955)~^~ +VALIDATION_ERROR_09e00776~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00955~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height and extent.depth must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension3D, or VkImageFormatProperties::maxExtent.width/height/depth (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00955)~^~ VALIDATION_ERROR_09e00778~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00956~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00956)~^~ VALIDATION_ERROR_09e0077a~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00957~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00957)~^~ VALIDATION_ERROR_09e0077c~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-mipLevels-00958~^~core~^~The spec valid usage text states 'mipLevels must be less than or equal to {lfloor}log2(max(extent.width, extent.height, extent.depth)){rfloor} + 1.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-mipLevels-00958)~^~ -VALIDATION_ERROR_09e0077e~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-extent-00959~^~core~^~The spec valid usage text states 'If any of extent.width, extent.height, or extent.depth are greater than the equivalently named members of VkPhysicalDeviceLimits::maxImageDimension3D, mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959)~^~ -VALIDATION_ERROR_09e00780~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-arrayLayers-00960~^~core~^~The spec valid usage text states 'arrayLayers must be less than or equal to VkImageFormatProperties::maxArrayLayers (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00960)~^~ +VALIDATION_ERROR_09e0077e~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-extent-00959~^~core~^~The spec valid usage text states 'If any of extent.width, extent.height, or extent.depth are greater than the equivalently named members of VkPhysicalDeviceLimits::maxImageDimension3D, mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959)~^~ +VALIDATION_ERROR_09e00780~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-arrayLayers-00960~^~core~^~The spec valid usage text states 'arrayLayers must be less than or equal to VkImageFormatProperties::maxArrayLayers (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00960)~^~ VALIDATION_ERROR_09e00782~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00961~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00961)~^~ VALIDATION_ERROR_09e00784~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-samples-00962~^~core~^~The spec valid usage text states 'If samples is not VK_SAMPLE_COUNT_1_BIT, imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, tiling must be VK_IMAGE_TILING_OPTIMAL, and mipLevels must be equal to 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00962)~^~ VALIDATION_ERROR_09e00786~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-usage-00963~^~core~^~The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00963)~^~ VALIDATION_ERROR_09e00788~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-usage-00964~^~core~^~The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00964)~^~ VALIDATION_ERROR_09e0078a~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-usage-00965~^~core~^~The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00965)~^~ VALIDATION_ERROR_09e0078c~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-usage-00966~^~core~^~The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00966)~^~ -VALIDATION_ERROR_09e0078e~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-samples-00967~^~core~^~The spec valid usage text states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00967)~^~ +VALIDATION_ERROR_09e0078e~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-samples-00967~^~core~^~The spec valid usage text states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00967)~^~ VALIDATION_ERROR_09e00790~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-usage-00968~^~core~^~The spec valid usage text states 'If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00968)~^~ VALIDATION_ERROR_09e00792~^~Y~^~None~^~vkCreateImage~^~VUID-VkImageCreateInfo-flags-00969~^~core~^~The spec valid usage text states 'If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00969)~^~ VALIDATION_ERROR_09e00794~^~Y~^~SparseResidencyImageCreateUnsupportedTypes~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-00970~^~core~^~The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00970)~^~ @@ -645,8 +645,8 @@ VALIDATION_ERROR_09e007b4~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo VALIDATION_ERROR_09e007b6~^~Y~^~SparseBindingImageBufferCreate~^~vkCreateImage~^~VUID-VkImageCreateInfo-flags-00987~^~core~^~The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00987)~^~ VALIDATION_ERROR_09e007b8~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00988~^~(VK_NV_external_memory+VK_KHR_external_memory)~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, it must not contain an instance of VkExternalMemoryImageCreateInfoKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00988)~^~ VALIDATION_ERROR_09e007ba~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00989~^~core~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, and any of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2KHR in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::externalMemoryFeatures, the pNext chain must contain an instance of VkDedicatedAllocationImageCreateInfoNV with its dedicatedAllocation field set to VK_TRUE.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00989)~^~ -VALIDATION_ERROR_09e007bc~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00990~^~(VK_KHR_external_memory)~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2KHR with format, type, tiling, usage, and flags equal to those in this structure, and with an instance of VkPhysicalDeviceExternalImageFormatInfoKHR in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00990)~^~ -VALIDATION_ERROR_09e007be~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00991~^~(VK_NV_external_memory+VK_NV_external_memory_capabilities)~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, type, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00991)~^~ +VALIDATION_ERROR_09e007bc~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00990~^~(VK_KHR_external_memory)~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2KHR with format, imageType, tiling, usage, and flags equal to those in this structure, and with an instance of VkPhysicalDeviceExternalImageFormatInfoKHR in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00990)~^~ +VALIDATION_ERROR_09e007be~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-00991~^~(VK_NV_external_memory+VK_NV_external_memory_capabilities)~^~The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00991)~^~ VALIDATION_ERROR_09e007c0~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-flags-00992~^~(VK_KHX_device_group)~^~The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_BIND_SFR_BIT_KHX, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D, and tiling must be VK_IMAGE_TILING_OPTIMAL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-flags-00992)~^~ VALIDATION_ERROR_09e007c2~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-initialLayout-00993~^~core~^~The spec valid usage text states 'initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-initialLayout-00993)~^~ VALIDATION_ERROR_09e00ae0~^~N~^~None~^~VkImageCreateInfo~^~VUID-VkImageCreateInfo-sharingMode-01392~^~!(VK_KHR_get_physical_device_properties2)~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-01392)~^~ @@ -657,7 +657,7 @@ VALIDATION_ERROR_09e09001~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo VALIDATION_ERROR_09e09201~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-parameter)~^~implicit VALIDATION_ERROR_09e0ac01~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-imageType-parameter~^~core~^~The spec valid usage text states 'imageType must be a valid VkImageType value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-parameter)~^~implicit VALIDATION_ERROR_09e0b801~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-initialLayout-parameter~^~core~^~The spec valid usage text states 'initialLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-initialLayout-parameter)~^~implicit -VALIDATION_ERROR_09e1c40d~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV, VkImageSwapchainCreateInfoKHX, VkExternalMemoryImageCreateInfoKHR, or VkExternalMemoryImageCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-pNext-pNext)~^~implicit +VALIDATION_ERROR_09e1c40d~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV or VkImageSwapchainCreateInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-pNext-pNext)~^~implicit VALIDATION_ERROR_09e2b00b~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sType-sType)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_09e2b00f~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-sType-unique~^~core~^~The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sType-unique)~^~implicit VALIDATION_ERROR_09e2b401~^~Y~^~Unknown~^~vkCreateImage~^~VUID-VkImageCreateInfo-samples-parameter~^~core~^~The spec valid usage text states 'samples must be a valid VkSampleCountFlagBits value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-parameter)~^~implicit @@ -683,6 +683,10 @@ VALIDATION_ERROR_0a000978~^~Y~^~InvalidBarriers~^~vkCmdPipelineBarrier~^~VUID-Vk VALIDATION_ERROR_0a00097a~^~Y~^~InvalidBarriers~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-oldLayout-01213~^~core~^~The spec valid usage text states 'If either oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01213)~^~ VALIDATION_ERROR_0a000aca~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-image-01381~^~(VK_KHR_external_memory)~^~The spec valid usage text states 'If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageMemoryBarrier-image-01381)~^~ VALIDATION_ERROR_0a000acc~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-image-01382~^~(VK_KHR_external_memory)~^~The spec valid usage text states 'If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is VK_QUEUE_FAMILY_IGNORED, the other must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageMemoryBarrier-image-01382)~^~ +VALIDATION_ERROR_0a000b9c~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01486~^~core~^~The spec valid usage text states 'subresourceRange::baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01486)~^~ +VALIDATION_ERROR_0a000b9e~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01487~^~core~^~The spec valid usage text states 'If subresourceRange::levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange::levelCount must be non-zero and subresourceRange::baseMipLevel + subresourceRange::levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01487)~^~ +VALIDATION_ERROR_0a000ba0~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01488~^~core~^~The spec valid usage text states 'subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01488)~^~ +VALIDATION_ERROR_0a000ba2~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01489~^~core~^~The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01489)~^~ VALIDATION_ERROR_0a006801~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-dstAccessMask-parameter~^~core~^~The spec valid usage text states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-dstAccessMask-parameter)~^~implicit VALIDATION_ERROR_0a00a001~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-image-parameter)~^~implicit VALIDATION_ERROR_0a00d401~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-newLayout-parameter~^~core~^~The spec valid usage text states 'newLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-parameter)~^~implicit @@ -717,9 +721,9 @@ VALIDATION_ERROR_0a600154~^~Y~^~CopyImageTypeExtentMismatch~^~vkCmdCopyImage~^~V VALIDATION_ERROR_0a600c01~^~Y~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageSubresourceLayers-aspectMask-parameter~^~core~^~The spec valid usage text states 'aspectMask must be a valid combination of VkImageAspectFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceLayers-aspectMask-parameter)~^~implicit VALIDATION_ERROR_0a600c03~^~Y~^~Unknown~^~vkCmdCopyImage~^~VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask~^~core~^~The spec valid usage text states 'aspectMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask)~^~implicit VALIDATION_ERROR_0a8007fc~^~Y~^~ImageViewSubresourceRangeTests,InvalidBarriers,ClearColorImageWithBadRange,ClearDepthStencilWithBadRange,ClearColorImageWithValidRange,ClearDepthStencilWithValidRange~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-levelCount-01022~^~core~^~The spec valid usage text states 'If levelCount is not VK_REMAINING_MIP_LEVELS, levelCount must be non-zero and (baseMipLevel + levelCount) must be less than or equal to the mipLevels specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceRange-levelCount-01022)~^~ -VALIDATION_ERROR_0a8007fe~^~Y~^~ImageViewSubresourceRangeTests,InvalidBarriers,ClearColorImageWithBadRange,ClearDepthStencilWithBadRange,ClearColorImageWithValidRange,ClearDepthStencilWithValidRange~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-layerCount-01023~^~!(VK_KHR_maintenance1)~^~The spec valid usage text states 'If layerCount is not VK_REMAINING_ARRAY_LAYERS, layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the arrayLayers specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceRange-layerCount-01023)~^~ -VALIDATION_ERROR_0a800800~^~Y~^~None~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-imageType-01024~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If the imageType specified in VkImageCreateInfo when the image was created was VK_IMAGE_TYPE_3D and the image view is created with the viewType of VkImageViewCreateInfo set to VK_IMAGE_VIEW_TYPE_2D_ARRAY then layerCount must be VK_REMAINING_ARRAY_LAYERS, or layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the extent.depth specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageSubresourceRange-imageType-01024)~^~ -VALIDATION_ERROR_0a800802~^~Y~^~None~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-imageType-01025~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If the imageType specified in VkImageCreateInfo when the image was created was not VK_IMAGE_TYPE_3D or the image view is not created with the viewType of VkImageViewCreateInfo set to VK_IMAGE_VIEW_TYPE_2D_ARRAY then layerCount must be VK_REMAINING_ARRAY_LAYERS, or layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the arrayLayers specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageSubresourceRange-imageType-01025)~^~ +VALIDATION_ERROR_0a8007fe~^~Y~^~ImageViewSubresourceRangeTests,InvalidBarriers,ClearColorImageWithBadRange,ClearDepthStencilWithBadRange,ClearColorImageWithValidRange,ClearDepthStencilWithValidRange~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-layerCount-01023~^~core~^~The spec valid usage text states 'If layerCount is not VK_REMAINING_ARRAY_LAYERS, layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the arrayLayers specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceRange-layerCount-01023)~^~ +VALIDATION_ERROR_0a800800~^~Y~^~None~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-imageType-01024~^~core~^~The spec valid usage text states 'If the imageType specified in VkImageCreateInfo when the image was created was VK_IMAGE_TYPE_3D and the image view is created with the viewType of VkImageViewCreateInfo set to VK_IMAGE_VIEW_TYPE_2D_ARRAY then layerCount must be VK_REMAINING_ARRAY_LAYERS, or layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the extent.depth specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageSubresourceRange-imageType-01024)~^~ +VALIDATION_ERROR_0a800802~^~Y~^~None~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-imageType-01025~^~core~^~The spec valid usage text states 'If the imageType specified in VkImageCreateInfo when the image was created was not VK_IMAGE_TYPE_3D or the image view is not created with the viewType of VkImageViewCreateInfo set to VK_IMAGE_VIEW_TYPE_2D_ARRAY then layerCount must be VK_REMAINING_ARRAY_LAYERS, or layerCount must be non-zero and (baseArrayLayer + layerCount) must be less than or equal to the arrayLayers specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageSubresourceRange-imageType-01025)~^~ VALIDATION_ERROR_0a800c01~^~N~^~Unknown~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-aspectMask-parameter~^~core~^~The spec valid usage text states 'aspectMask must be a valid combination of VkImageAspectFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceRange-aspectMask-parameter)~^~implicit VALIDATION_ERROR_0a800c03~^~Y~^~Unknown~^~vkCreateImageView~^~VUID-VkImageSubresourceRange-aspectMask-requiredbitmask~^~core~^~The spec valid usage text states 'aspectMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSubresourceRange-aspectMask-requiredbitmask)~^~implicit VALIDATION_ERROR_0aa007c6~^~N~^~Unknown~^~vkCreateImage~^~VUID-VkImageSwapchainCreateInfoKHX-swapchain-00995~^~core~^~The spec valid usage text states 'If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageSwapchainCreateInfoKHX-swapchain-00995)~^~ @@ -744,6 +748,14 @@ VALIDATION_ERROR_0ac007f4~^~Y~^~CreateImageViewDifferentClass~^~vkCreateImageVie VALIDATION_ERROR_0ac007f6~^~Y~^~CreateImageViewNoMutableFormatBit~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-image-01019~^~core~^~The spec valid usage text states 'If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01019)~^~ VALIDATION_ERROR_0ac007f8~^~Y~^~Unknown~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-image-01020~^~core~^~The spec valid usage text states 'If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01020)~^~ VALIDATION_ERROR_0ac007fa~^~N~^~Unknown~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-subResourceRange-01021~^~core~^~The spec valid usage text states 'subresourceRange and viewType must be compatible with the image, as described in the compatibility table' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subResourceRange-01021)~^~ +VALIDATION_ERROR_0ac00b8c~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01478~^~core~^~The spec valid usage text states 'subresourceRange::baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01478)~^~ +VALIDATION_ERROR_0ac00b8e~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01479~^~core~^~The spec valid usage text states 'If subresourceRange::levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange::levelCount must be non-zero and subresourceRange::baseMipLevel + subresourceRange::levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01479)~^~ +VALIDATION_ERROR_0ac00b90~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01480~^~!(VK_KHR_maintenance1)~^~The spec valid usage text states 'subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01480)~^~ +VALIDATION_ERROR_0ac00b92~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01481~^~!(VK_KHR_maintenance1)~^~The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01481)~^~ +VALIDATION_ERROR_0ac00b94~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-image-01482~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01482)~^~ +VALIDATION_ERROR_0ac00b96~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01483~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01483)~^~ +VALIDATION_ERROR_0ac00b98~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-image-01484~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::baseArrayLayer must be less than the extent.depth specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01484)~^~ +VALIDATION_ERROR_0ac00b9a~^~N~^~None~^~VkImageViewCreateInfo~^~VUID-VkImageViewCreateInfo-subresourceRange-01485~^~(VK_KHR_maintenance1)~^~The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the extent.depth specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01485)~^~ VALIDATION_ERROR_0ac02c01~^~N~^~Unknown~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-components-parameter~^~core~^~The spec valid usage text states 'components must be a valid VkComponentMapping structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-components-parameter)~^~implicit VALIDATION_ERROR_0ac09005~^~Y~^~Unknown~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-flags-zerobitmask)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_0ac09201~^~Y~^~Unknown~^~vkCreateImageView~^~VUID-VkImageViewCreateInfo-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-format-parameter)~^~implicit @@ -815,7 +827,7 @@ VALIDATION_ERROR_0bc01a01~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndire VALIDATION_ERROR_0bc2fe01~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-tokenType-parameter~^~core~^~The spec valid usage text states 'tokenType must be a valid VkIndirectCommandsTokenTypeNVX value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-tokenType-parameter)~^~implicit VALIDATION_ERROR_0be09005~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-flags-zerobitmask)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_0be0ee01~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-pApplicationInfo-parameter~^~core~^~The spec valid usage text states 'If pApplicationInfo is not NULL, pApplicationInfo must be a pointer to a valid VkApplicationInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pApplicationInfo-parameter)~^~implicit -VALIDATION_ERROR_0be1c40d~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT or VkValidationFlagsEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pNext-pNext)~^~implicit +VALIDATION_ERROR_0be1c40d~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pNext-pNext)~^~implicit VALIDATION_ERROR_0be28e01~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter~^~core~^~The spec valid usage text states 'If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter)~^~implicit VALIDATION_ERROR_0be29001~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter~^~core~^~The spec valid usage text states 'If enabledLayerCount is not 0, ppEnabledLayerNames must be a pointer to an array of enabledLayerCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter)~^~implicit VALIDATION_ERROR_0be2b00b~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-sType-sType)~^~implicit, TBD in parameter validation layer. @@ -851,7 +863,7 @@ VALIDATION_ERROR_0c60050a~^~N~^~Unknown~^~vkAllocateMemory~^~VUID-VkMemoryAlloca VALIDATION_ERROR_0c60050c~^~N~^~Unknown~^~vkAllocateMemory~^~VUID-VkMemoryAllocateInfo-allocationSize-00646~^~(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)+(VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfoKHRVkMemoryDedicatedAllocateInfoKHRVkMemoryDedicatedAllocateInfoKHR validation_error_map{ {VALIDATION_ERROR_01400ade, "The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-01391)"}, {VALIDATION_ERROR_01400b16, "The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2KHR for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-01419)"}, {VALIDATION_ERROR_01409001, "The spec valid usage text states 'flags must be a valid combination of VkBufferCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-parameter)"}, - {VALIDATION_ERROR_0141c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationBufferCreateInfoNV or VkExternalMemoryBufferCreateInfoKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_0141c40d, "The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkDedicatedAllocationBufferCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_0142b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sType-sType)"}, {VALIDATION_ERROR_0142b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sType-unique)"}, {VALIDATION_ERROR_0142c001, "The spec valid usage text states 'sharingMode must be a valid VkSharingMode value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-parameter)"}, @@ -3691,7 +3711,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_056002ec, "The spec valid usage text states 'ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374)"}, {VALIDATION_ERROR_05609005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-flags-zerobitmask)"}, {VALIDATION_ERROR_05615a01, "The spec valid usage text states 'If pEnabledFeatures is not NULL, pEnabledFeatures must be a pointer to a valid VkPhysicalDeviceFeatures structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter)"}, - {VALIDATION_ERROR_0561c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceFeatures2KHR, VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceVariablePointerFeaturesKHR, VkPhysicalDeviceMultiviewFeaturesKHX, or VkDeviceGroupDeviceCreateInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_0561c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupDeviceCreateInfoKHX, VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceFeatures2KHR, VkPhysicalDeviceMultiviewFeaturesKHX, or VkPhysicalDeviceVariablePointerFeaturesKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_0561fe01, "The spec valid usage text states 'pQueueCreateInfos must be a pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter)"}, {VALIDATION_ERROR_05628e01, "The spec valid usage text states 'If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter)"}, {VALIDATION_ERROR_05629001, "The spec valid usage text states 'If enabledLayerCount is not 0, ppEnabledLayerNames must be a pointer to an array of enabledLayerCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter)"}, @@ -3897,7 +3917,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0960be01, "The spec valid usage text states 'layout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-layout-parameter)"}, {VALIDATION_ERROR_09615601, "The spec valid usage text states 'If pDynamicState is not NULL, pDynamicState must be a pointer to a valid VkPipelineDynamicStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter)"}, {VALIDATION_ERROR_09619801, "The spec valid usage text states 'pInputAssemblyState must be a pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-parameter)"}, - {VALIDATION_ERROR_0961c40d, "The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkPipelineDiscardRectangleStateCreateInfoEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_0961c40d, "The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_09620801, "The spec valid usage text states 'pRasterizationState must be a pointer to a valid VkPipelineRasterizationStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter)"}, {VALIDATION_ERROR_09623e01, "The spec valid usage text states 'pStages must be a pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pStages-parameter)"}, {VALIDATION_ERROR_09626801, "The spec valid usage text states 'pVertexInputState must be a pointer to a valid VkPipelineVertexInputStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-parameter)"}, @@ -3956,7 +3976,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_09c0014c, "The spec valid usage text states 'srcOffset, dstOffset, and extent must respect the image transfer granularity requirements of the queue family that it will be submitted against, as described in Physical Device Enumeration' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-srcOffset-00166)"}, {VALIDATION_ERROR_09c07a01, "The spec valid usage text states 'dstSubresource must be a valid VkImageSubresourceLayers structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-dstSubresource-parameter)"}, {VALIDATION_ERROR_09c2d601, "The spec valid usage text states 'srcSubresource must be a valid VkImageSubresourceLayers structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCopy-srcSubresource-parameter)"}, - {VALIDATION_ERROR_09e00758, "The spec valid usage text states 'The combination of format, type, tiling, usage, and flags must be supported, as indicated by a VK_SUCCESS return value from vkGetPhysicalDeviceImageFormatProperties invoked with the same values passed to the corresponding parameters.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00940)"}, + {VALIDATION_ERROR_09e00758, "The spec valid usage text states 'The combination of format, imageType, tiling, usage, and flags must be supported, as indicated by a VK_SUCCESS return value from vkGetPhysicalDeviceImageFormatProperties invoked with the same values passed to the corresponding parameters.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00940)"}, {VALIDATION_ERROR_09e0075a, "The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a pointer to an array of queueFamilyIndexCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-00941)"}, {VALIDATION_ERROR_09e0075c, "The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-00942)"}, {VALIDATION_ERROR_09e0075e, "The spec valid usage text states 'format must not be VK_FORMAT_UNDEFINED' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-00943)"}, @@ -3967,23 +3987,23 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_09e00768, "The spec valid usage text states 'arrayLayers must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00948)"}, {VALIDATION_ERROR_09e0076a, "The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00949)"}, {VALIDATION_ERROR_09e0076c, "The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, imageType must be VK_IMAGE_TYPE_3D' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-flags-00950)"}, - {VALIDATION_ERROR_09e0076e, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension1D, or VkImageFormatProperties::maxExtent.width (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00951)"}, - {VALIDATION_ERROR_09e00770, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags does not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00952)"}, - {VALIDATION_ERROR_09e00772, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimensionCube, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00953)"}, + {VALIDATION_ERROR_09e0076e, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension1D, or VkImageFormatProperties::maxExtent.width (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00951)"}, + {VALIDATION_ERROR_09e00770, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags does not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00952)"}, + {VALIDATION_ERROR_09e00772, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be less than or equal to VkPhysicalDeviceLimits::maxImageDimensionCube, or VkImageFormatProperties::maxExtent.width/height (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00953)"}, {VALIDATION_ERROR_09e00774, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00954)"}, - {VALIDATION_ERROR_09e00776, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height and extent.depth must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension3D, or VkImageFormatProperties::maxExtent.width/height/depth (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00955)"}, + {VALIDATION_ERROR_09e00776, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height and extent.depth must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension3D, or VkImageFormatProperties::maxExtent.width/height/depth (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure) - whichever is higher' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00955)"}, {VALIDATION_ERROR_09e00778, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00956)"}, {VALIDATION_ERROR_09e0077a, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00957)"}, {VALIDATION_ERROR_09e0077c, "The spec valid usage text states 'mipLevels must be less than or equal to {lfloor}log2(max(extent.width, extent.height, extent.depth)){rfloor} + 1.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-mipLevels-00958)"}, - {VALIDATION_ERROR_09e0077e, "The spec valid usage text states 'If any of extent.width, extent.height, or extent.depth are greater than the equivalently named members of VkPhysicalDeviceLimits::maxImageDimension3D, mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959)"}, - {VALIDATION_ERROR_09e00780, "The spec valid usage text states 'arrayLayers must be less than or equal to VkImageFormatProperties::maxArrayLayers (as returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00960)"}, + {VALIDATION_ERROR_09e0077e, "The spec valid usage text states 'If any of extent.width, extent.height, or extent.depth are greater than the equivalently named members of VkPhysicalDeviceLimits::maxImageDimension3D, mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959)"}, + {VALIDATION_ERROR_09e00780, "The spec valid usage text states 'arrayLayers must be less than or equal to VkImageFormatProperties::maxArrayLayers (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-arrayLayers-00960)"}, {VALIDATION_ERROR_09e00782, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00961)"}, {VALIDATION_ERROR_09e00784, "The spec valid usage text states 'If samples is not VK_SAMPLE_COUNT_1_BIT, imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, tiling must be VK_IMAGE_TILING_OPTIMAL, and mipLevels must be equal to 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00962)"}, {VALIDATION_ERROR_09e00786, "The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00963)"}, {VALIDATION_ERROR_09e00788, "The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00964)"}, {VALIDATION_ERROR_09e0078a, "The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00965)"}, {VALIDATION_ERROR_09e0078c, "The spec valid usage text states 'If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00966)"}, - {VALIDATION_ERROR_09e0078e, "The spec valid usage text states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00967)"}, + {VALIDATION_ERROR_09e0078e, "The spec valid usage text states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-00967)"}, {VALIDATION_ERROR_09e00790, "The spec valid usage text states 'If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-usage-00968)"}, {VALIDATION_ERROR_09e00792, "The spec valid usage text states 'If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00969)"}, {VALIDATION_ERROR_09e00794, "The spec valid usage text states 'If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-00970)"}, @@ -4006,8 +4026,8 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_09e007b6, "The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-flags-00987)"}, {VALIDATION_ERROR_09e007b8, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, it must not contain an instance of VkExternalMemoryImageCreateInfoKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00988)"}, {VALIDATION_ERROR_09e007ba, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, and any of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2KHR in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::externalMemoryFeatures, the pNext chain must contain an instance of VkDedicatedAllocationImageCreateInfoNV with its dedicatedAllocation field set to VK_TRUE.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00989)"}, - {VALIDATION_ERROR_09e007bc, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2KHR with format, type, tiling, usage, and flags equal to those in this structure, and with an instance of VkPhysicalDeviceExternalImageFormatInfoKHR in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00990)"}, - {VALIDATION_ERROR_09e007be, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, type, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00991)"}, + {VALIDATION_ERROR_09e007bc, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoKHR, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesKHR::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2KHR with format, imageType, tiling, usage, and flags equal to those in this structure, and with an instance of VkPhysicalDeviceExternalImageFormatInfoKHR in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoKHR::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00990)"}, + {VALIDATION_ERROR_09e007be, "The spec valid usage text states 'If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties::compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00991)"}, {VALIDATION_ERROR_09e007c0, "The spec valid usage text states 'If flags contains VK_IMAGE_CREATE_BIND_SFR_BIT_KHX, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D, and tiling must be VK_IMAGE_TILING_OPTIMAL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageCreateInfo-flags-00992)"}, {VALIDATION_ERROR_09e007c2, "The spec valid usage text states 'initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-initialLayout-00993)"}, {VALIDATION_ERROR_09e00ae0, "The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sharingMode-01392)"}, @@ -4018,7 +4038,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_09e09201, "The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-format-parameter)"}, {VALIDATION_ERROR_09e0ac01, "The spec valid usage text states 'imageType must be a valid VkImageType value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-imageType-parameter)"}, {VALIDATION_ERROR_09e0b801, "The spec valid usage text states 'initialLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-initialLayout-parameter)"}, - {VALIDATION_ERROR_09e1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV, VkImageSwapchainCreateInfoKHX, VkExternalMemoryImageCreateInfoKHR, or VkExternalMemoryImageCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_09e1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV or VkImageSwapchainCreateInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_09e2b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sType-sType)"}, {VALIDATION_ERROR_09e2b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-sType-unique)"}, {VALIDATION_ERROR_09e2b401, "The spec valid usage text states 'samples must be a valid VkSampleCountFlagBits value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-samples-parameter)"}, @@ -4044,6 +4064,10 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0a00097a, "The spec valid usage text states 'If either oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01213)"}, {VALIDATION_ERROR_0a000aca, "The spec valid usage text states 'If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageMemoryBarrier-image-01381)"}, {VALIDATION_ERROR_0a000acc, "The spec valid usage text states 'If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is VK_QUEUE_FAMILY_IGNORED, the other must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageMemoryBarrier-image-01382)"}, + {VALIDATION_ERROR_0a000b9c, "The spec valid usage text states 'subresourceRange::baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01486)"}, + {VALIDATION_ERROR_0a000b9e, "The spec valid usage text states 'If subresourceRange::levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange::levelCount must be non-zero and subresourceRange::baseMipLevel + subresourceRange::levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01487)"}, + {VALIDATION_ERROR_0a000ba0, "The spec valid usage text states 'subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01488)"}, + {VALIDATION_ERROR_0a000ba2, "The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01489)"}, {VALIDATION_ERROR_0a006801, "The spec valid usage text states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-dstAccessMask-parameter)"}, {VALIDATION_ERROR_0a00a001, "The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-image-parameter)"}, {VALIDATION_ERROR_0a00d401, "The spec valid usage text states 'newLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-parameter)"}, @@ -4105,6 +4129,14 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0ac007f6, "The spec valid usage text states 'If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01019)"}, {VALIDATION_ERROR_0ac007f8, "The spec valid usage text states 'If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01020)"}, {VALIDATION_ERROR_0ac007fa, "The spec valid usage text states 'subresourceRange and viewType must be compatible with the image, as described in the compatibility table' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subResourceRange-01021)"}, + {VALIDATION_ERROR_0ac00b8c, "The spec valid usage text states 'subresourceRange::baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01478)"}, + {VALIDATION_ERROR_0ac00b8e, "The spec valid usage text states 'If subresourceRange::levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange::levelCount must be non-zero and subresourceRange::baseMipLevel + subresourceRange::levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01479)"}, + {VALIDATION_ERROR_0ac00b90, "The spec valid usage text states 'subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01480)"}, + {VALIDATION_ERROR_0ac00b92, "The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01481)"}, + {VALIDATION_ERROR_0ac00b94, "The spec valid usage text states 'If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01482)"}, + {VALIDATION_ERROR_0ac00b96, "The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01483)"}, + {VALIDATION_ERROR_0ac00b98, "The spec valid usage text states 'If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::baseArrayLayer must be less than the extent.depth specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01484)"}, + {VALIDATION_ERROR_0ac00b9a, "The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the extent.depth specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkImageViewCreateInfo-subresourceRange-01485)"}, {VALIDATION_ERROR_0ac02c01, "The spec valid usage text states 'components must be a valid VkComponentMapping structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-components-parameter)"}, {VALIDATION_ERROR_0ac09005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-flags-zerobitmask)"}, {VALIDATION_ERROR_0ac09201, "The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-format-parameter)"}, @@ -4176,7 +4208,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0bc2fe01, "The spec valid usage text states 'tokenType must be a valid VkIndirectCommandsTokenTypeNVX value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-tokenType-parameter)"}, {VALIDATION_ERROR_0be09005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-flags-zerobitmask)"}, {VALIDATION_ERROR_0be0ee01, "The spec valid usage text states 'If pApplicationInfo is not NULL, pApplicationInfo must be a pointer to a valid VkApplicationInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pApplicationInfo-parameter)"}, - {VALIDATION_ERROR_0be1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT or VkValidationFlagsEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_0be1c40d, "The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_0be28e01, "The spec valid usage text states 'If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter)"}, {VALIDATION_ERROR_0be29001, "The spec valid usage text states 'If enabledLayerCount is not 0, ppEnabledLayerNames must be a pointer to an array of enabledLayerCount null-terminated UTF-8 strings' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter)"}, {VALIDATION_ERROR_0be2b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-sType-sType)"}, @@ -4212,7 +4244,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0c60050c, "The spec valid usage text states 'If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR, allocationSize must match the size reported in the memory requirements of the image or buffer member of the instance of VkDedicatedAllocationMemoryAllocateInfoNV included in the pNext chain.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkMemoryAllocateInfo-allocationSize-00646)"}, {VALIDATION_ERROR_0c60050e, "The spec valid usage text states 'If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR, allocationSize must match the size specified when creating the Direct3D 12 heap from which the external handle was extracted.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkMemoryAllocateInfo-allocationSize-00647)"}, {VALIDATION_ERROR_0c600510, "The spec valid usage text states 'If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648)"}, - {VALIDATION_ERROR_0c61c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationMemoryAllocateInfoNV, VkMemoryAllocateFlagsInfoKHX, VkMemoryDedicatedAllocateInfoKHR, VkExportMemoryAllocateInfoKHR, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryFdInfoKHR, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, or VkExportMemoryWin32HandleInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryAllocateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_0c61c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationMemoryAllocateInfoNV, VkMemoryAllocateFlagsInfoKHX, or VkMemoryDedicatedAllocateInfoKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryAllocateInfo-pNext-pNext)"}, {VALIDATION_ERROR_0c62b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryAllocateInfo-sType-sType)"}, {VALIDATION_ERROR_0c62b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryAllocateInfo-sType-unique)"}, {VALIDATION_ERROR_0c806801, "The spec valid usage text states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryBarrier-dstAccessMask-parameter)"}, @@ -4285,7 +4317,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_0e01c40d, "The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceExternalSemaphoreInfoKHR-pNext-pNext)"}, {VALIDATION_ERROR_0e02b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceExternalSemaphoreInfoKHR-sType-sType)"}, {VALIDATION_ERROR_0e200486, "The spec valid usage text states 'If any member of this structure is VK_FALSE, as returned by vkGetPhysicalDeviceFeatures, then it must be VK_FALSE when passed as part of the VkDeviceCreateInfo struct when creating a device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceFeatures-None-00579)"}, - {VALIDATION_ERROR_0e41c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceVariablePointerFeaturesKHR, VkPhysicalDeviceMultiviewFeaturesKHX, or VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceFeatures2KHR-pNext-pNext)"}, + {VALIDATION_ERROR_0e41c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDevice16BitStorageFeaturesKHR, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceMultiviewFeaturesKHX, or VkPhysicalDeviceVariablePointerFeaturesKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceFeatures2KHR-pNext-pNext)"}, {VALIDATION_ERROR_0e42b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceFeatures2KHR-sType-sType)"}, {VALIDATION_ERROR_0e42b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceFeatures2KHR-sType-unique)"}, {VALIDATION_ERROR_0e609001, "The spec valid usage text states 'flags must be a valid combination of VkImageCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceImageFormatInfo2KHR-flags-parameter)"}, @@ -4385,7 +4417,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_10000624, "The spec valid usage text states 'minSampleShading must be in the range [0,1]' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786)"}, {VALIDATION_ERROR_10000b0e, "The spec valid usage text states 'If the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then minSampleShading must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415)"}, {VALIDATION_ERROR_10009005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask)"}, - {VALIDATION_ERROR_1001c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCoverageToColorStateCreateInfoNV or VkPipelineCoverageModulationStateCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_1001c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCoverageModulationStateCreateInfoNV or VkPipelineCoverageToColorStateCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_10022201, "The spec valid usage text states 'If pSampleMask is not NULL, pSampleMask must be a pointer to an array of (lceil{mathit{rasterizationSamples} over 32}rceil) VkSampleMask values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter)"}, {VALIDATION_ERROR_1002a801, "The spec valid usage text states 'rasterizationSamples must be a valid VkSampleCountFlagBits value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter)"}, {VALIDATION_ERROR_1002b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineMultisampleStateCreateInfo-sType-sType)"}, @@ -4445,7 +4477,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_10c00986, "The spec valid usage text states 'scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219)"}, {VALIDATION_ERROR_10c00988, "The spec valid usage text states 'scissorCount and viewportCount must be identical' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220)"}, {VALIDATION_ERROR_10c09005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask)"}, - {VALIDATION_ERROR_10c1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineViewportWScalingStateCreateInfoNV or VkPipelineViewportSwizzleStateCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_10c1c40d, "The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkPipelineViewportWScalingStateCreateInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_10c2b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-sType-sType)"}, {VALIDATION_ERROR_10c2b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-sType-unique)"}, {VALIDATION_ERROR_10c2b61b, "The spec valid usage text states 'scissorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength)"}, @@ -4463,10 +4495,10 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_11200a20, "The spec valid usage text states 'Any given element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout at the time the operation is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pImageIndices-01296)"}, {VALIDATION_ERROR_11200b2c, "The spec valid usage text states 'Any given element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkPresentInfoKHR-pImageIndices-01430)"}, {VALIDATION_ERROR_11218801, "The spec valid usage text states 'pImageIndices must be a pointer to an array of swapchainCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pImageIndices-parameter)"}, - {VALIDATION_ERROR_1121c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayPresentInfoKHR, VkPresentRegionsKHR, VkDeviceGroupPresentInfoKHX, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pNext-pNext)"}, + {VALIDATION_ERROR_1121c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupPresentInfoKHX, VkDisplayPresentInfoKHR, VkPresentRegionsKHR, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pNext-pNext)"}, {VALIDATION_ERROR_11221e01, "The spec valid usage text states 'If pResults is not NULL, pResults must be a pointer to an array of swapchainCount VkResult values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pResults-parameter)"}, {VALIDATION_ERROR_11225801, "The spec valid usage text states 'pSwapchains must be a pointer to an array of swapchainCount valid VkSwapchainKHR handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pSwapchains-parameter)"}, - {VALIDATION_ERROR_11227601, "The spec valid usage text states 'If waitSemaphoreCount is not 0, and pWaitSemaphores is not NULL, pWaitSemaphores must be a pointer to an array of waitSemaphoreCount valid VkSemaphore handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pWaitSemaphores-parameter)"}, + {VALIDATION_ERROR_11227601, "The spec valid usage text states 'If waitSemaphoreCount is not 0, pWaitSemaphores must be a pointer to an array of waitSemaphoreCount valid VkSemaphore handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-pWaitSemaphores-parameter)"}, {VALIDATION_ERROR_1122b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-sType-sType)"}, {VALIDATION_ERROR_1122b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-sType-unique)"}, {VALIDATION_ERROR_1122f21b, "The spec valid usage text states 'swapchainCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPresentInfoKHR-swapchainCount-arraylength)"}, @@ -4512,7 +4544,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_12209005, "The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-flags-zerobitmask)"}, {VALIDATION_ERROR_1220f201, "The spec valid usage text states 'If attachmentCount is not 0, pAttachments must be a pointer to an array of attachmentCount valid VkAttachmentDescription structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-pAttachments-parameter)"}, {VALIDATION_ERROR_12212601, "The spec valid usage text states 'If dependencyCount is not 0, pDependencies must be a pointer to an array of dependencyCount valid VkSubpassDependency structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-pDependencies-parameter)"}, - {VALIDATION_ERROR_1221c40d, "The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkRenderPassMultiviewCreateInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-pNext-pNext)"}, + {VALIDATION_ERROR_1221c40d, "The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-pNext-pNext)"}, {VALIDATION_ERROR_12224201, "The spec valid usage text states 'pSubpasses must be a pointer to an array of subpassCount valid VkSubpassDescription structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-pSubpasses-parameter)"}, {VALIDATION_ERROR_1222b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-sType-sType)"}, {VALIDATION_ERROR_1222e61b, "The spec valid usage text states 'subpassCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkRenderPassCreateInfo-subpassCount-arraylength)"}, @@ -4614,7 +4646,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_13c0009a, "The spec valid usage text states 'If the tessellation shaders feature is not enabled, any given element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pWaitDstStageMask-00077)"}, {VALIDATION_ERROR_13c0009c, "The spec valid usage text states 'Any given element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pWaitDstStageMask-00078)"}, {VALIDATION_ERROR_13c11401, "The spec valid usage text states 'If commandBufferCount is not 0, pCommandBuffers must be a pointer to an array of commandBufferCount valid VkCommandBuffer handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pCommandBuffers-parameter)"}, - {VALIDATION_ERROR_13c1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWin32KeyedMutexAcquireReleaseInfoNV, VkWin32KeyedMutexAcquireReleaseInfoKHR, VkD3D12FenceSubmitInfoKHR, or VkDeviceGroupSubmitInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pNext-pNext)"}, + {VALIDATION_ERROR_13c1c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfoKHX, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pNext-pNext)"}, {VALIDATION_ERROR_13c23401, "The spec valid usage text states 'If signalSemaphoreCount is not 0, pSignalSemaphores must be a pointer to an array of signalSemaphoreCount valid VkSemaphore handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pSignalSemaphores-parameter)"}, {VALIDATION_ERROR_13c27001, "The spec valid usage text states 'If waitSemaphoreCount is not 0, pWaitDstStageMask must be a pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pWaitDstStageMask-parameter)"}, {VALIDATION_ERROR_13c27003, "The spec valid usage text states 'Each element of pWaitDstStageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSubmitInfo-pWaitDstStageMask-requiredbitmask)"}, @@ -5009,6 +5041,10 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_1880000e, "The spec valid usage text states 'image must not have a compressed or depth/stencil format' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-image-00007)"}, {VALIDATION_ERROR_18800017, "The spec valid usage text states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-renderpass)"}, {VALIDATION_ERROR_18800ae4, "The spec valid usage text states 'imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-vkCmdClearColorImage-imageLayout-01394)"}, + {VALIDATION_ERROR_18800b7c, "The spec valid usage text states 'The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-baseMipLevel-01470)"}, + {VALIDATION_ERROR_18800b7e, "The spec valid usage text states 'If the VkImageSubresourceRange::levelCount member of any element of the pRanges array is not VK_REMAINING_MIP_LEVELS, it must be non-zero and VkImageSubresourceRange::baseMipLevel + VkImageSubresourceRange::levelCount for that element of the pRanges array must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-levelCount-01471)"}, + {VALIDATION_ERROR_18800b80, "The spec valid usage text states 'The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-baseArrayLayer-01472)"}, + {VALIDATION_ERROR_18800b82, "The spec valid usage text states 'If the VkImageSubresourceRange::layerCount member of any element of the pRanges array is not VK_REMAINING_ARRAY_LAYERS, it must be non-zero and VkImageSubresourceRange::baseArrayLayer + VkImageSubresourceRange::layerCount for that element of the pRanges array must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-layerCount-01473)"}, {VALIDATION_ERROR_18802401, "The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-commandBuffer-parameter)"}, {VALIDATION_ERROR_18802413, "The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-commandBuffer-recording)"}, {VALIDATION_ERROR_18802415, "The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearColorImage-commandBuffer-cmdpool)"}, @@ -5026,6 +5062,10 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_18a00018, "The spec valid usage text states 'imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-imageLayout-00012)"}, {VALIDATION_ERROR_18a0001a, "The spec valid usage text states 'The image range of any given element of pRanges must be an image subresource range that is contained within image' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-pRanges-00013)"}, {VALIDATION_ERROR_18a0001c, "The spec valid usage text states 'image must have a depth/stencil format' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-image-00014)"}, + {VALIDATION_ERROR_18a00b84, "The spec valid usage text states 'The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474)"}, + {VALIDATION_ERROR_18a00b86, "The spec valid usage text states 'If the VkImageSubresourceRange::levelCount member of any element of the pRanges array is not VK_REMAINING_MIP_LEVELS, it must be non-zero and VkImageSubresourceRange::baseMipLevel + VkImageSubresourceRange::levelCount for that element of the pRanges array must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-levelCount-01475)"}, + {VALIDATION_ERROR_18a00b88, "The spec valid usage text states 'The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476)"}, + {VALIDATION_ERROR_18a00b8a, "The spec valid usage text states 'If the VkImageSubresourceRange::layerCount member of any element of the pRanges array is not VK_REMAINING_ARRAY_LAYERS, it must be non-zero and VkImageSubresourceRange::baseArrayLayer + VkImageSubresourceRange::layerCount for that element of the pRanges array must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-layerCount-01477)"}, {VALIDATION_ERROR_18a02401, "The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter)"}, {VALIDATION_ERROR_18a02413, "The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-commandBuffer-recording)"}, {VALIDATION_ERROR_18a02415, "The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool)"}, @@ -5144,7 +5184,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_19602401, "The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter)"}, {VALIDATION_ERROR_19602413, "The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording)"}, {VALIDATION_ERROR_19602415, "The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool)"}, - {VALIDATION_ERROR_1961a601, "The spec valid usage text states 'pMarkerInfo must be a pointer to a VkDebugMarkerMarkerInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter)"}, + {VALIDATION_ERROR_1961a601, "The spec valid usage text states 'pMarkerInfo must be a pointer to a valid VkDebugMarkerMarkerInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter)"}, {VALIDATION_ERROR_198009ae, "The spec valid usage text states 'There must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239)"}, {VALIDATION_ERROR_198009b0, "The spec valid usage text states 'If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240)"}, {VALIDATION_ERROR_19802401, "The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter)"}, @@ -5153,7 +5193,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_19a02401, "The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter)"}, {VALIDATION_ERROR_19a02413, "The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording)"}, {VALIDATION_ERROR_19a02415, "The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool)"}, - {VALIDATION_ERROR_19a1a601, "The spec valid usage text states 'pMarkerInfo must be a pointer to a VkDebugMarkerMarkerInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter)"}, + {VALIDATION_ERROR_19a1a601, "The spec valid usage text states 'pMarkerInfo must be a pointer to a valid VkDebugMarkerMarkerInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter)"}, {VALIDATION_ERROR_19c00017, "The spec valid usage text states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatch-renderpass)"}, {VALIDATION_ERROR_19c00304, "The spec valid usage text states 'groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatch-groupCountX-00386)"}, {VALIDATION_ERROR_19c00306, "The spec valid usage text states 'groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatch-groupCountY-00387)"}, @@ -5884,11 +5924,11 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_23424801, "The spec valid usage text states 'pSurface must be a pointer to a VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateXlibSurfaceKHR-pSurface-parameter)"}, {VALIDATION_ERROR_236009a8, "The spec valid usage text states 'pNameInfo.object must be a Vulkan object' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-01236)"}, {VALIDATION_ERROR_23605601, "The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectNameEXT-device-parameter)"}, - {VALIDATION_ERROR_2361c201, "The spec valid usage text states 'pNameInfo must be a pointer to a VkDebugMarkerObjectNameInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter)"}, + {VALIDATION_ERROR_2361c201, "The spec valid usage text states 'pNameInfo must be a pointer to a valid VkDebugMarkerObjectNameInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter)"}, {VALIDATION_ERROR_238009aa, "The spec valid usage text states 'pTagInfo.object must be a Vulkan object' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-01237)"}, {VALIDATION_ERROR_238009ac, "The spec valid usage text states 'pTagInfo.tagName must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-01238)"}, {VALIDATION_ERROR_23805601, "The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectTagEXT-device-parameter)"}, - {VALIDATION_ERROR_23825c01, "The spec valid usage text states 'pTagInfo must be a pointer to a VkDebugMarkerObjectTagInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter)"}, + {VALIDATION_ERROR_23825c01, "The spec valid usage text states 'pTagInfo must be a pointer to a valid VkDebugMarkerObjectTagInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter)"}, {VALIDATION_ERROR_23a009b2, "The spec valid usage text states 'object must be a Vulkan object or VK_NULL_HANDLE' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugReportMessageEXT-object-01241)"}, {VALIDATION_ERROR_23a09001, "The spec valid usage text states 'flags must be a valid combination of VkDebugReportFlagBitsEXT values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugReportMessageEXT-flags-parameter)"}, {VALIDATION_ERROR_23a09003, "The spec valid usage text states 'flags must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDebugReportMessageEXT-flags-requiredbitmask)"}, @@ -6535,7 +6575,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_33e08a1b, "The spec valid usage text states 'fenceCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkWaitForFences-fenceCount-arraylength)"}, {VALIDATION_ERROR_33e17201, "The spec valid usage text states 'pFences must be a pointer to an array of fenceCount valid VkFence handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkWaitForFences-pFences-parameter)"}, {VALIDATION_ERROR_33e17207, "The spec valid usage text states 'Each element of pFences must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkWaitForFences-pFences-parent)"}, - {VALIDATION_ERROR_3401c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceIDPropertiesKHR, VkPhysicalDeviceMultiviewPropertiesKHX, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, or VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceProperties2KHR-pNext-pNext)"}, + {VALIDATION_ERROR_3401c40d, "The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceIDPropertiesKHR, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewPropertiesKHX, VkPhysicalDevicePushDescriptorPropertiesKHR, or VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceProperties2KHR-pNext-pNext)"}, {VALIDATION_ERROR_3402b00b, "The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceProperties2KHR-sType-sType)"}, {VALIDATION_ERROR_3402b00f, "The spec valid usage text states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceProperties2KHR-sType-unique)"}, {VALIDATION_ERROR_3421c40d, "The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFormatProperties2KHR-pNext-pNext)"}, diff --git a/layers/windows/VkLayer_core_validation.json b/layers/windows/VkLayer_core_validation.json index 1912cd98..43d0b788 100644 --- a/layers/windows/VkLayer_core_validation.json +++ b/layers/windows/VkLayer_core_validation.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_core_validation", "type": "GLOBAL", "library_path": ".\\VkLayer_core_validation.dll", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/windows/VkLayer_object_tracker.json b/layers/windows/VkLayer_object_tracker.json index 053291fb..6d029a3b 100644 --- a/layers/windows/VkLayer_object_tracker.json +++ b/layers/windows/VkLayer_object_tracker.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_object_tracker", "type": "GLOBAL", "library_path": ".\\VkLayer_object_tracker.dll", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/windows/VkLayer_parameter_validation.json b/layers/windows/VkLayer_parameter_validation.json index b8aa6419..c7424d57 100644 --- a/layers/windows/VkLayer_parameter_validation.json +++ b/layers/windows/VkLayer_parameter_validation.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_parameter_validation", "type": "GLOBAL", "library_path": ".\\VkLayer_parameter_validation.dll", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Validation Layer", "instance_extensions": [ diff --git a/layers/windows/VkLayer_standard_validation.json b/layers/windows/VkLayer_standard_validation.json index e5f52394..3acd86b4 100644 --- a/layers/windows/VkLayer_standard_validation.json +++ b/layers/windows/VkLayer_standard_validation.json @@ -3,7 +3,7 @@ "layer": { "name": "VK_LAYER_LUNARG_standard_validation", "type": "GLOBAL", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "LunarG Standard Validation", "component_layers": [ diff --git a/layers/windows/VkLayer_threading.json b/layers/windows/VkLayer_threading.json index 2dcd9fb5..0cc01522 100644 --- a/layers/windows/VkLayer_threading.json +++ b/layers/windows/VkLayer_threading.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_GOOGLE_threading", "type": "GLOBAL", "library_path": ".\\VkLayer_threading.dll", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "Google Validation Layer", "instance_extensions": [ diff --git a/layers/windows/VkLayer_unique_objects.json b/layers/windows/VkLayer_unique_objects.json index 8a438b84..bbc75baa 100644 --- a/layers/windows/VkLayer_unique_objects.json +++ b/layers/windows/VkLayer_unique_objects.json @@ -4,7 +4,7 @@ "name": "VK_LAYER_GOOGLE_unique_objects", "type": "GLOBAL", "library_path": ".\\VkLayer_unique_objects.dll", - "api_version": "1.0.54", + "api_version": "1.0.55", "implementation_version": "1", "description": "Google Validation Layer" } diff --git a/scripts/generator.py b/scripts/generator.py index e729b171..a9a7bd58 100755 --- a/scripts/generator.py +++ b/scripts/generator.py @@ -355,6 +355,13 @@ class OutputGenerator: # Struct (e.g. C "struct" type) generation def genStruct(self, typeinfo, name): self.validateFeature('struct', name) + + # The mixed-mode tags may contain no-op tags. + # It is convenient to remove them here where all output generators + # will benefit. + for member in typeinfo.elem.findall('.//member'): + for comment in member.findall('comment'): + member.remove(comment) # # Group (e.g. C "enum" type) generation def genGroup(self, groupinfo, name): diff --git a/scripts/reg.py b/scripts/reg.py index 5c92d271..a591380b 100755 --- a/scripts/reg.py +++ b/scripts/reg.py @@ -16,6 +16,7 @@ import io,os,re,string,sys,copy import xml.etree.ElementTree as etree +from collections import defaultdict # matchAPIProfile - returns whether an API and profile # being generated matches an element's profile @@ -201,6 +202,7 @@ class Registry: self.apidict = {} self.extensions = [] self.requiredextensions = [] # Hack - can remove it after validity generator goes away + self.validextensionstructs = defaultdict(list) self.extdict = {} # A default output generator, so commands prior to apiGen can report # errors via the generator object. @@ -388,6 +390,18 @@ class Registry: if (addEnumInfo): enumInfo = EnumInfo(enum) self.addElementInfo(enum, enumInfo, 'enum', self.enumdict) + # Construct a "validextensionstructs" list for parent structures + # based on "structextends" tags in child structures + for type in self.reg.findall('types/type'): + parentStructs = type.get('structextends') + if (parentStructs != None): + for parent in parentStructs.split(','): + # self.gen.logMsg('diag', type.get('name'), 'extends', parent) + self.validextensionstructs[parent].append(type.get('name')) + # Sort the lists so they don't depend on the XML order + for parent in self.validextensionstructs: + self.validextensionstructs[parent].sort() + def dumpReg(self, maxlen = 40, filehandle = sys.stdout): """Dump all the dictionaries constructed from the Registry object""" write('***************************************', file=filehandle) diff --git a/scripts/vk.xml b/scripts/vk.xml index 3e0010bc..13431d93 100644 --- a/scripts/vk.xml +++ b/scripts/vk.xml @@ -27,17 +27,16 @@ the master branch of the Khronos Vulkan GitHub project. The authoritative private version is maintained in the 1.0 branch of the member gitlab server. - - + - - + + @@ -63,10 +62,10 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + #include "vk_platform.h" - + + WSI extensions #include "vulkan.h" #include <X11/Xlib.h> #include <X11/extensions/Xrandr.h> @@ -102,11 +101,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) +//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) +#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 54 +#define VK_HEADER_VERSION 55 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -130,7 +129,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. typedef uint32_t VkFlags; typedef uint64_t VkDeviceSize; - + Basic C types, pulled in via vk_platform.h @@ -140,89 +139,91 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - typedef VkFlags VkFramebufferCreateFlags; - typedef VkFlags VkQueryPoolCreateFlags; - typedef VkFlags VkRenderPassCreateFlags; - typedef VkFlags VkSamplerCreateFlags; - typedef VkFlags VkPipelineLayoutCreateFlags; - typedef VkFlags VkPipelineCacheCreateFlags; - typedef VkFlags VkPipelineDepthStencilStateCreateFlags; - typedef VkFlags VkPipelineDynamicStateCreateFlags; - typedef VkFlags VkPipelineColorBlendStateCreateFlags; - typedef VkFlags VkPipelineMultisampleStateCreateFlags; - typedef VkFlags VkPipelineRasterizationStateCreateFlags; - typedef VkFlags VkPipelineViewportStateCreateFlags; - typedef VkFlags VkPipelineTessellationStateCreateFlags; - typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; - typedef VkFlags VkPipelineVertexInputStateCreateFlags; - typedef VkFlags VkPipelineShaderStageCreateFlags; - typedef VkFlags VkDescriptorSetLayoutCreateFlags; - typedef VkFlags VkBufferViewCreateFlags; - typedef VkFlags VkInstanceCreateFlags; - typedef VkFlags VkDeviceCreateFlags; - typedef VkFlags VkDeviceQueueCreateFlags; - typedef VkFlags VkQueueFlags; - typedef VkFlags VkMemoryPropertyFlags; - typedef VkFlags VkMemoryHeapFlags; - typedef VkFlags VkAccessFlags; - typedef VkFlags VkBufferUsageFlags; - typedef VkFlags VkBufferCreateFlags; - typedef VkFlags VkShaderStageFlags; - typedef VkFlags VkImageUsageFlags; - typedef VkFlags VkImageCreateFlags; - typedef VkFlags VkImageViewCreateFlags; - typedef VkFlags VkPipelineCreateFlags; - typedef VkFlags VkColorComponentFlags; - typedef VkFlags VkFenceCreateFlags; - typedef VkFlags VkSemaphoreCreateFlags; - typedef VkFlags VkFormatFeatureFlags; - typedef VkFlags VkQueryControlFlags; - typedef VkFlags VkQueryResultFlags; - typedef VkFlags VkShaderModuleCreateFlags; - typedef VkFlags VkEventCreateFlags; - typedef VkFlags VkCommandPoolCreateFlags; - typedef VkFlags VkCommandPoolResetFlags; - typedef VkFlags VkCommandBufferResetFlags; - typedef VkFlags VkCommandBufferUsageFlags; - typedef VkFlags VkQueryPipelineStatisticFlags; - typedef VkFlags VkMemoryMapFlags; - typedef VkFlags VkImageAspectFlags; - typedef VkFlags VkSparseMemoryBindFlags; - typedef VkFlags VkSparseImageFormatFlags; - typedef VkFlags VkSubpassDescriptionFlags; - typedef VkFlags VkPipelineStageFlags; - typedef VkFlags VkSampleCountFlags; - typedef VkFlags VkAttachmentDescriptionFlags; - typedef VkFlags VkStencilFaceFlags; - typedef VkFlags VkCullModeFlags; - typedef VkFlags VkDescriptorPoolCreateFlags; - typedef VkFlags VkDescriptorPoolResetFlags; - typedef VkFlags VkDependencyFlags; - typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; - typedef VkFlags VkObjectEntryUsageFlagsNVX; + Bitmask types + typedef VkFlags VkFramebufferCreateFlags; + typedef VkFlags VkQueryPoolCreateFlags; + typedef VkFlags VkRenderPassCreateFlags; + typedef VkFlags VkSamplerCreateFlags; + typedef VkFlags VkPipelineLayoutCreateFlags; + typedef VkFlags VkPipelineCacheCreateFlags; + typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + typedef VkFlags VkPipelineDynamicStateCreateFlags; + typedef VkFlags VkPipelineColorBlendStateCreateFlags; + typedef VkFlags VkPipelineMultisampleStateCreateFlags; + typedef VkFlags VkPipelineRasterizationStateCreateFlags; + typedef VkFlags VkPipelineViewportStateCreateFlags; + typedef VkFlags VkPipelineTessellationStateCreateFlags; + typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; + typedef VkFlags VkPipelineVertexInputStateCreateFlags; + typedef VkFlags VkPipelineShaderStageCreateFlags; + typedef VkFlags VkDescriptorSetLayoutCreateFlags; + typedef VkFlags VkBufferViewCreateFlags; + typedef VkFlags VkInstanceCreateFlags; + typedef VkFlags VkDeviceCreateFlags; + typedef VkFlags VkDeviceQueueCreateFlags; + typedef VkFlags VkQueueFlags; + typedef VkFlags VkMemoryPropertyFlags; + typedef VkFlags VkMemoryHeapFlags; + typedef VkFlags VkAccessFlags; + typedef VkFlags VkBufferUsageFlags; + typedef VkFlags VkBufferCreateFlags; + typedef VkFlags VkShaderStageFlags; + typedef VkFlags VkImageUsageFlags; + typedef VkFlags VkImageCreateFlags; + typedef VkFlags VkImageViewCreateFlags; + typedef VkFlags VkPipelineCreateFlags; + typedef VkFlags VkColorComponentFlags; + typedef VkFlags VkFenceCreateFlags; + typedef VkFlags VkSemaphoreCreateFlags; + typedef VkFlags VkFormatFeatureFlags; + typedef VkFlags VkQueryControlFlags; + typedef VkFlags VkQueryResultFlags; + typedef VkFlags VkShaderModuleCreateFlags; + typedef VkFlags VkEventCreateFlags; + typedef VkFlags VkCommandPoolCreateFlags; + typedef VkFlags VkCommandPoolResetFlags; + typedef VkFlags VkCommandBufferResetFlags; + typedef VkFlags VkCommandBufferUsageFlags; + typedef VkFlags VkQueryPipelineStatisticFlags; + typedef VkFlags VkMemoryMapFlags; + typedef VkFlags VkImageAspectFlags; + typedef VkFlags VkSparseMemoryBindFlags; + typedef VkFlags VkSparseImageFormatFlags; + typedef VkFlags VkSubpassDescriptionFlags; + typedef VkFlags VkPipelineStageFlags; + typedef VkFlags VkSampleCountFlags; + typedef VkFlags VkAttachmentDescriptionFlags; + typedef VkFlags VkStencilFaceFlags; + typedef VkFlags VkCullModeFlags; + typedef VkFlags VkDescriptorPoolCreateFlags; + typedef VkFlags VkDescriptorPoolResetFlags; + typedef VkFlags VkDependencyFlags; + + typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; + typedef VkFlags VkObjectEntryUsageFlagsNVX; + + typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR; - typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR; - + WSI extensions typedef VkFlags VkCompositeAlphaFlagsKHR; typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; typedef VkFlags VkSurfaceTransformFlagsKHR; - typedef VkFlags VkSwapchainCreateFlagsKHR; - typedef VkFlags VkDisplayModeCreateFlagsKHR; - typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; - typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; - typedef VkFlags VkMirSurfaceCreateFlagsKHR; - typedef VkFlags VkViSurfaceCreateFlagsNN; - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - typedef VkFlags VkPeerMemoryFeatureFlagsKHX; - typedef VkFlags VkMemoryAllocateFlagsKHX; - typedef VkFlags VkDeviceGroupPresentModeFlagsKHX; + typedef VkFlags VkSwapchainCreateFlagsKHR; + typedef VkFlags VkDisplayModeCreateFlagsKHR; + typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; + typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; + typedef VkFlags VkMirSurfaceCreateFlagsKHR; + typedef VkFlags VkViSurfaceCreateFlagsNN; + typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; + typedef VkFlags VkWin32SurfaceCreateFlagsKHR; + typedef VkFlags VkXlibSurfaceCreateFlagsKHR; + typedef VkFlags VkXcbSurfaceCreateFlagsKHR; + typedef VkFlags VkIOSSurfaceCreateFlagsMVK; + typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; + typedef VkFlags VkPeerMemoryFeatureFlagsKHX; + typedef VkFlags VkMemoryAllocateFlagsKHX; + typedef VkFlags VkDeviceGroupPresentModeFlagsKHX; typedef VkFlags VkDebugReportFlagsEXT; typedef VkFlags VkCommandPoolTrimFlagsKHR; @@ -237,12 +238,12 @@ private version is maintained in the 1.0 branch of the member gitlab server. typedef VkFlags VkExternalFenceFeatureFlagsKHR; typedef VkFlags VkFenceImportFlagsKHR; typedef VkFlags VkSurfaceCounterFlagsEXT; - typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; - typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; - typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; + typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; + typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; + typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; - + Types which can be void pointers or class pointers, selected at compile time VK_DEFINE_HANDLE(VkInstance) VK_DEFINE_HANDLE(VkPhysicalDevice) VK_DEFINE_HANDLE(VkDevice) @@ -272,14 +273,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR) - + WSI extensions VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) - + Types generated from corresponding enums tags below @@ -367,7 +368,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + + Extensions @@ -377,7 +379,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + + WSI extensions @@ -408,7 +411,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + The PFN_vk*Function types are used by VkAllocationCallbacks below typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( void* pUserData, size_t size, @@ -434,10 +437,10 @@ private version is maintained in the 1.0 branch of the member gitlab server. void* pUserData, void* pMemory); - + The PFN_vkVoidFunction type are used by VkGet*ProcAddr below typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); - + The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, @@ -448,7 +451,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. const char* pMessage, void* pUserData); - + Struct types int32_t x int32_t y @@ -506,18 +509,18 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkPhysicalDeviceSparseProperties sparseProperties - char extensionName[VK_MAX_EXTENSION_NAME_SIZE] - uint32_t specVersion + char extensionName[VK_MAX_EXTENSION_NAME_SIZE]extension name + uint32_t specVersionversion of the extension specification implemented - char layerName[VK_MAX_EXTENSION_NAME_SIZE] - uint32_t specVersion - uint32_t implementationVersion - char description[VK_MAX_DESCRIPTION_SIZE] + char layerName[VK_MAX_EXTENSION_NAME_SIZE]layer name + uint32_t specVersionversion of the layer specification implemented + uint32_t implementationVersionbuild or release version of the layer's library + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the layer VkStructureType sType - const void* pNext + const void* pNext const char* pApplicationName uint32_t applicationVersion const char* pEngineName @@ -534,39 +537,39 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkDeviceQueueCreateFlags flags + const void* pNext + VkDeviceQueueCreateFlags flags uint32_t queueFamilyIndex uint32_t queueCount const float* pQueuePriorities VkStructureType sType - const void* pNext - VkDeviceCreateFlags flags + const void* pNext + VkDeviceCreateFlags flags uint32_t queueCreateInfoCount const VkDeviceQueueCreateInfo* pQueueCreateInfos uint32_t enabledLayerCount - const char* const* ppEnabledLayerNames + const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled uint32_t enabledExtensionCount const char* const* ppEnabledExtensionNames const VkPhysicalDeviceFeatures* pEnabledFeatures VkStructureType sType - const void* pNext - VkInstanceCreateFlags flags + const void* pNext + VkInstanceCreateFlags flags const VkApplicationInfo* pApplicationInfo uint32_t enabledLayerCount - const char* const* ppEnabledLayerNames + const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled uint32_t enabledExtensionCount - const char* const* ppEnabledExtensionNames + const char* const* ppEnabledExtensionNamesExtension names to be enabled - VkQueueFlags queueFlags + VkQueueFlags queueFlagsQueue flags uint32_t queueCount uint32_t timestampValidBits - VkExtent3D minImageTransferGranularity + VkExtent3D minImageTransferGranularityMinimum alignment requirement for image transfers uint32_t memoryTypeCount @@ -576,14 +579,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkDeviceSize allocationSize - uint32_t memoryTypeIndex + const void* pNext + VkDeviceSize allocationSizeSize of memory allocation + uint32_t memoryTypeIndexIndex of the of the memory type to allocate from - VkDeviceSize size - VkDeviceSize alignment - uint32_t memoryTypeBits + VkDeviceSize sizeSpecified in bytes + VkDeviceSize alignmentSpecified in bytes + uint32_t memoryTypeBitsBitmask of the allowed memory type indices into memoryTypes[] for this object VkImageAspectFlags aspectMask @@ -593,88 +596,88 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkSparseImageFormatProperties formatProperties uint32_t imageMipTailFirstLod - VkDeviceSize imageMipTailSize - VkDeviceSize imageMipTailOffset - VkDeviceSize imageMipTailStride + VkDeviceSize imageMipTailSizeSpecified in bytes, must be a multiple of sparse block size in bytes / alignment + VkDeviceSize imageMipTailOffsetSpecified in bytes, must be a multiple of sparse block size in bytes / alignment + VkDeviceSize imageMipTailStrideSpecified in bytes, must be a multiple of sparse block size in bytes / alignment - VkMemoryPropertyFlags propertyFlags - uint32_t heapIndex + VkMemoryPropertyFlags propertyFlagsMemory properties of this memory type + uint32_t heapIndexIndex of the memory heap allocations of this memory type are taken from - VkDeviceSize size - VkMemoryHeapFlags flags + VkDeviceSize sizeAvailable memory in the heap + VkMemoryHeapFlags flagsFlags for the heap VkStructureType sType - const void* pNext - VkDeviceMemory memory - VkDeviceSize offset - VkDeviceSize size + const void* pNext + VkDeviceMemory memoryMapped memory object + VkDeviceSize offsetOffset within the memory object where the range starts + VkDeviceSize sizeSize of the range within the memory object - VkFormatFeatureFlags linearTilingFeatures - VkFormatFeatureFlags optimalTilingFeatures - VkFormatFeatureFlags bufferFeatures + VkFormatFeatureFlags linearTilingFeaturesFormat features in case of linear tiling + VkFormatFeatureFlags optimalTilingFeaturesFormat features in case of optimal tiling + VkFormatFeatureFlags bufferFeaturesFormat features supported by buffers - VkExtent3D maxExtent - uint32_t maxMipLevels - uint32_t maxArrayLayers - VkSampleCountFlags sampleCounts - VkDeviceSize maxResourceSize + VkExtent3D maxExtentmax image dimensions for this resource type + uint32_t maxMipLevelsmax number of mipmap levels for this resource type + uint32_t maxArrayLayersmax array size for this resource type + VkSampleCountFlags sampleCountssupported sample counts for this resource type + VkDeviceSize maxResourceSizemax size (in bytes) of this resource type - VkBuffer buffer - VkDeviceSize offset - VkDeviceSize range + VkBuffer bufferBuffer used for this descriptor slot when the descriptor is UNIFORM_BUFFER[_DYNAMIC] or STORAGE_BUFFER[_DYNAMIC]. VK_NULL_HANDLE otherwise. + VkDeviceSize offsetBase offset from buffer start in bytes to update in the descriptor set. + VkDeviceSize rangeSize in bytes of the buffer resource for this descriptor update. - VkSampler sampler - VkImageView imageView - VkImageLayout imageLayout + VkSampler samplerSampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise. + VkImageView imageViewImage view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise. + VkImageLayout imageLayoutLayout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). VkStructureType sType - const void* pNext - VkDescriptorSet dstSet - uint32_t dstBinding - uint32_t dstArrayElement - uint32_t descriptorCount - VkDescriptorType descriptorType - const VkDescriptorImageInfo* pImageInfo - const VkDescriptorBufferInfo* pBufferInfo - const VkBufferView* pTexelBufferView + const void* pNext + VkDescriptorSet dstSetDestination descriptor set + uint32_t dstBindingBinding within the destination descriptor set to write + uint32_t dstArrayElementArray element within the destination binding to write + uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) + VkDescriptorType descriptorTypeDescriptor type to write (determines which members of the array pointed by pDescriptors are going to be used) + const VkDescriptorImageInfo* pImageInfoSampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types. + const VkDescriptorBufferInfo* pBufferInfoRaw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types. + const VkBufferView* pTexelBufferViewBuffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types. VkStructureType sType - const void* pNext - VkDescriptorSet srcSet - uint32_t srcBinding - uint32_t srcArrayElement - VkDescriptorSet dstSet - uint32_t dstBinding - uint32_t dstArrayElement - uint32_t descriptorCount + const void* pNext + VkDescriptorSet srcSetSource descriptor set + uint32_t srcBindingBinding within the source descriptor set to copy from + uint32_t srcArrayElementArray element within the source binding to copy from + VkDescriptorSet dstSetDestination descriptor set + uint32_t dstBindingBinding within the destination descriptor set to copy to + uint32_t dstArrayElementArray element within the destination binding to copy to + uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) VkStructureType sType - const void* pNext - VkBufferCreateFlags flags - VkDeviceSize size - VkBufferUsageFlags usage + const void* pNext + VkBufferCreateFlags flagsBuffer creation flags + VkDeviceSize sizeSpecified in bytes + VkBufferUsageFlags usageBuffer usage flags VkSharingMode sharingMode uint32_t queueFamilyIndexCount const uint32_t* pQueueFamilyIndices VkStructureType sType - const void* pNext - VkBufferViewCreateFlagsflags + const void* pNext + VkBufferViewCreateFlagsflags VkBuffer buffer - VkFormat format - VkDeviceSize offset - VkDeviceSize range + VkFormat formatOptionally specifies format of elements + VkDeviceSize offsetSpecified in bytes + VkDeviceSize rangeView size specified in bytes VkImageAspectFlags aspectMask @@ -696,37 +699,37 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMask - VkAccessFlags dstAccessMask + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMask - VkAccessFlags dstAccessMask - uint32_t srcQueueFamilyIndex - uint32_t dstQueueFamilyIndex - VkBuffer buffer - VkDeviceSize offset - VkDeviceSize size + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + uint32_t srcQueueFamilyIndexQueue family to transition ownership from + uint32_t dstQueueFamilyIndexQueue family to transition ownership to + VkBuffer bufferBuffer to sync + VkDeviceSize offsetOffset within the buffer to sync + VkDeviceSize sizeAmount of bytes to sync VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMask - VkAccessFlags dstAccessMask - VkImageLayout oldLayout - VkImageLayout newLayout - uint32_t srcQueueFamilyIndex - uint32_t dstQueueFamilyIndex - VkImage image - VkImageSubresourceRange subresourceRange + const void* pNext + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize + VkImageLayout oldLayoutCurrent layout of the image + VkImageLayout newLayoutNew layout to transition the image to + uint32_t srcQueueFamilyIndexQueue family to transition ownership from + uint32_t dstQueueFamilyIndexQueue family to transition ownership to + VkImage imageImage to sync + VkImageSubresourceRange subresourceRangeSubresource range to sync VkStructureType sType - const void* pNext - VkImageCreateFlags flags + const void* pNext + VkImageCreateFlags flagsImage creation flags VkImageType imageType VkFormat format VkExtent3D extent @@ -734,23 +737,23 @@ private version is maintained in the 1.0 branch of the member gitlab server. uint32_t arrayLayers VkSampleCountFlagBits samples VkImageTiling tiling - VkImageUsageFlags usage - VkSharingMode sharingMode - uint32_t queueFamilyIndexCount - const uint32_t* pQueueFamilyIndices - VkImageLayout initialLayout + VkImageUsageFlags usageImage usage flags + VkSharingMode sharingModeCross-queue-family sharing mode + uint32_t queueFamilyIndexCountNumber of queue families to share across + const uint32_t* pQueueFamilyIndicesArray of queue family indices to share across + VkImageLayout initialLayoutInitial image layout for all subresources - VkDeviceSize offset - VkDeviceSize size - VkDeviceSize rowPitch - VkDeviceSize arrayPitch - VkDeviceSize depthPitch + VkDeviceSize offsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + VkDeviceSize rowPitchSpecified in bytes + VkDeviceSize arrayPitchSpecified in bytes + VkDeviceSize depthPitchSpecified in bytes VkStructureType sType - const void* pNext - VkImageViewCreateFlags flags + const void* pNext + VkImageViewCreateFlags flags VkImage image VkImageViewType viewType VkFormat format @@ -758,24 +761,24 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkImageSubresourceRange subresourceRange - VkDeviceSize srcOffset - VkDeviceSize dstOffset - VkDeviceSize size + VkDeviceSize srcOffsetSpecified in bytes + VkDeviceSize dstOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes - VkDeviceSize resourceOffset - VkDeviceSize size + VkDeviceSize resourceOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes VkDeviceMemory memory - VkDeviceSize memoryOffset - VkSparseMemoryBindFlagsflags + VkDeviceSize memoryOffsetSpecified in bytes + VkSparseMemoryBindFlagsflags VkImageSubresource subresource VkOffset3D offset VkExtent3D extent VkDeviceMemory memory - VkDeviceSize memoryOffset - VkSparseMemoryBindFlagsflags + VkDeviceSize memoryOffsetSpecified in bytes + VkSparseMemoryBindFlagsflags VkBuffer buffer @@ -794,7 +797,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext uint32_t waitSemaphoreCount const VkSemaphore* pWaitSemaphores uint32_t bufferBindCount @@ -808,24 +811,24 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffset + VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffset - VkExtent3D extent + VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D extentSpecified in pixels for both compressed and uncompressed images VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffsets[2] + VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffsets[2] + VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images - VkDeviceSize bufferOffset - uint32_t bufferRowLength + VkDeviceSize bufferOffsetSpecified in bytes + uint32_t bufferRowLengthSpecified in texels uint32_t bufferImageHeight VkImageSubresourceLayers imageSubresource - VkOffset3D imageOffset - VkExtent3D imageExtent + VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images VkImageSubresourceLayers srcSubresource @@ -836,24 +839,24 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkShaderModuleCreateFlags flags - size_t codeSize - const uint32_t* pCode + const void* pNext + VkShaderModuleCreateFlags flags + size_t codeSizeSpecified in bytes + const uint32_t* pCodeBinary code of size codeSize - uint32_t binding - VkDescriptorType descriptorType - uint32_t descriptorCount - VkShaderStageFlags stageFlags - const VkSampler* pImmutableSamplers + uint32_t bindingBinding number for this entry + VkDescriptorType descriptorTypeType of the descriptors in this binding + uint32_t descriptorCountNumber of descriptors in this binding + VkShaderStageFlags stageFlagsShader stages this binding is visible to + const VkSampler* pImmutableSamplersImmutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements) VkStructureType sType - const void* pNext - VkDescriptorSetLayoutCreateFlags flags - uint32_t bindingCount - const VkDescriptorSetLayoutBinding* pBindings + const void* pNext + VkDescriptorSetLayoutCreateFlags flags + uint32_t bindingCountNumber of bindings in the descriptor set layout + const VkDescriptorSetLayoutBinding* pBindingsArray of descriptor set layout bindings VkDescriptorType type @@ -861,7 +864,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkDescriptorPoolCreateFlags flags uint32_t maxSets uint32_t poolSizeCount @@ -869,77 +872,77 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkDescriptorPool descriptorPool uint32_t descriptorSetCount const VkDescriptorSetLayout* pSetLayouts - uint32_t constantID - uint32_t offset - size_t size + uint32_t constantIDThe SpecConstant ID specified in the BIL + uint32_t offsetOffset of the value in the data block + size_t sizeSize in bytes of the SpecConstant - uint32_t mapEntryCount - const VkSpecializationMapEntry* pMapEntries - size_t dataSize - const void* pData + uint32_t mapEntryCountNumber of entries in the map + const VkSpecializationMapEntry* pMapEntriesArray of map entries + size_t dataSizeSize in bytes of pData + const void* pDataPointer to SpecConstant data VkStructureType sType - const void* pNext - VkPipelineShaderStageCreateFlags flags - VkShaderStageFlagBits stage - VkShaderModule module - const char* pName + const void* pNext + VkPipelineShaderStageCreateFlags flags + VkShaderStageFlagBits stageShader stage + VkShaderModule moduleModule containing entry point + const char* pNameNull-terminated entry point name const VkSpecializationInfo* pSpecializationInfo VkStructureType sType - const void* pNext - VkPipelineCreateFlags flags + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags VkPipelineShaderStageCreateInfo stage - VkPipelineLayout layout - VkPipeline basePipelineHandle - int32_t basePipelineIndex + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - uint32_t binding - uint32_t stride - VkVertexInputRate inputRate + uint32_t bindingVertex buffer binding id + uint32_t strideDistance between vertices in bytes (0 = no advancement) + VkVertexInputRate inputRateThe rate at which the vertex data is consumed - uint32_t location - uint32_t binding - VkFormat format - uint32_t offset + uint32_t locationlocation of the shader vertex attrib + uint32_t bindingVertex buffer binding id + VkFormat formatformat of source data + uint32_t offsetOffset of first element in bytes from base of vertex VkStructureType sType - const void* pNext - VkPipelineVertexInputStateCreateFlags flags - uint32_t vertexBindingDescriptionCount + const void* pNext + VkPipelineVertexInputStateCreateFlags flags + uint32_t vertexBindingDescriptionCountnumber of bindings const VkVertexInputBindingDescription* pVertexBindingDescriptions - uint32_t vertexAttributeDescriptionCount + uint32_t vertexAttributeDescriptionCountnumber of attributes const VkVertexInputAttributeDescription* pVertexAttributeDescriptions VkStructureType sType - const void* pNext - VkPipelineInputAssemblyStateCreateFlags flags + const void* pNext + VkPipelineInputAssemblyStateCreateFlags flags VkPrimitiveTopology topology VkBool32 primitiveRestartEnable VkStructureType sType - const void* pNext - VkPipelineTessellationStateCreateFlags flags + const void* pNext + VkPipelineTessellationStateCreateFlags flags uint32_t patchControlPoints VkStructureType sType - const void* pNext - VkPipelineViewportStateCreateFlags flags + const void* pNext + VkPipelineViewportStateCreateFlags flags uint32_t viewportCount const VkViewport* pViewports uint32_t scissorCount @@ -947,11 +950,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineRasterizationStateCreateFlags flags + const void* pNext + VkPipelineRasterizationStateCreateFlags flags VkBool32 depthClampEnable VkBool32 rasterizerDiscardEnable - VkPolygonMode polygonMode + VkPolygonMode polygonModeoptional (GL45) VkCullModeFlags cullMode VkFrontFace frontFace VkBool32 depthBiasEnable @@ -962,12 +965,12 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineMultisampleStateCreateFlags flags - VkSampleCountFlagBits rasterizationSamples - VkBool32 sampleShadingEnable - float minSampleShading - const VkSampleMask* pSampleMask + const void* pNext + VkPipelineMultisampleStateCreateFlags flags + VkSampleCountFlagBits rasterizationSamplesNumber of samples used for rasterization + VkBool32 sampleShadingEnableoptional (GL45) + float minSampleShadingoptional (GL45) + const VkSampleMask* pSampleMaskArray of sampleMask words VkBool32 alphaToCoverageEnable VkBool32 alphaToOneEnable @@ -983,18 +986,18 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineColorBlendStateCreateFlags flags + const void* pNext + VkPipelineColorBlendStateCreateFlags flags VkBool32 logicOpEnable VkLogicOp logicOp - uint32_t attachmentCount + uint32_t attachmentCount# of pAttachments const VkPipelineColorBlendAttachmentState* pAttachments float blendConstants[4] VkStructureType sType - const void* pNext - VkPipelineDynamicStateCreateFlags flags + const void* pNext + VkPipelineDynamicStateCreateFlags flags uint32_t dynamicStateCount const VkDynamicState* pDynamicStates @@ -1009,12 +1012,12 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineDepthStencilStateCreateFlags flags + const void* pNext + VkPipelineDepthStencilStateCreateFlags flags VkBool32 depthTestEnable VkBool32 depthWriteEnable VkCompareOp depthCompareOp - VkBool32 depthBoundsTestEnable + VkBool32 depthBoundsTestEnableoptional (depth_bounds_test) VkBool32 stencilTestEnable VkStencilOpState front VkStencilOpState back @@ -1023,10 +1026,10 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineCreateFlags flags + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStages + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage const VkPipelineVertexInputStateCreateInfo* pVertexInputState const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState const VkPipelineTessellationStateCreateInfo* pTessellationState @@ -1036,40 +1039,40 @@ private version is maintained in the 1.0 branch of the member gitlab server. const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState const VkPipelineColorBlendStateCreateInfo* pColorBlendState const VkPipelineDynamicStateCreateInfo* pDynamicState - VkPipelineLayout layout + VkPipelineLayout layoutInterface layout of the pipeline VkRenderPass renderPass uint32_t subpass - VkPipeline basePipelineHandle - int32_t basePipelineIndex + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of VkStructureType sType - const void* pNext - VkPipelineCacheCreateFlags flags - size_t initialDataSize - const void* pInitialData + const void* pNext + VkPipelineCacheCreateFlags flags + size_t initialDataSizeSize of initial data to populate cache, in bytes + const void* pInitialDataInitial data to populate cache - VkShaderStageFlags stageFlags - uint32_t offset - uint32_t size + VkShaderStageFlags stageFlagsWhich stages use the range + uint32_t offsetStart of the range, in bytes + uint32_t sizeSize of the range, in bytes VkStructureType sType - const void* pNext - VkPipelineLayoutCreateFlags flags - uint32_t setLayoutCount - const VkDescriptorSetLayout* pSetLayouts - uint32_t pushConstantRangeCount - const VkPushConstantRange* pPushConstantRanges + const void* pNext + VkPipelineLayoutCreateFlags flags + uint32_t setLayoutCountNumber of descriptor sets interfaced by the pipeline + const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the + uint32_t pushConstantRangeCountNumber of push-constant ranges used by the pipeline + const VkPushConstantRange* pPushConstantRangesArray of pushConstantRangeCount number of ranges used by various shader stages VkStructureType sType - const void* pNext - VkSamplerCreateFlags flags - VkFilter magFilter - VkFilter minFilter - VkSamplerMipmapMode mipmapMode + const void* pNext + VkSamplerCreateFlags flags + VkFilter magFilterFilter mode for magnification + VkFilter minFilterFilter mode for minifiation + VkSamplerMipmapMode mipmapModeMipmap selection mode VkSamplerAddressMode addressModeU VkSamplerAddressMode addressModeV VkSamplerAddressMode addressModeW @@ -1085,36 +1088,36 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkCommandPoolCreateFlags flags + const void* pNext + VkCommandPoolCreateFlags flagsCommand pool creation flags uint32_t queueFamilyIndex VkStructureType sType - const void* pNext + const void* pNext VkCommandPool commandPool VkCommandBufferLevel level uint32_t commandBufferCount VkStructureType sType - const void* pNext - VkRenderPass renderPass + const void* pNext + VkRenderPass renderPassRender pass for secondary command buffers uint32_t subpass - VkFramebuffer framebuffer - VkBool32 occlusionQueryEnable - VkQueryControlFlags queryFlags - VkQueryPipelineStatisticFlags pipelineStatistics + VkFramebuffer framebufferFramebuffer for secondary command buffers + VkBool32 occlusionQueryEnableWhether this secondary command buffer may be executed during an occlusion query + VkQueryControlFlags queryFlagsQuery flags used by this secondary command buffer, if executed during an occlusion query + VkQueryPipelineStatisticFlags pipelineStatisticsPipeline statistics that may be counted for this secondary command buffer VkStructureType sType - const void* pNext - VkCommandBufferUsageFlags flags - const VkCommandBufferInheritanceInfo* pInheritanceInfo + const void* pNext + VkCommandBufferUsageFlags flagsCommand buffer usage flags + const VkCommandBufferInheritanceInfo* pInheritanceInfoPointer to inheritance info for secondary command buffers VkStructureType sType - const void* pNext + const void* pNext VkRenderPass renderPass VkFramebuffer framebuffer VkRect2D renderArea @@ -1143,10 +1146,10 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkAttachmentDescriptionFlags flags VkFormat format VkSampleCountFlagBits samples - VkAttachmentLoadOp loadOp - VkAttachmentStoreOp storeOp - VkAttachmentLoadOp stencilLoadOp - VkAttachmentStoreOp stencilStoreOp + VkAttachmentLoadOp loadOpLoad operation for color or depth data + VkAttachmentStoreOp storeOpStore operation for color or depth data + VkAttachmentLoadOp stencilLoadOpLoad operation for stencil data + VkAttachmentStoreOp stencilStoreOpStore operation for stencil data VkImageLayout initialLayout VkImageLayout finalLayout @@ -1156,7 +1159,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkSubpassDescriptionFlags flags - VkPipelineBindPoint pipelineBindPoint + VkPipelineBindPoint pipelineBindPointMust be VK_PIPELINE_BIND_POINT_GRAPHICS for now uint32_t inputAttachmentCount const VkAttachmentReference* pInputAttachments uint32_t colorAttachmentCount @@ -1171,14 +1174,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. uint32_t dstSubpass VkPipelineStageFlags srcStageMask VkPipelineStageFlags dstStageMask - VkAccessFlags srcAccessMask - VkAccessFlags dstAccessMask + VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize + VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize VkDependencyFlags dependencyFlags VkStructureType sType - const void* pNext - VkRenderPassCreateFlags flags + const void* pNext + VkRenderPassCreateFlags flags uint32_t attachmentCount const VkAttachmentDescription* pAttachments uint32_t subpassCount @@ -1188,212 +1191,212 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkEventCreateFlags flags + const void* pNext + VkEventCreateFlags flagsEvent creation flags VkStructureType sType - const void* pNext - VkFenceCreateFlags flags + const void* pNext + VkFenceCreateFlags flagsFence creation flags - VkBool32 robustBufferAccess - VkBool32 fullDrawIndexUint32 - VkBool32 imageCubeArray - VkBool32 independentBlend - VkBool32 geometryShader - VkBool32 tessellationShader - VkBool32 sampleRateShading - VkBool32 dualSrcBlend - VkBool32 logicOp - VkBool32 multiDrawIndirect - VkBool32 drawIndirectFirstInstance - VkBool32 depthClamp - VkBool32 depthBiasClamp - VkBool32 fillModeNonSolid - VkBool32 depthBounds - VkBool32 wideLines - VkBool32 largePoints - VkBool32 alphaToOne - VkBool32 multiViewport - VkBool32 samplerAnisotropy - VkBool32 textureCompressionETC2 - VkBool32 textureCompressionASTC_LDR - VkBool32 textureCompressionBC - VkBool32 occlusionQueryPrecise - VkBool32 pipelineStatisticsQuery - VkBool32 vertexPipelineStoresAndAtomics - VkBool32 fragmentStoresAndAtomics - VkBool32 shaderTessellationAndGeometryPointSize - VkBool32 shaderImageGatherExtended - VkBool32 shaderStorageImageExtendedFormats - VkBool32 shaderStorageImageMultisample - VkBool32 shaderStorageImageReadWithoutFormat - VkBool32 shaderStorageImageWriteWithoutFormat - VkBool32 shaderUniformBufferArrayDynamicIndexing - VkBool32 shaderSampledImageArrayDynamicIndexing - VkBool32 shaderStorageBufferArrayDynamicIndexing - VkBool32 shaderStorageImageArrayDynamicIndexing - VkBool32 shaderClipDistance - VkBool32 shaderCullDistance - VkBool32 shaderFloat64 - VkBool32 shaderInt64 - VkBool32 shaderInt16 - VkBool32 shaderResourceResidency - VkBool32 shaderResourceMinLod - VkBool32 sparseBinding - VkBool32 sparseResidencyBuffer - VkBool32 sparseResidencyImage2D - VkBool32 sparseResidencyImage3D - VkBool32 sparseResidency2Samples - VkBool32 sparseResidency4Samples - VkBool32 sparseResidency8Samples - VkBool32 sparseResidency16Samples - VkBool32 sparseResidencyAliased - VkBool32 variableMultisampleRate - VkBool32 inheritedQueries + VkBool32 robustBufferAccessout of bounds buffer accesses are well defined + VkBool32 fullDrawIndexUint32full 32-bit range of indices for indexed draw calls + VkBool32 imageCubeArrayimage views which are arrays of cube maps + VkBool32 independentBlendblending operations are controlled per-attachment + VkBool32 geometryShadergeometry stage + VkBool32 tessellationShadertessellation control and evaluation stage + VkBool32 sampleRateShadingper-sample shading and interpolation + VkBool32 dualSrcBlendblend operations which take two sources + VkBool32 logicOplogic operations + VkBool32 multiDrawIndirectmulti draw indirect + VkBool32 drawIndirectFirstInstanceindirect draws can use non-zero firstInstance + VkBool32 depthClampdepth clamping + VkBool32 depthBiasClampdepth bias clamping + VkBool32 fillModeNonSolidpoint and wireframe fill modes + VkBool32 depthBoundsdepth bounds test + VkBool32 wideLineslines with width greater than 1 + VkBool32 largePointspoints with size greater than 1 + VkBool32 alphaToOnethe fragment alpha component can be forced to maximum representable alpha value + VkBool32 multiViewportviewport arrays + VkBool32 samplerAnisotropyanisotropic sampler filtering + VkBool32 textureCompressionETC2ETC texture compression formats + VkBool32 textureCompressionASTC_LDRASTC LDR texture compression formats + VkBool32 textureCompressionBCBC1-7 texture compressed formats + VkBool32 occlusionQueryPreciseprecise occlusion queries returning actual sample counts + VkBool32 pipelineStatisticsQuerypipeline statistics query + VkBool32 vertexPipelineStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages + VkBool32 fragmentStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in the fragment stage + VkBool32 shaderTessellationAndGeometryPointSizetessellation and geometry stages can export point size + VkBool32 shaderImageGatherExtendedimage gather with run-time values and independent offsets + VkBool32 shaderStorageImageExtendedFormatsthe extended set of formats can be used for storage images + VkBool32 shaderStorageImageMultisamplemultisample images can be used for storage images + VkBool32 shaderStorageImageReadWithoutFormatread from storage image does not require format qualifier + VkBool32 shaderStorageImageWriteWithoutFormatwrite to storage image does not require format qualifier + VkBool32 shaderUniformBufferArrayDynamicIndexingarrays of uniform buffers can be accessed with dynamically uniform indices + VkBool32 shaderSampledImageArrayDynamicIndexingarrays of sampled images can be accessed with dynamically uniform indices + VkBool32 shaderStorageBufferArrayDynamicIndexingarrays of storage buffers can be accessed with dynamically uniform indices + VkBool32 shaderStorageImageArrayDynamicIndexingarrays of storage images can be accessed with dynamically uniform indices + VkBool32 shaderClipDistanceclip distance in shaders + VkBool32 shaderCullDistancecull distance in shaders + VkBool32 shaderFloat6464-bit floats (doubles) in shaders + VkBool32 shaderInt6464-bit integers in shaders + VkBool32 shaderInt1616-bit integers in shaders + VkBool32 shaderResourceResidencyshader can use texture operations that return resource residency information (requires sparseNonResident support) + VkBool32 shaderResourceMinLodshader can use texture operations that specify minimum resource level of detail + VkBool32 sparseBindingSparse resources support: Resource memory can be managed at opaque page level rather than object level + VkBool32 sparseResidencyBufferSparse resources support: GPU can access partially resident buffers + VkBool32 sparseResidencyImage2DSparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images + VkBool32 sparseResidencyImage3DSparse resources support: GPU can access partially resident 3D images + VkBool32 sparseResidency2SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 2 samples + VkBool32 sparseResidency4SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 4 samples + VkBool32 sparseResidency8SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 8 samples + VkBool32 sparseResidency16SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 16 samples + VkBool32 sparseResidencyAliasedSparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) + VkBool32 variableMultisampleRatemultisample rate must be the same for all pipelines in a subpass + VkBool32 inheritedQueriesQueries may be inherited from primary to secondary command buffers - VkBool32 residencyStandard2DBlockShape - VkBool32 residencyStandard2DMultisampleBlockShape - VkBool32 residencyStandard3DBlockShape - VkBool32 residencyAlignedMipSize - VkBool32 residencyNonResidentStrict + VkBool32 residencyStandard2DBlockShapeSparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyStandard2DMultisampleBlockShapeSparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyStandard3DBlockShapeSparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format) + VkBool32 residencyAlignedMipSizeSparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail + VkBool32 residencyNonResidentStrictSparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded - - uint32_t maxImageDimension1D - uint32_t maxImageDimension2D - uint32_t maxImageDimension3D - uint32_t maxImageDimensionCube - uint32_t maxImageArrayLayers - uint32_t maxTexelBufferElements - uint32_t maxUniformBufferRange - uint32_t maxStorageBufferRange - uint32_t maxPushConstantsSize - - uint32_t maxMemoryAllocationCount - uint32_t maxSamplerAllocationCount - VkDeviceSize bufferImageGranularity - VkDeviceSize sparseAddressSpaceSize - - uint32_t maxBoundDescriptorSets - uint32_t maxPerStageDescriptorSamplers - uint32_t maxPerStageDescriptorUniformBuffers - uint32_t maxPerStageDescriptorStorageBuffers - uint32_t maxPerStageDescriptorSampledImages - uint32_t maxPerStageDescriptorStorageImages - uint32_t maxPerStageDescriptorInputAttachments - uint32_t maxPerStageResources - uint32_t maxDescriptorSetSamplers - uint32_t maxDescriptorSetUniformBuffers - uint32_t maxDescriptorSetUniformBuffersDynamic - uint32_t maxDescriptorSetStorageBuffers - uint32_t maxDescriptorSetStorageBuffersDynamic - uint32_t maxDescriptorSetSampledImages - uint32_t maxDescriptorSetStorageImages - uint32_t maxDescriptorSetInputAttachments - - uint32_t maxVertexInputAttributes - uint32_t maxVertexInputBindings - uint32_t maxVertexInputAttributeOffset - uint32_t maxVertexInputBindingStride - uint32_t maxVertexOutputComponents - - uint32_t maxTessellationGenerationLevel - uint32_t maxTessellationPatchSize - uint32_t maxTessellationControlPerVertexInputComponents - uint32_t maxTessellationControlPerVertexOutputComponents - uint32_t maxTessellationControlPerPatchOutputComponents - uint32_t maxTessellationControlTotalOutputComponents - - uint32_t maxTessellationEvaluationInputComponents - uint32_t maxTessellationEvaluationOutputComponents - - uint32_t maxGeometryShaderInvocations - uint32_t maxGeometryInputComponents - uint32_t maxGeometryOutputComponents - uint32_t maxGeometryOutputVertices - uint32_t maxGeometryTotalOutputComponents - - uint32_t maxFragmentInputComponents - uint32_t maxFragmentOutputAttachments - uint32_t maxFragmentDualSrcAttachments - uint32_t maxFragmentCombinedOutputResources - - uint32_t maxComputeSharedMemorySize - uint32_t maxComputeWorkGroupCount[3] - uint32_t maxComputeWorkGroupInvocations - uint32_t maxComputeWorkGroupSize[3] - uint32_t subPixelPrecisionBits - uint32_t subTexelPrecisionBits - uint32_t mipmapPrecisionBits - uint32_t maxDrawIndexedIndexValue - uint32_t maxDrawIndirectCount - float maxSamplerLodBias - float maxSamplerAnisotropy - uint32_t maxViewports - uint32_t maxViewportDimensions[2] - float viewportBoundsRange[2] - uint32_t viewportSubPixelBits - size_t minMemoryMapAlignment - VkDeviceSize minTexelBufferOffsetAlignment - VkDeviceSize minUniformBufferOffsetAlignment - VkDeviceSize minStorageBufferOffsetAlignment - int32_t minTexelOffset - uint32_t maxTexelOffset - int32_t minTexelGatherOffset - uint32_t maxTexelGatherOffset - float minInterpolationOffset - float maxInterpolationOffset - uint32_t subPixelInterpolationOffsetBits - uint32_t maxFramebufferWidth - uint32_t maxFramebufferHeight - uint32_t maxFramebufferLayers - VkSampleCountFlags framebufferColorSampleCounts - VkSampleCountFlags framebufferDepthSampleCounts - VkSampleCountFlags framebufferStencilSampleCounts - VkSampleCountFlags framebufferNoAttachmentsSampleCounts - uint32_t maxColorAttachments - VkSampleCountFlags sampledImageColorSampleCounts - VkSampleCountFlags sampledImageIntegerSampleCounts - VkSampleCountFlags sampledImageDepthSampleCounts - VkSampleCountFlags sampledImageStencilSampleCounts - VkSampleCountFlags storageImageSampleCounts - uint32_t maxSampleMaskWords - VkBool32 timestampComputeAndGraphics - float timestampPeriod - uint32_t maxClipDistances - uint32_t maxCullDistances - uint32_t maxCombinedClipAndCullDistances - uint32_t discreteQueuePriorities - float pointSizeRange[2] - float lineWidthRange[2] - float pointSizeGranularity - float lineWidthGranularity - VkBool32 strictLines - VkBool32 standardSampleLocations - VkDeviceSize optimalBufferCopyOffsetAlignment - VkDeviceSize optimalBufferCopyRowPitchAlignment - VkDeviceSize nonCoherentAtomSize + resource maximum sizes + uint32_t maxImageDimension1Dmax 1D image dimension + uint32_t maxImageDimension2Dmax 2D image dimension + uint32_t maxImageDimension3Dmax 3D image dimension + uint32_t maxImageDimensionCubemax cubemap image dimension + uint32_t maxImageArrayLayersmax layers for image arrays + uint32_t maxTexelBufferElementsmax texel buffer size (fstexels) + uint32_t maxUniformBufferRangemax uniform buffer range (bytes) + uint32_t maxStorageBufferRangemax storage buffer range (bytes) + uint32_t maxPushConstantsSizemax size of the push constants pool (bytes) + memory limits + uint32_t maxMemoryAllocationCountmax number of device memory allocations supported + uint32_t maxSamplerAllocationCountmax number of samplers that can be allocated on a device + VkDeviceSize bufferImageGranularityGranularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage + VkDeviceSize sparseAddressSpaceSizeTotal address space available for sparse allocations (bytes) + descriptor set limits + uint32_t maxBoundDescriptorSetsmax number of descriptors sets that can be bound to a pipeline + uint32_t maxPerStageDescriptorSamplersmax number of samplers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorUniformBuffersmax number of uniform buffers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorStorageBuffersmax number of storage buffers allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorSampledImagesmax number of sampled images allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorStorageImagesmax number of storage images allowed per-stage in a descriptor set + uint32_t maxPerStageDescriptorInputAttachmentsmax number of input attachments allowed per-stage in a descriptor set + uint32_t maxPerStageResourcesmax number of resources allowed by a single stage + uint32_t maxDescriptorSetSamplersmax number of samplers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetUniformBuffersmax number of uniform buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetUniformBuffersDynamicmax number of dynamic uniform buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageBuffersmax number of storage buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageBuffersDynamicmax number of dynamic storage buffers allowed in all stages in a descriptor set + uint32_t maxDescriptorSetSampledImagesmax number of sampled images allowed in all stages in a descriptor set + uint32_t maxDescriptorSetStorageImagesmax number of storage images allowed in all stages in a descriptor set + uint32_t maxDescriptorSetInputAttachmentsmax number of input attachments allowed in all stages in a descriptor set + vertex stage limits + uint32_t maxVertexInputAttributesmax number of vertex input attribute slots + uint32_t maxVertexInputBindingsmax number of vertex input binding slots + uint32_t maxVertexInputAttributeOffsetmax vertex input attribute offset added to vertex buffer offset + uint32_t maxVertexInputBindingStridemax vertex input binding stride + uint32_t maxVertexOutputComponentsmax number of output components written by vertex shader + tessellation control stage limits + uint32_t maxTessellationGenerationLevelmax level supported by tessellation primitive generator + uint32_t maxTessellationPatchSizemax patch size (vertices) + uint32_t maxTessellationControlPerVertexInputComponentsmax number of input components per-vertex in TCS + uint32_t maxTessellationControlPerVertexOutputComponentsmax number of output components per-vertex in TCS + uint32_t maxTessellationControlPerPatchOutputComponentsmax number of output components per-patch in TCS + uint32_t maxTessellationControlTotalOutputComponentsmax total number of per-vertex and per-patch output components in TCS + tessellation evaluation stage limits + uint32_t maxTessellationEvaluationInputComponentsmax number of input components per vertex in TES + uint32_t maxTessellationEvaluationOutputComponentsmax number of output components per vertex in TES + geometry stage limits + uint32_t maxGeometryShaderInvocationsmax invocation count supported in geometry shader + uint32_t maxGeometryInputComponentsmax number of input components read in geometry stage + uint32_t maxGeometryOutputComponentsmax number of output components written in geometry stage + uint32_t maxGeometryOutputVerticesmax number of vertices that can be emitted in geometry stage + uint32_t maxGeometryTotalOutputComponentsmax total number of components (all vertices) written in geometry stage + fragment stage limits + uint32_t maxFragmentInputComponentsmax number of input compontents read in fragment stage + uint32_t maxFragmentOutputAttachmentsmax number of output attachments written in fragment stage + uint32_t maxFragmentDualSrcAttachmentsmax number of output attachments written when using dual source blending + uint32_t maxFragmentCombinedOutputResourcesmax total number of storage buffers, storage images and output buffers + compute stage limits + uint32_t maxComputeSharedMemorySizemax total storage size of work group local storage (bytes) + uint32_t maxComputeWorkGroupCount[3]max num of compute work groups that may be dispatched by a single command (x,y,z) + uint32_t maxComputeWorkGroupInvocationsmax total compute invocations in a single local work group + uint32_t maxComputeWorkGroupSize[3]max local size of a compute work group (x,y,z) + uint32_t subPixelPrecisionBitsnumber bits of subpixel precision in screen x and y + uint32_t subTexelPrecisionBitsnumber bits of precision for selecting texel weights + uint32_t mipmapPrecisionBitsnumber bits of precision for selecting mipmap weights + uint32_t maxDrawIndexedIndexValuemax index value for indexed draw calls (for 32-bit indices) + uint32_t maxDrawIndirectCountmax draw count for indirect draw calls + float maxSamplerLodBiasmax absolute sampler level of detail bias + float maxSamplerAnisotropymax degree of sampler anisotropy + uint32_t maxViewportsmax number of active viewports + uint32_t maxViewportDimensions[2]max viewport dimensions (x,y) + float viewportBoundsRange[2]viewport bounds range (min,max) + uint32_t viewportSubPixelBitsnumber bits of subpixel precision for viewport + size_t minMemoryMapAlignmentmin required alignment of pointers returned by MapMemory (bytes) + VkDeviceSize minTexelBufferOffsetAlignmentmin required alignment for texel buffer offsets (bytes) + VkDeviceSize minUniformBufferOffsetAlignmentmin required alignment for uniform buffer sizes and offsets (bytes) + VkDeviceSize minStorageBufferOffsetAlignmentmin required alignment for storage buffer offsets (bytes) + int32_t minTexelOffsetmin texel offset for OpTextureSampleOffset + uint32_t maxTexelOffsetmax texel offset for OpTextureSampleOffset + int32_t minTexelGatherOffsetmin texel offset for OpTextureGatherOffset + uint32_t maxTexelGatherOffsetmax texel offset for OpTextureGatherOffset + float minInterpolationOffsetfurthest negative offset for interpolateAtOffset + float maxInterpolationOffsetfurthest positive offset for interpolateAtOffset + uint32_t subPixelInterpolationOffsetBitsnumber of subpixel bits for interpolateAtOffset + uint32_t maxFramebufferWidthmax width for a framebuffer + uint32_t maxFramebufferHeightmax height for a framebuffer + uint32_t maxFramebufferLayersmax layer count for a layered framebuffer + VkSampleCountFlags framebufferColorSampleCountssupported color sample counts for a framebuffer + VkSampleCountFlags framebufferDepthSampleCountssupported depth sample counts for a framebuffer + VkSampleCountFlags framebufferStencilSampleCountssupported stencil sample counts for a framebuffer + VkSampleCountFlags framebufferNoAttachmentsSampleCountssupported sample counts for a framebuffer with no attachments + uint32_t maxColorAttachmentsmax number of color attachments per subpass + VkSampleCountFlags sampledImageColorSampleCountssupported color sample counts for a non-integer sampled image + VkSampleCountFlags sampledImageIntegerSampleCountssupported sample counts for an integer image + VkSampleCountFlags sampledImageDepthSampleCountssupported depth sample counts for a sampled image + VkSampleCountFlags sampledImageStencilSampleCountssupported stencil sample counts for a sampled image + VkSampleCountFlags storageImageSampleCountssupported sample counts for a storage image + uint32_t maxSampleMaskWordsmax number of sample mask words + VkBool32 timestampComputeAndGraphicstimestamps on graphics and compute queues + float timestampPeriodnumber of nanoseconds it takes for timestamp query value to increment by 1 + uint32_t maxClipDistancesmax number of clip distances + uint32_t maxCullDistancesmax number of cull distances + uint32_t maxCombinedClipAndCullDistancesmax combined number of user clipping + uint32_t discreteQueuePrioritiesdistinct queue priorities available + float pointSizeRange[2]range (min,max) of supported point sizes + float lineWidthRange[2]range (min,max) of supported line widths + float pointSizeGranularitygranularity of supported point sizes + float lineWidthGranularitygranularity of supported line widths + VkBool32 strictLinesline rasterization follows preferred rules + VkBool32 standardSampleLocationssupports standard sample locations for all supported sample counts + VkDeviceSize optimalBufferCopyOffsetAlignmentoptimal offset of buffer copies + VkDeviceSize optimalBufferCopyRowPitchAlignmentoptimal pitch of buffer copies + VkDeviceSize nonCoherentAtomSizeminimum size and alignment for non-coherent host-mapped device memory access VkStructureType sType - const void* pNext - VkSemaphoreCreateFlags flags + const void* pNext + VkSemaphoreCreateFlags flagsSemaphore creation flags VkStructureType sType - const void* pNext - VkQueryPoolCreateFlags flags + const void* pNext + VkQueryPoolCreateFlags flags VkQueryType queryType uint32_t queryCount - VkQueryPipelineStatisticFlags pipelineStatistics + VkQueryPipelineStatisticFlags pipelineStatisticsOptional VkStructureType sType - const void* pNext - VkFramebufferCreateFlags flags + const void* pNext + VkFramebufferCreateFlags flags VkRenderPass renderPass uint32_t attachmentCount const VkImageView* pAttachments @@ -1421,7 +1424,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext uint32_t waitSemaphoreCount const VkSemaphore* pWaitSemaphores const VkPipelineStageFlags* pWaitDstStageMask @@ -1430,37 +1433,37 @@ private version is maintained in the 1.0 branch of the member gitlab server. uint32_t signalSemaphoreCount const VkSemaphore* pSignalSemaphores - + WSI extensions - VkDisplayKHR display - const char* displayName - VkExtent2D physicalDimensions - VkExtent2D physicalResolution - VkSurfaceTransformFlagsKHR supportedTransforms - VkBool32 planeReorderPossible - VkBool32 persistentContent + VkDisplayKHR displayHandle of the display object + const char* displayNameName of the display + VkExtent2D physicalDimensionsIn millimeters? + VkExtent2D physicalResolutionMax resolution for CRT? + VkSurfaceTransformFlagsKHR supportedTransformsone or more bits from VkSurfaceTransformFlagsKHR + VkBool32 planeReorderPossibleVK_TRUE if the overlay plane's z-order can be changed on this display. + VkBool32 persistentContentVK_TRUE if this is a "smart" display that supports self-refresh/internal buffering. - VkDisplayKHR currentDisplay - uint32_t currentStackIndex + VkDisplayKHR currentDisplayDisplay the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use. + uint32_t currentStackIndexCurrent z-order of the plane. - VkExtent2D visibleRegion - uint32_t refreshRate + VkExtent2D visibleRegionVisible scanout region. + uint32_t refreshRateNumber of times per second the display is updated. - VkDisplayModeKHR displayMode - VkDisplayModeParametersKHR parameters + VkDisplayModeKHR displayModeHandle of this display mode. + VkDisplayModeParametersKHR parametersThe parameters this mode uses. VkStructureType sType - const void* pNext - VkDisplayModeCreateFlagsKHR flags - VkDisplayModeParametersKHR parameters + const void* pNext + VkDisplayModeCreateFlagsKHR flags + VkDisplayModeParametersKHR parametersThe parameters this mode uses. - VkDisplayPlaneAlphaFlagsKHR supportedAlpha - VkOffset2D minSrcPosition + VkDisplayPlaneAlphaFlagsKHR supportedAlphaTypes of alpha blending supported, if any. + VkOffset2D minSrcPositionDoes the plane have any position and extent restrictions? VkOffset2D maxSrcPosition VkExtent2D minSrcExtent VkExtent2D maxSrcExtent @@ -1471,171 +1474,171 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkDisplaySurfaceCreateFlagsKHR flags - VkDisplayModeKHR displayMode - uint32_t planeIndex - uint32_t planeStackIndex - VkSurfaceTransformFlagBitsKHR transform - float globalAlpha - VkDisplayPlaneAlphaFlagBitsKHR alphaMode - VkExtent2D imageExtent - - + const void* pNext + VkDisplaySurfaceCreateFlagsKHR flags + VkDisplayModeKHR displayModeThe mode to use when displaying this surface + uint32_t planeIndexThe plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount. + uint32_t planeStackIndexThe z-order of the plane. + VkSurfaceTransformFlagBitsKHR transformTransform to apply to the images as part of the scanout operation + float globalAlphaGlobal alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR + VkDisplayPlaneAlphaFlagBitsKHR alphaModeWhat type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha. + VkExtent2D imageExtentsize of the images to use with this surface + + VkStructureType sType - const void* pNext - VkRect2D srcRect - VkRect2D dstRect - VkBool32 persistent + const void* pNext + VkRect2D srcRectRectangle within the presentable image to read pixel data from when presenting to the display. + VkRect2D dstRectRectangle within the current display mode's visible region to display srcRectangle in. + VkBool32 persistentFor smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE. - uint32_t minImageCount - uint32_t maxImageCount - VkExtent2D currentExtent - VkExtent2D minImageExtent - VkExtent2D maxImageExtent - uint32_t maxImageArrayLayers - VkSurfaceTransformFlagsKHR supportedTransforms - VkSurfaceTransformFlagBitsKHR currentTransform - VkCompositeAlphaFlagsKHR supportedCompositeAlpha - VkImageUsageFlags supportedUsageFlags + uint32_t minImageCountSupported minimum number of images for the surface + uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited + VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined + VkExtent2D minImageExtentSupported minimum image width and height for the surface + VkExtent2D maxImageExtentSupported maximum image width and height for the surface + uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface + VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported + VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation + VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported + VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface VkStructureType sType - const void* pNext - VkAndroidSurfaceCreateFlagsKHR flags + const void* pNext + VkAndroidSurfaceCreateFlagsKHR flags ANativeWindow* window VkStructureType sType - const void* pNext - VkMirSurfaceCreateFlagsKHR flags + const void* pNext + VkMirSurfaceCreateFlagsKHR flags MirConnection* connection MirSurface* mirSurface VkStructureType sType - const void* pNext - VkViSurfaceCreateFlagsNN flags + const void* pNext + VkViSurfaceCreateFlagsNN flags void* window VkStructureType sType - const void* pNext - VkWaylandSurfaceCreateFlagsKHR flags + const void* pNext + VkWaylandSurfaceCreateFlagsKHR flags struct wl_display* display struct wl_surface* surface VkStructureType sType - const void* pNext - VkWin32SurfaceCreateFlagsKHR flags + const void* pNext + VkWin32SurfaceCreateFlagsKHR flags HINSTANCE hinstance HWND hwnd VkStructureType sType - const void* pNext - VkXlibSurfaceCreateFlagsKHR flags + const void* pNext + VkXlibSurfaceCreateFlagsKHR flags Display* dpy Window window VkStructureType sType - const void* pNext - VkXcbSurfaceCreateFlagsKHR flags + const void* pNext + VkXcbSurfaceCreateFlagsKHR flags xcb_connection_t* connection xcb_window_t window - VkFormat format - VkColorSpaceKHR colorSpace + VkFormat formatSupported pair of rendering format + VkColorSpaceKHR colorSpaceand color space for the surface VkStructureType sType - const void* pNext - VkSwapchainCreateFlagsKHR flags - VkSurfaceKHR surface - uint32_t minImageCount - VkFormat imageFormat - VkColorSpaceKHR imageColorSpace - VkExtent2D imageExtent - uint32_t imageArrayLayers - VkImageUsageFlags imageUsage - VkSharingMode imageSharingMode - uint32_t queueFamilyIndexCount - const uint32_t* pQueueFamilyIndices - VkSurfaceTransformFlagBitsKHR preTransform - VkCompositeAlphaFlagBitsKHR compositeAlpha - VkPresentModeKHR presentMode - VkBool32 clipped - VkSwapchainKHR oldSwapchain + const void* pNext + VkSwapchainCreateFlagsKHR flags + VkSurfaceKHR surfaceThe swapchain's target surface + uint32_t minImageCountMinimum number of presentation images the application needs + VkFormat imageFormatFormat of the presentation images + VkColorSpaceKHR imageColorSpaceColorspace of the presentation images + VkExtent2D imageExtentDimensions of the presentation images + uint32_t imageArrayLayersDetermines the number of views for multiview/stereo presentation + VkImageUsageFlags imageUsageBits indicating how the presentation images will be used + VkSharingMode imageSharingModeSharing mode used for the presentation images + uint32_t queueFamilyIndexCountNumber of queue families having access to the images in case of concurrent sharing mode + const uint32_t* pQueueFamilyIndicesArray of queue family indices having access to the images in case of concurrent sharing mode + VkSurfaceTransformFlagBitsKHR preTransformThe transform, relative to the device's natural orientation, applied to the image content prior to presentation + VkCompositeAlphaFlagBitsKHR compositeAlphaThe alpha blending mode used when compositing this surface with other surfaces in the window system + VkPresentModeKHR presentModeWhich presentation mode to use for presents on this swap chain + VkBool32 clippedSpecifies whether presentable images may be affected by window clip regions + VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any VkStructureType sType - const void* pNext - uint32_t waitSemaphoreCount - const VkSemaphore* pWaitSemaphores - uint32_t swapchainCount - const VkSwapchainKHR* pSwapchains - const uint32_t* pImageIndices - VkResult* pResults - - + const void* pNext + uint32_t waitSemaphoreCountNumber of semaphores to wait for before presenting + const VkSemaphore* pWaitSemaphoresSemaphores to wait for before presenting + uint32_t swapchainCountNumber of swapchains to present in this call + const VkSwapchainKHR* pSwapchainsSwapchains to present an image from + const uint32_t* pImageIndicesIndices of which presentable images to present + VkResult* pResultsOptional (i.e. if non-NULL) VkResult for each swapchain + + VkStructureType sType - const void* pNext - VkDebugReportFlagsEXT flags - PFN_vkDebugReportCallbackEXT pfnCallback - void* pUserData + const void* pNext + VkDebugReportFlagsEXT flagsIndicates which events call this callback + PFN_vkDebugReportCallbackEXT pfnCallbackFunction pointer of a callback function + void* pUserDataUser data provided to callback function - VkStructureType sType - const void* pNext - uint32_t disabledValidationCheckCount - VkValidationCheckEXT* pDisabledValidationChecks + VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT + const void* pNext + uint32_t disabledValidationCheckCountNumber of validation checks to disable + VkValidationCheckEXT* pDisabledValidationChecksValidation checks to disable - + VkStructureType sType - const void* pNext - VkRasterizationOrderAMD rasterizationOrder + const void* pNext + VkRasterizationOrderAMD rasterizationOrderRasterization order to use for the pipeline VkStructureType sType - const void* pNext - VkDebugReportObjectTypeEXT objectType - uint64_t object - const char* pObjectName + const void* pNext + VkDebugReportObjectTypeEXT objectTypeThe type of the object + uint64_t objectThe handle of the object, cast to uint64_t + const char* pObjectNameName to apply to the object VkStructureType sType - const void* pNext - VkDebugReportObjectTypeEXT objectType - uint64_t object - uint64_t tagName - size_t tagSize - const void* pTag + const void* pNext + VkDebugReportObjectTypeEXT objectTypeThe type of the object + uint64_t objectThe handle of the object, cast to uint64_t + uint64_t tagNameThe name of the tag to set on the object + size_t tagSizeThe length in bytes of the tag data + const void* pTagTag data to attach to the object VkStructureType sType - const void* pNext - const char* pMarkerName - float color[4] + const void* pNext + const char* pMarkerNameName of the debug marker + float color[4]Optional color for debug marker - + VkStructureType sType - const void* pNext - VkBool32 dedicatedAllocation + const void* pNext + VkBool32 dedicatedAllocationWhether this image uses a dedicated allocation - + VkStructureType sType - const void* pNext - VkBool32 dedicatedAllocation + const void* pNext + VkBool32 dedicatedAllocationWhether this buffer uses a dedicated allocation - + VkStructureType sType - const void* pNext - VkImage image - VkBuffer buffer + const void* pNext + VkImage imageImage that this allocation will be bound to + VkBuffer bufferBuffer that this allocation will be bound to VkImageFormatProperties imageFormatProperties @@ -1665,7 +1668,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. const SECURITY_ATTRIBUTES* pAttributes DWORD dwAccess - + VkStructureType sType const void* pNext uint32_t acquireCount @@ -1692,14 +1695,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkIndirectCommandsTokenTypeNVX tokenType - VkBuffer buffer - VkDeviceSize offset + VkBuffer bufferbuffer containing tableEntries and additional data for indirectCommands + VkDeviceSize offsetoffset from the base address of the buffer VkIndirectCommandsTokenTypeNVX tokenType - uint32_t bindingUnit - uint32_t dynamicCount - uint32_t divisor + uint32_t bindingUnitBinding unit for vertex attribute / descriptor set, offset for pushconstants + uint32_t dynamicCountNumber of variable dynamic values for descriptor set / push constants + uint32_t divisorRate the which the array is advanced per element (must be power of 2, minimum 1) VkStructureType sType @@ -1776,29 +1779,29 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkPipelineLayout pipelineLayout VkShaderStageFlags stageFlags - + VkStructureType sType - void* pNext + void* pNext VkPhysicalDeviceFeatures features VkStructureType sType - void* pNext + void* pNext VkPhysicalDeviceProperties properties VkStructureType sType - void* pNext + void* pNext VkFormatProperties formatProperties VkStructureType sType - void* pNext + void* pNext VkImageFormatProperties imageFormatProperties VkStructureType sType - const void* pNext + const void* pNext VkFormat format VkImageType type VkImageTiling tiling @@ -1807,51 +1810,51 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - void* pNext + void* pNext VkQueueFamilyProperties queueFamilyProperties VkStructureType sType - void* pNext + void* pNext VkPhysicalDeviceMemoryProperties memoryProperties VkStructureType sType - void* pNext + void* pNext VkSparseImageFormatProperties properties VkStructureType sType - const void* pNext + const void* pNext VkFormat format VkImageType type VkSampleCountFlagBits samples VkImageUsageFlags usage VkImageTiling tiling - + VkStructureType sType - void* pNext + void* pNext uint32_t maxPushDescriptors - + VkStructureType sType - const void* pNext - uint32_t swapchainCount - const VkPresentRegionKHR* pRegions + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentRegionKHR* pRegionsThe regions that have changed - uint32_t rectangleCount - const VkRectLayerKHR* pRectangles + uint32_t rectangleCountNumber of rectangles in pRectangles + const VkRectLayerKHR* pRectanglesArray of rectangles that have changed in a swapchain's image(s) - VkOffset2D offset - VkExtent2D extent - uint32_t layer + VkOffset2D offsetupper-left corner of a rectangle that has not changed, in pixels of a presentation images + VkExtent2D extentDimensions of a rectangle that has not changed, in pixels of a presentation images + uint32_t layerLayer of a swapchain's image(s), for stereoscopic-3D images - + VkStructureType sType - void* pNext + void* pNext VkBool32 variablePointersStorageBuffer VkBool32 variablePointers @@ -1860,31 +1863,31 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes - + VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagBitsKHR handleType - + VkStructureType sType - void* pNext + void* pNext VkExternalMemoryPropertiesKHR externalMemoryProperties VkStructureType sType - const void* pNext + const void* pNext VkBufferCreateFlags flags VkBufferUsageFlags usage VkExternalMemoryHandleTypeFlagBitsKHR handleType VkStructureType sType - void* pNext + void* pNext VkExternalMemoryPropertiesKHR externalMemoryProperties - + VkStructureType sType - void* pNext + void* pNext uint8_t deviceUUID[VK_UUID_SIZE] uint8_t driverUUID[VK_UUID_SIZE] uint8_t deviceLUID[VK_LUID_SIZE_KHR] @@ -1893,64 +1896,64 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagsKHR handleTypes VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagsKHR handleTypes VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagsKHR handleTypes VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagBitsKHR handleType HANDLE handle LPCWSTR name VkStructureType sType - const void* pNext + const void* pNext const SECURITY_ATTRIBUTES* pAttributes DWORD dwAccess LPCWSTR name VkStructureType sType - void* pNext + void* pNext uint32_t memoryTypeBits VkStructureType sType - const void* pNext + const void* pNext VkDeviceMemory memory VkExternalMemoryHandleTypeFlagBitsKHR handleType VkStructureType sType - const void* pNext + const void* pNext VkExternalMemoryHandleTypeFlagBitsKHR handleType int fd VkStructureType sType - void* pNext + void* pNext uint32_t memoryTypeBits VkStructureType sType - const void* pNext + const void* pNext VkDeviceMemory memory VkExternalMemoryHandleTypeFlagBitsKHR handleType - + VkStructureType sType - const void* pNext + const void* pNext uint32_t acquireCount const VkDeviceMemory* pAcquireSyncs const uint64_t* pAcquireKeys @@ -1961,40 +1964,40 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkExternalSemaphoreHandleTypeFlagBitsKHR handleType VkStructureType sType - void* pNext + void* pNext VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures - + VkStructureType sType - const void* pNext + const void* pNext VkExternalSemaphoreHandleTypeFlagsKHR handleTypes VkStructureType sType - const void* pNext + const void* pNext VkSemaphore semaphore VkSemaphoreImportFlagsKHR flags VkExternalSemaphoreHandleTypeFlagBitsKHR handleType HANDLE handle LPCWSTR name - + VkStructureType sType - const void* pNext + const void* pNext const SECURITY_ATTRIBUTES* pAttributes DWORD dwAccess LPCWSTR name - + VkStructureType sType - const void* pNext + const void* pNext uint32_t waitSemaphoreValuesCount const uint64_t* pWaitSemaphoreValues uint32_t signalSemaphoreValuesCount @@ -2002,13 +2005,13 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkSemaphore semaphore VkExternalSemaphoreHandleTypeFlagBitsKHR handleType VkStructureType sType - const void* pNext + const void* pNext VkSemaphore semaphore VkSemaphoreImportFlagsKHR flags VkExternalSemaphoreHandleTypeFlagBitsKHR handleType @@ -2016,52 +2019,52 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkSemaphore semaphore VkExternalSemaphoreHandleTypeFlagBitsKHR handleType VkStructureType sType - const void* pNext + const void* pNext VkExternalFenceHandleTypeFlagBitsKHR handleType VkStructureType sType - void* pNext + void* pNext VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes VkExternalFenceFeatureFlagsKHR externalFenceFeatures - + VkStructureType sType - const void* pNext + const void* pNext VkExternalFenceHandleTypeFlagsKHR handleTypes VkStructureType sType - const void* pNext + const void* pNext VkFence fence VkFenceImportFlagsKHR flags VkExternalFenceHandleTypeFlagBitsKHR handleType HANDLE handle LPCWSTR name - + VkStructureType sType - const void* pNext + const void* pNext const SECURITY_ATTRIBUTES* pAttributes DWORD dwAccess LPCWSTR name VkStructureType sType - const void* pNext + const void* pNext VkFence fence VkExternalFenceHandleTypeFlagBitsKHR handleType VkStructureType sType - const void* pNext + const void* pNext VkFence fence VkFenceImportFlagsKHR flags VkExternalFenceHandleTypeFlagBitsKHR handleType @@ -2069,26 +2072,26 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkFence fence VkExternalFenceHandleTypeFlagBitsKHR handleType - + VkStructureType sType - void* pNext - VkBool32 multiview - VkBool32 multiviewGeometryShader - VkBool32 multiviewTessellationShader + void* pNext + VkBool32 multiviewMultiple views in a renderpass + VkBool32 multiviewGeometryShaderMultiple views in a renderpass w/ geometry shader + VkBool32 multiviewTessellationShaderMultiple views in a renderpass w/ tessellation shader - + VkStructureType sType - void* pNext - uint32_t maxMultiviewViewCount - uint32_t maxMultiviewInstanceIndex + void* pNext + uint32_t maxMultiviewViewCountmax number of views in a subpass + uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass VkStructureType sType - const void* pNext + const void* pNext uint32_t subpassCount const uint32_t* pViewMasks uint32_t dependencyCount @@ -2099,16 +2102,16 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType void* pNext - uint32_t minImageCount - uint32_t maxImageCount - VkExtent2D currentExtent - VkExtent2D minImageExtent - VkExtent2D maxImageExtent - uint32_t maxImageArrayLayers - VkSurfaceTransformFlagsKHR supportedTransforms - VkSurfaceTransformFlagBitsKHR currentTransform - VkCompositeAlphaFlagsKHR supportedCompositeAlpha - VkImageUsageFlags supportedUsageFlags + uint32_t minImageCountSupported minimum number of images for the surface + uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited + VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined + VkExtent2D minImageExtentSupported minimum image width and height for the surface + VkExtent2D maxImageExtentSupported maximum image width and height for the surface + uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface + VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported + VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation + VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported + VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface VkSurfaceCounterFlagsEXT supportedSurfaceCounters @@ -2126,27 +2129,27 @@ private version is maintained in the 1.0 branch of the member gitlab server. const void* pNext VkDisplayEventTypeEXT displayEvent - + VkStructureType sType const void* pNext VkSurfaceCounterFlagsEXT surfaceCounters VkStructureType sType - void* pNext + void* pNext uint32_t physicalDeviceCount VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX] VkBool32 subsetAllocation - + VkStructureType sType - const void* pNext + const void* pNext VkMemoryAllocateFlagsKHX flags uint32_t deviceMask VkStructureType sType - const void* pNext + const void* pNext VkBuffer buffer VkDeviceMemory memory VkDeviceSize memoryOffset @@ -2155,7 +2158,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext + const void* pNext VkImage image VkDeviceMemory memory VkDeviceSize memoryOffset @@ -2164,21 +2167,21 @@ private version is maintained in the 1.0 branch of the member gitlab server. uint32_t SFRRectCount const VkRect2D* pSFRRects - + VkStructureType sType - const void* pNext + const void* pNext uint32_t deviceMask uint32_t deviceRenderAreaCount const VkRect2D* pDeviceRenderAreas - + VkStructureType sType - const void* pNext + const void* pNext uint32_t deviceMask - + VkStructureType sType - const void* pNext + const void* pNext uint32_t waitSemaphoreCount const uint32_t* pWaitSemaphoreDeviceIndices uint32_t commandBufferCount @@ -2186,135 +2189,134 @@ private version is maintained in the 1.0 branch of the member gitlab server. uint32_t signalSemaphoreCount const uint32_t* pSignalSemaphoreDeviceIndices - + VkStructureType sType - const void* pNext + const void* pNext uint32_t resourceDeviceIndex uint32_t memoryDeviceIndex VkStructureType sType - const void* pNext + const void* pNext uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX] VkDeviceGroupPresentModeFlagsKHX modes - + VkStructureType sType - const void* pNext + const void* pNext VkSwapchainKHR swapchain - + VkStructureType sType - const void* pNext + const void* pNext VkSwapchainKHR swapchain uint32_t imageIndex VkStructureType sType - const void* pNext + const void* pNext VkSwapchainKHR swapchain uint64_t timeout VkSemaphore semaphore VkFence fence uint32_t deviceMask - + VkStructureType sType - const void* pNext + const void* pNext uint32_t swapchainCount const uint32_t* pDeviceMasks VkDeviceGroupPresentModeFlagBitsKHX mode - + VkStructureType sType - const void* pNext + const void* pNext uint32_t physicalDeviceCount const VkPhysicalDevice* pPhysicalDevices - + VkStructureType sType - const void* pNext + const void* pNext VkDeviceGroupPresentModeFlagsKHX modes - uint32_t dstBinding - uint32_t dstArrayElement - uint32_t descriptorCount - VkDescriptorType descriptorType - size_t offset - size_t stride + uint32_t dstBindingBinding within the destination descriptor set to write + uint32_t dstArrayElementArray element within the destination binding to write + uint32_t descriptorCountNumber of descriptors to write + VkDescriptorType descriptorTypeDescriptor type to write + size_t offsetOffset into pData where the descriptors to update are stored + size_t strideStride between two descriptors in pData when writing more than one descriptor VkStructureType sType - void* pNext - VkDescriptorUpdateTemplateCreateFlagsKHR flags - uint32_t descriptorUpdateEntryCount - const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries + void* pNext + VkDescriptorUpdateTemplateCreateFlagsKHR flags + uint32_t descriptorUpdateEntryCountNumber of descriptor update entries to use for the update template + const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntriesDescriptor update entries for the template VkDescriptorUpdateTemplateTypeKHR templateType VkDescriptorSetLayout descriptorSetLayout VkPipelineBindPoint pipelineBindPoint - VkPipelineLayoutpipelineLayout + VkPipelineLayoutpipelineLayoutIf used for push descriptors, this is the only allowed layout uint32_t set - - + float x float y - + Display primary in chromaticity coordinates VkStructureType sType const void* pNext - - VkXYColorEXT displayPrimaryRed - VkXYColorEXT displayPrimaryGreen - VkXYColorEXT displayPrimaryBlue - VkXYColorEXT whitePoint - float maxLuminance - float minLuminance - - float maxContentLightLevel + From SMPTE 2086 + VkXYColorEXT displayPrimaryRedDisplay primary's Red + VkXYColorEXT displayPrimaryGreenDisplay primary's Green + VkXYColorEXT displayPrimaryBlueDisplay primary's Blue + VkXYColorEXT whitePointDisplay primary's Blue + float maxLuminanceDisplay maximum luminance + float minLuminanceDisplay minimum luminance + From CTA 861.3 + float maxContentLightLevelContent maximum luminance float maxFrameAverageLightLevel - uint64_t refreshDuration + uint64_t refreshDurationNumber of nanoseconds from the start of one refresh cycle to the next - uint32_t presentID - uint64_t desiredPresentTime - uint64_t actualPresentTime - uint64_t earliestPresentTime - uint64_t presentMargin + uint32_t presentIDApplication-provided identifier, previously given to vkQueuePresentKHR + uint64_t desiredPresentTimeEarliest time an image should have been presented, previously given to vkQueuePresentKHR + uint64_t actualPresentTimeTime the image was actually displayed + uint64_t earliestPresentTimeEarliest time the image could have been displayed + uint64_t presentMarginHow early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime - + VkStructureType sType - const void* pNext - uint32_t swapchainCount - const VkPresentTimeGOOGLE* pTimes + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentTimeGOOGLE* pTimesThe earliest times to present images - uint32_t presentID - uint64_t desiredPresentTime + uint32_t presentIDApplication-provided identifier + uint64_t desiredPresentTimeEarliest time an image should be presented VkStructureType sType - const void* pNext - VkIOSSurfaceCreateFlagsMVK flags + const void* pNext + VkIOSSurfaceCreateFlagsMVK flags const void* pView VkStructureType sType - const void* pNext - VkMacOSSurfaceCreateFlagsMVK flags + const void* pNext + VkMacOSSurfaceCreateFlagsMVK flags const void* pView float xcoeff float ycoeff - + VkStructureType sType - const void* pNext + const void* pNext VkBool32 viewportWScalingEnable uint32_t viewportCount const VkViewportWScalingNV* pViewportWScalings @@ -2327,27 +2329,27 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - const void* pNext - VkPipelineViewportSwizzleStateCreateFlagsNV flags + const void* pNext + VkPipelineViewportSwizzleStateCreateFlagsNV flags uint32_t viewportCount const VkViewportSwizzleNV* pViewportSwizzles - + VkStructureType sType - void* pNext - uint32_t maxDiscardRectangles + void* pNext + uint32_t maxDiscardRectanglesmax number of active discard rectangles VkStructureType sType - const void* pNext - VkPipelineDiscardRectangleStateCreateFlagsEXT flags + const void* pNext + VkPipelineDiscardRectangleStateCreateFlagsEXT flags VkDiscardRectangleModeEXT discardRectangleMode uint32_t discardRectangleCount const VkRect2D* pDiscardRectangles - + VkStructureType sType - void* pNext + void* pNext VkBool32 perViewPositionAllComponents @@ -2357,7 +2359,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkStructureType sType - void* pNext + void* pNext VkSurfaceCapabilitiesKHR surfaceCapabilities @@ -2365,87 +2367,87 @@ private version is maintained in the 1.0 branch of the member gitlab server. void* pNext VkSurfaceFormatKHR surfaceFormat - + VkStructureType sType - void* pNext - VkImageUsageFlags sharedPresentSupportedUsageFlags + void* pNext + VkImageUsageFlags sharedPresentSupportedUsageFlagsSupported image usage flags if swapchain created using a shared present mode - + VkStructureType sType - void* pNext - VkBool32 storageBuffer16BitAccess - VkBool32 uniformAndStorageBuffer16BitAccess - VkBool32 storagePushConstant16 - VkBool32 storageInputOutput16 + void* pNext + VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock + VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block + VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant + VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs VkStructureType sType - const void* pNext + const void* pNext VkBuffer buffer VkStructureType sType - const void* pNext + const void* pNext VkImage image VkStructureType sType - const void* pNext + const void* pNext VkImage image VkStructureType sType - void* pNext + void* pNext VkMemoryRequirements memoryRequirements VkStructureType sType - void* pNext + void* pNext VkSparseImageMemoryRequirements memoryRequirements - + VkStructureType sType - void* pNext + void* pNext VkBool32 prefersDedicatedAllocation VkBool32 requiresDedicatedAllocation - + VkStructureType sType - const void* pNext - VkImage image - VkBuffer buffer + const void* pNext + VkImage imageImage that this allocation will be bound to + VkBuffer bufferBuffer that this allocation will be bound to - + VkStructureType sType - void* pNext + void* pNext VkBool32 supportsTextureGatherLODBiasAMD - + VkStructureType sType - const void* pNext - VkPipelineCoverageToColorStateCreateFlagsNV flags + const void* pNext + VkPipelineCoverageToColorStateCreateFlagsNV flags VkBool32 coverageToColorEnable uint32_t coverageToColorLocation - + VkStructureType sType - void* pNext + void* pNext VkBool32 filterMinmaxSingleComponentFormats VkBool32 filterMinmaxImageComponentMapping - + VkStructureType sType - const void* pNext + const void* pNext VkSamplerReductionModeEXT reductionMode - + VkStructureType sType - void* pNext + void* pNext VkBool32 advancedBlendCoherentOperations - + VkStructureType sType - void* pNext + void* pNext uint32_t advancedBlendMaxColorAttachments VkBool32 advancedBlendIndependentBlend VkBool32 advancedBlendNonPremultipliedSrcColor @@ -2453,17 +2455,17 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkBool32 advancedBlendCorrelatedOverlap VkBool32 advancedBlendAllOperations - + VkStructureType sType - const void* pNext + const void* pNext VkBool32 srcPremultiplied VkBool32 dstPremultiplied VkBlendOverlapEXT blendOverlap - + VkStructureType sType - const void* pNext - VkPipelineCoverageModulationStateCreateFlagsNV flags + const void* pNext + VkPipelineCoverageModulationStateCreateFlagsNV flags VkCoverageModulationModeNV coverageModulationMode VkBool32 coverageModulationTableEnable uint32_t coverageModulationTableCount @@ -2471,17 +2473,16 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + Vulkan enumerant (token) definitions - - + - + @@ -2495,12 +2496,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + + Unlike OpenGL, most tokens in Vulkan are actual typed enumerants in + their own numeric namespaces. The "name" attribute is the C enum + type name, and is pulled in from a type tag definition above + (slightly clunky, but retains the type / enum distinction). "type" + attributes of "enum" or "bitmask" indicate that these values should + be generated inside an appropriate definition. + @@ -2620,7 +2623,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + + value="4" reserved for VK_KHR_sampler_mirror_clamp_to_edge + enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; do not + alias! + @@ -2959,22 +2966,22 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + + - - + + Return codes (positive values) - + Error codes (negative values) @@ -3033,7 +3040,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + Flags @@ -3234,7 +3241,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + + WSI Extensions @@ -3310,8 +3318,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + + @@ -3327,27 +3335,27 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + Placeholder for validation enums to be defined for VK_EXT_Validation_flags extension - - - - + + + + - - - - - - - - + + + + + + + + @@ -3463,8 +3471,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + VkResult vkCreateInstance const VkInstanceCreateInfo* pCreateInfo @@ -4641,17 +4648,17 @@ private version is maintained in the 1.0 branch of the member gitlab server. VkResult vkDebugMarkerSetObjectNameEXT VkDevice device - VkDebugMarkerObjectNameInfoEXT* pNameInfo + const VkDebugMarkerObjectNameInfoEXT* pNameInfo VkResult vkDebugMarkerSetObjectTagEXT VkDevice device - VkDebugMarkerObjectTagInfoEXT* pTagInfo + const VkDebugMarkerObjectTagInfoEXT* pTagInfo void vkCmdDebugMarkerBeginEXT VkCommandBuffer commandBuffer - VkDebugMarkerMarkerInfoEXT* pMarkerInfo + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo void vkCmdDebugMarkerEndEXT @@ -4660,7 +4667,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. void vkCmdDebugMarkerInsertEXT VkCommandBuffer commandBuffer - VkDebugMarkerMarkerInfoEXT* pMarkerInfo + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV @@ -5049,8 +5056,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. void vkSetHdrMetadataEXT VkDevice device - uint32_t swapchainCount - const VkSwapchainKHR* pSwapchains + uint32_t swapchainCount + const VkSwapchainKHR* pSwapchains const VkHdrMetadataEXT* pMetadata @@ -5133,8 +5140,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + @@ -5348,11 +5354,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + @@ -5363,9 +5365,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - - + @@ -6419,7 +6419,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. - + @@ -6434,6 +6434,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. + @@ -6739,8 +6740,8 @@ private version is maintained in the 1.0 branch of the member gitlab server. - - + + @@ -6908,5 +6909,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. + + + + + + -- cgit v1.2.3