From fcac02e405661de311b5ceebbd6d3e2c78bf8aea Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 21 Aug 2020 16:04:42 -0400 Subject: Vulkan update/NVAPI support (#1511) * First pass at incorporating nvapi into test harness. * D3d12 Atomic Float Add via NVAPI working * Dx12 atomic float appears to work. * Atomic float add on Dx12. * Added atomic64 feature addition to vk. Fix correct output for atomic-float-byte-address.slang * Disable atomic float failing tests. * Upgraded VK headers. * Detect atomic float availability on VK. * Try to get test working for in64 atomic. * Made HLSL prelude controlled via the render-test requirements. * Added -enable-nvapi to premake. * Fix D3D12Renderer when NVAPI is not available. * Small improvements to VKRenderer. * Improve atomic documentation in target-compatibility.md. --- external/vulkan/registry/validusage.json | 28758 ++++++++++++++++++----------- 1 file changed, 17973 insertions(+), 10785 deletions(-) (limited to 'external/vulkan/registry/validusage.json') diff --git a/external/vulkan/registry/validusage.json b/external/vulkan/registry/validusage.json index e90c0f028..880b6efda 100644 --- a/external/vulkan/registry/validusage.json +++ b/external/vulkan/registry/validusage.json @@ -1,16 +1,16 @@ { "version info": { "schema version": 2, - "api version": "1.1.103", - "comment": "from git branch: github-master commit: 4ad4fd17161efd9bfd1125c0c9d17db6fb276216", - "date": "2019-03-11 09:10:44Z" + "api version": "1.2.151", + "comment": "from git branch: github-master commit: 68bedacc6014941d5c04d168ef62df82031e0ddc", + "date": "2020-08-17 01:41:53Z" }, "validation": { "vkGetInstanceProcAddr": { "core": [ { "vuid": "VUID-vkGetInstanceProcAddr-instance-parameter", - "text": " If instance is not NULL, instance must be a valid VkInstance handle" + "text": " If instance is not NULL, instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkGetInstanceProcAddr-pName-parameter", @@ -22,7 +22,7 @@ "core": [ { "vuid": "VUID-vkGetDeviceProcAddr-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetDeviceProcAddr-pName-parameter", @@ -42,19 +42,19 @@ "core": [ { "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388", - "text": " All required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list." + "text": " All required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list" }, { "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure" }, { "vuid": "VUID-vkCreateInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateInstance-pInstance-parameter", - "text": " pInstance must be a valid pointer to a VkInstance handle" + "text": " pInstance must be a valid pointer to a VkInstance handle" } ] }, @@ -70,7 +70,7 @@ }, { "vuid": "VUID-VkInstanceCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT" }, { "vuid": "VUID-VkInstanceCreateInfo-flags-zerobitmask", @@ -78,7 +78,7 @@ }, { "vuid": "VUID-VkInstanceCreateInfo-pApplicationInfo-parameter", - "text": " If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure" + "text": " If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure" }, { "vuid": "VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter", @@ -108,6 +108,14 @@ }, "VkValidationFeaturesEXT": { "(VK_EXT_validation_features)": [ + { + "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967", + "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + }, + { + "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968", + "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must not contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" + }, { "vuid": "VUID-VkValidationFeaturesEXT-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" @@ -124,6 +132,10 @@ }, "VkApplicationInfo": { "core": [ + { + "vuid": "VUID-VkApplicationInfo-apiVersion-04010", + "text": " If apiVersion is not 0, then it must be greater or equal to VK_API_VERSION_1_0" + }, { "vuid": "VUID-VkApplicationInfo-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO" @@ -158,11 +170,11 @@ }, { "vuid": "VUID-vkDestroyInstance-instance-parameter", - "text": " If instance is not NULL, instance must be a valid VkInstance handle" + "text": " If instance is not NULL, instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkDestroyInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" } ] }, @@ -170,7 +182,7 @@ "core": [ { "vuid": "VUID-vkEnumeratePhysicalDevices-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter", @@ -178,7 +190,7 @@ }, { "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter", - "text": " If the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles" + "text": " If the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles" } ] }, @@ -186,11 +198,11 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceProperties-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties structure" + "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties structure" } ] }, @@ -198,11 +210,11 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure" + "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure" } ] }, @@ -214,11 +226,27 @@ }, { "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext", - "text": " 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, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceDepthStencilResolvePropertiesKHR, VkPhysicalDeviceDescriptorIndexingPropertiesEXT, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDriverPropertiesKHR, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsPropertiesKHR, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceInlineUniformBlockPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, or VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" + "text": " 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, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceInlineUniformBlockPropertiesEXT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePointClippingProperties, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingPropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlPropertiesEXT, VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, or VkPhysicalDeviceVulkan12Properties" }, { "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkPhysicalDeviceVulkan11Properties": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [ + { + "vuid": "VUID-VkPhysicalDeviceVulkan11Properties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES" + } + ] + }, + "VkPhysicalDeviceVulkan12Properties": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [ + { + "vuid": "VUID-VkPhysicalDeviceVulkan12Properties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES" } ] }, @@ -230,11 +258,11 @@ } ] }, - "VkPhysicalDeviceDriverPropertiesKHR": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_KHR_driver_properties)": [ + "VkPhysicalDeviceDriverProperties": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2,VK_KHR_driver_properties)": [ { - "vuid": "VUID-VkPhysicalDeviceDriverPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR" + "vuid": "VUID-VkPhysicalDeviceDriverProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES" } ] }, @@ -250,7 +278,7 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter", @@ -258,7 +286,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures" + "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures" } ] }, @@ -266,7 +294,7 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter", @@ -274,7 +302,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures" + "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures" } ] }, @@ -287,6 +315,10 @@ { "vuid": "VUID-VkQueueFamilyProperties2-pNext-pNext", "text": " pNext must be NULL or a pointer to a valid instance of VkQueueFamilyCheckpointPropertiesNV" + }, + { + "vuid": "VUID-VkQueueFamilyProperties2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" } ] }, @@ -298,11 +330,55 @@ } ] }, + "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR": { + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" + }, + { + "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter", + "text": " pCounterCount must be a valid pointer to a uint32_t value" + }, + { + "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter", + "text": " If the value referenced by pCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structures" + }, + { + "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter", + "text": " If the value referenced by pCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structures" + } + ] + }, + "VkPerformanceCounterKHR": { + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-VkPerformanceCounterKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR" + }, + { + "vuid": "VUID-VkPerformanceCounterKHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkPerformanceCounterDescriptionKHR": { + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-VkPerformanceCounterDescriptionKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR" + }, + { + "vuid": "VUID-VkPerformanceCounterDescriptionKHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, "vkEnumeratePhysicalDeviceGroups": { "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [ { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter", @@ -310,7 +386,7 @@ }, { "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter", - "text": " If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures" + "text": " If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures" } ] }, @@ -330,43 +406,115 @@ "core": [ { "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387", - "text": " All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list." + "text": " All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list" }, { "vuid": "VUID-vkCreateDevice-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkCreateDevice-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure" }, { "vuid": "VUID-vkCreateDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateDevice-pDevice-parameter", - "text": " pDevice must be a valid pointer to a VkDevice handle" + "text": " pDevice must be a valid pointer to a VkDevice handle" } ] }, "VkDeviceCreateInfo": { - "core": [ + "!(VK_VERSION_1_1)": [ { "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-00372", - "text": "" + "text": " The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-02802", + "text": " The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one is a protected-capable queue and one is not a protected-capable queue" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-pNext-00373", + "text": " If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL" + } + ], + "(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840", + "text": " ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height" + } + ], + "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374", + "text": " ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height" + } + ], + "(VK_EXT_buffer_device_address+VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328", + "text": " ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address" + } + ], + "(VK_VERSION_1_2)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-pNext-02829", + "text": " If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure" }, + { + "vuid": "VUID-VkDeviceCreateInfo-pNext-02830", + "text": " If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure" + } + ], + "(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02831", + "text": " If ppEnabledExtensions contains \"VK_KHR_draw_indirect_count\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE" + } + ], + "(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02832", + "text": " If ppEnabledExtensions contains \"VK_KHR_sampler_mirror_clamp_to_edge\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE" + } + ], + "(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02833", + "text": " If ppEnabledExtensions contains \"VK_EXT_descriptor_indexing\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE" + } + ], + "(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02834", + "text": " If ppEnabledExtensions contains \"VK_EXT_sampler_filter_minmax\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE" + } + ], + "(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)": [ + { + "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02835", + "text": " If ppEnabledExtensions contains \"VK_EXT_shader_viewport_index_layer\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE" + } + ], + "core": [ { "vuid": "VUID-VkDeviceCreateInfo-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO" }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": " 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 VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice8BitStorageFeaturesKHR, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBufferAddressFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFloat16Int8FeaturesKHR, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeaturesEXT, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64FeaturesKHR, VkPhysicalDeviceShaderDrawParameterFeatures, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceVariablePointerFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, or VkPhysicalDeviceYcbcrImageArraysFeaturesEXT" + "text": " 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 VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfoEXT, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImageRobustnessFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInlineUniformBlockFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePrivateDataFeaturesEXT, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceRayTracingFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeaturesEXT, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkanMemoryModelFeatures, or VkPhysicalDeviceYcbcrImageArraysFeaturesEXT" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDevicePrivateDataCreateInfoEXT" }, { "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask", @@ -374,7 +522,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter", - "text": " pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures" + "text": " pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures" }, { "vuid": "VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter", @@ -386,30 +534,12 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter", - "text": " If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure" + "text": " If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure" }, { "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength", "text": " queueCreateInfoCount must be greater than 0" } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-pNext-00373", - "text": " If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL" - } - ], - "(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840", - "text": " ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height" - } - ], - "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374", - "text": " ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height" - } ] }, "VkDeviceGroupDeviceCreateInfo": { @@ -424,7 +554,7 @@ }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377", - "text": " If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices." + "text": " If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices" }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-sType-sType", @@ -432,7 +562,7 @@ }, { "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter", - "text": " If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles" + "text": " If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles" } ] }, @@ -448,6 +578,26 @@ } ] }, + "VkDeviceDiagnosticsConfigCreateInfoNV": { + "(VK_NV_device_diagnostics_config)": [ + { + "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" + }, + { + "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter", + "text": " flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values" + } + ] + }, + "VkDevicePrivateDataCreateInfoEXT": { + "(VK_EXT_private_data)": [ + { + "vuid": "VUID-VkDevicePrivateDataCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT" + } + ] + }, "vkDestroyDevice": { "core": [ { @@ -464,11 +614,11 @@ }, { "vuid": "VUID-vkDestroyDevice-device-parameter", - "text": " If device is not NULL, device must be a valid VkDevice handle" + "text": " If device is not NULL, device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" } ] }, @@ -480,7 +630,7 @@ }, { "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-00382", - "text": " queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]" + "text": " queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]" }, { "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383", @@ -494,6 +644,10 @@ "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-pNext", "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoEXT" }, + { + "vuid": "VUID-VkDeviceQueueCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, { "vuid": "VUID-VkDeviceQueueCreateInfo-flags-parameter", "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" @@ -506,6 +660,12 @@ "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength", "text": " queueCount must be greater than 0" } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkDeviceQueueCreateInfo-flags-02861", + "text": " If the protected memory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set" + } ] }, "VkDeviceQueueGlobalPriorityCreateInfoEXT": { @@ -524,11 +684,11 @@ "core": [ { "vuid": "VUID-vkGetDeviceQueue-queueFamilyIndex-00384", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" + "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" }, { "vuid": "VUID-vkGetDeviceQueue-queueIndex-00385", - "text": " queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" + "text": " queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" }, { "vuid": "VUID-vkGetDeviceQueue-flags-01841", @@ -536,11 +696,11 @@ }, { "vuid": "VUID-vkGetDeviceQueue-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetDeviceQueue-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" + "text": " pQueue must be a valid pointer to a VkQueue handle" } ] }, @@ -548,15 +708,15 @@ "(VK_VERSION_1_1)": [ { "vuid": "VUID-vkGetDeviceQueue2-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetDeviceQueue2-pQueueInfo-parameter", - "text": " pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure" + "text": " pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure" }, { "vuid": "VUID-vkGetDeviceQueue2-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" + "text": " pQueue must be a valid pointer to a VkQueue handle" } ] }, @@ -564,11 +724,11 @@ "(VK_VERSION_1_1)": [ { "vuid": "VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" + "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" }, { "vuid": "VUID-VkDeviceQueueInfo2-queueIndex-01843", - "text": " queueIndex must be less than the number of queues created for the specified queue family index and VkDeviceQueueCreateFlags member flags equal to this flags value when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" + "text": " queueIndex must be less than the number of queues created for the specified queue family index and VkDeviceQueueCreateFlags member flags equal to this flags value when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" }, { "vuid": "VUID-VkDeviceQueueInfo2-sType-sType", @@ -581,10 +741,6 @@ { "vuid": "VUID-VkDeviceQueueInfo2-flags-parameter", "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" - }, - { - "vuid": "VUID-VkDeviceQueueInfo2-flags-requiredbitmask", - "text": " flags must not be 0" } ] }, @@ -592,27 +748,33 @@ "core": [ { "vuid": "VUID-vkCreateCommandPool-queueFamilyIndex-01937", - "text": " pCreateInfo::queueFamilyIndex must be the index of a queue family available in the logical device device." + "text": " pCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device" }, { "vuid": "VUID-vkCreateCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateCommandPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure" }, { "vuid": "VUID-vkCreateCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter", - "text": " pCommandPool must be a valid pointer to a VkCommandPool handle" + "text": " pCommandPool must be a valid pointer to a VkCommandPool handle" } ] }, "VkCommandPoolCreateInfo": { + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860", + "text": " If the protected memory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set" + } + ], "core": [ { "vuid": "VUID-VkCommandPoolCreateInfo-sType-sType", @@ -632,11 +794,11 @@ "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { "vuid": "VUID-vkTrimCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkTrimCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": " commandPool must be a valid VkCommandPool handle" }, { "vuid": "VUID-vkTrimCommandPool-flags-zerobitmask", @@ -656,11 +818,11 @@ }, { "vuid": "VUID-vkResetCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkResetCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": " commandPool must be a valid VkCommandPool handle" }, { "vuid": "VUID-vkResetCommandPool-flags-parameter", @@ -676,7 +838,7 @@ "core": [ { "vuid": "VUID-vkDestroyCommandPool-commandPool-00041", - "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state." + "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-00042", @@ -688,15 +850,15 @@ }, { "vuid": "VUID-vkDestroyCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-parameter", - "text": " If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle" + "text": " If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle" }, { "vuid": "VUID-vkDestroyCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-parent", @@ -708,15 +870,19 @@ "core": [ { "vuid": "VUID-vkAllocateCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure" + "text": " pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure" }, { "vuid": "VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of pAllocateInfo::commandBufferCount VkCommandBuffer handles" + "text": " pCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles" + }, + { + "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength", + "text": " pAllocateInfo->commandBufferCount must be greater than 0" } ] }, @@ -736,7 +902,7 @@ }, { "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": " commandPool must be a valid VkCommandPool handle" }, { "vuid": "VUID-VkCommandBufferAllocateInfo-level-parameter", @@ -756,7 +922,7 @@ }, { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkResetCommandBuffer-flags-parameter", @@ -776,11 +942,11 @@ }, { "vuid": "VUID-vkFreeCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkFreeCommandBuffers-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" + "text": " commandPool must be a valid VkCommandPool handle" }, { "vuid": "VUID-vkFreeCommandBuffers-commandBufferCount-arraylength", @@ -800,11 +966,11 @@ "core": [ { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049", - "text": " commandBuffer must not be in the recording or pending state." + "text": " commandBuffer must not be in the recording or pending state" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00050", - "text": " If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state." + "text": " If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051", @@ -814,13 +980,17 @@ "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052", "text": " If commandBuffer is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of pBeginInfo is VK_FALSE, or the precise occlusion queries feature is not enabled, the queryFlags member of the pInheritanceInfo member pBeginInfo must not contain VK_QUERY_CONTROL_PRECISE_BIT" }, + { + "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840", + "text": " If commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags" + }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkBeginCommandBuffer-pBeginInfo-parameter", - "text": " pBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure" + "text": " pBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure" } ] }, @@ -846,6 +1016,10 @@ "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext", "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo" }, + { + "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, { "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter", "text": " flags must be a valid combination of VkCommandBufferUsageFlagBits values" @@ -862,6 +1036,14 @@ "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057", "text": " If the inherited queries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values" }, + { + "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-02788", + "text": " If the inherited queries feature is not enabled, queryFlags must be 0" + }, + { + "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789", + "text": " If the pipeline statistics queries feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" + }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058", "text": " If the pipeline statistics queries feature is not enabled, pipelineStatistics must be 0" @@ -872,11 +1054,15 @@ }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkCommandBufferInheritanceConditionalRenderingInfoEXT" + "text": " 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 VkCommandBufferInheritanceConditionalRenderingInfoEXT or VkCommandBufferInheritanceRenderPassTransformInfoQCOM" + }, + { + "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent", - "text": " Both of framebuffer, and renderPass that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, @@ -892,11 +1078,23 @@ } ] }, + "VkCommandBufferInheritanceRenderPassTransformInfoQCOM": { + "(VK_QCOM_render_pass_transform)": [ + { + "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864", + "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" + }, + { + "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" + } + ] + }, "vkEndCommandBuffer": { "core": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059", - "text": " commandBuffer must be in the recording state." + "text": " commandBuffer must be in the recording state" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060", @@ -908,25 +1106,25 @@ }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" } ], "(VK_EXT_conditional_rendering)": [ { "vuid": "VUID-vkEndCommandBuffer-None-01978", - "text": " Conditional rendering must not be active" + "text": " Conditional rendering must not be active" } ], "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT." + "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" } ], "(VK_EXT_debug_marker)": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT." + "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT" } ] }, @@ -942,11 +1140,11 @@ }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00065", - "text": " Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state." + "text": " Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state" }, { "vuid": "VUID-vkQueueSubmit-pWaitDstStageMask-00066", - "text": " Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages." + "text": " Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages" }, { "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067", @@ -954,51 +1152,69 @@ }, { "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068", - "text": " When a semaphore unsignal operation defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, no other queue must be waiting on the same semaphore." - }, - { - "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00069", - "text": " All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution." + "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00070", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state." + "text": " Each element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00071", - "text": " If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state." + "text": " If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072", - "text": " Any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state." + "text": " Any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073", - "text": " If any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state." + "text": " If any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00074", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to." + "text": " Each element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-02207", - "text": " If any element of pSubmitspCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation." + "text": " If any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation" + }, + { + "vuid": "VUID-vkQueueSubmit-pSubmits-02808", + "text": " Any resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed" }, { "vuid": "VUID-vkQueueSubmit-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" }, { "vuid": "VUID-vkQueueSubmit-pSubmits-parameter", - "text": " If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures" + "text": " If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures" }, { "vuid": "VUID-vkQueueSubmit-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" }, { "vuid": "VUID-vkQueueSubmit-commonparent", - "text": " Both of fence, and queue that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "!(VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00069", + "text": " All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" + } + ], + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238", + "text": " All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + } + ], + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220", + "text": " If a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers" } ] }, @@ -1018,7 +1234,7 @@ }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078", - "text": " Each element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT." + "text": " Each element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" }, { "vuid": "VUID-VkSubmitInfo-sType-sType", @@ -1026,15 +1242,15 @@ }, { "vuid": "VUID-VkSubmitInfo-pNext-pNext", - "text": " 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, VkDeviceGroupSubmitInfo, VkProtectedSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV" + "text": " 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, VkDeviceGroupSubmitInfo, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV" }, { "vuid": "VUID-VkSubmitInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter", @@ -1046,15 +1262,41 @@ }, { "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter", - "text": " If commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" + "text": " If commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" }, { "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" + "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" }, { "vuid": "VUID-VkSubmitInfo-commonparent", - "text": " Each of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Each of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239", + "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" + }, + { + "vuid": "VUID-VkSubmitInfo-pNext-03240", + "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its waitSemaphoreValueCount member must equal waitSemaphoreCount" + }, + { + "vuid": "VUID-VkSubmitInfo-pNext-03241", + "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its signalSemaphoreValueCount member must equal signalSemaphoreCount" + }, + { + "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03242", + "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed" + }, + { + "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03243", + "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" + }, + { + "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03244", + "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" } ], "(VK_NV_mesh_shader)": [ @@ -1066,17 +1308,39 @@ "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-02090", "text": " If the task shaders feature is not enabled, each element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkSubmitInfo-pNext-04120", + "text": " If the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer" + } + ] + }, + "VkTimelineSemaphoreSubmitInfo": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO" + }, + { + "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter", + "text": " If waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValueCount uint64_t values" + }, + { + "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter", + "text": " If signalSemaphoreValueCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValueCount uint64_t values" + } ] }, "VkD3D12FenceSubmitInfoKHR": { "(VK_KHR_external_semaphore_win32)": [ { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079", - "text": " waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure." + "text": " waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080", - "text": " signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure." + "text": " signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure" }, { "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType", @@ -1096,7 +1360,7 @@ "(VK_KHR_win32_keyed_mutex)": [ { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081", - "text": " Each member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT." + "text": " Each member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType", @@ -1104,7 +1368,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" + "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter", @@ -1116,7 +1380,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" + "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter", @@ -1124,7 +1388,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, @@ -1136,7 +1400,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" + "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter", @@ -1148,7 +1412,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" + "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter", @@ -1156,7 +1420,7 @@ }, { "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, @@ -1164,19 +1428,11 @@ "(VK_VERSION_1_1)": [ { "vuid": "VUID-VkProtectedSubmitInfo-protectedSubmit-01816", - "text": " If the protected memory feature is not enabled, protectedSubmit must not be VK_TRUE." + "text": " If the protected memory feature is not enabled, protectedSubmit must not be VK_TRUE" }, { "vuid": "VUID-VkProtectedSubmitInfo-protectedSubmit-01817", - "text": " If protectedSubmit is VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer." - }, - { - "vuid": "VUID-VkProtectedSubmitInfo-protectedSubmit-01818", - "text": " If protectedSubmit is VK_FALSE, then each element of the pCommandBuffers array must be an unprotected command buffer." - }, - { - "vuid": "VUID-VkProtectedSubmitInfo-pNext-01819", - "text": " If the VkSubmitInfo::pNext chain does not include a VkProtectedSubmitInfo structure, then each element of the command buffer of the pCommandBuffers array must be an unprotected command buffer." + "text": " If protectedSubmit is VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer" }, { "vuid": "VUID-VkProtectedSubmitInfo-sType-sType", @@ -1224,35 +1480,39 @@ } ] }, - "vkCmdExecuteCommands": { - "core": [ + "VkPerformanceQuerySubmitInfoKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00087", - "text": " commandBuffer must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_PRIMARY" + "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221", + "text": " counterPassIndex must be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" }, + { + "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR" + } + ] + }, + "vkCmdExecuteCommands": { + "core": [ { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00088", "text": " Each element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089", - "text": " Each element of pCommandBuffers must be in the pending or executable state." - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00090", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, and it was recorded into any other primary command buffer, that primary command buffer must not be in the pending state" + "text": " Each element of pCommandBuffers must be in the pending or executable state" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00091", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state." + "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer." + "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00093", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers." + "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00094", @@ -1272,11 +1532,11 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-pInheritanceInfo-00098", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, the render passes specified in the pBeginInfo::pInheritanceInfo::renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass." + "text": " If vkCmdExecuteCommands is being called within a render pass instance, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance" + "text": " If vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100", @@ -1304,11 +1564,11 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" + "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording", @@ -1328,17 +1588,31 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-commonparent", - "text": " Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_QCOM_render_pass_transform)": [ + { + "vuid": "VUID-vkCmdExecuteCommands-pNext-02865", + "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the pNext chain of VkCommandBufferBeginInfo" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-pNext-02866", + "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::transform identical to VkRenderPassTransformBeginInfoQCOM::transform" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-pNext-02867", + "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea identical to VkRenderPassBeginInfo::renderArea" } ], "(VK_VERSION_1_1)": [ { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01820", - "text": " If commandBuffer is a protected command buffer, then each element of pCommandBuffers must be a protected command buffer." + "text": " If commandBuffer is a protected command buffer, then each element of pCommandBuffers must be a protected command buffer" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01821", - "text": " If commandBuffer is an unprotected command buffer, then each element of pCommandBuffers must be an unprotected command buffer." + "text": " If commandBuffer is an unprotected command buffer, then each element of pCommandBuffers must be an unprotected command buffer" } ], "(VK_EXT_transform_feedback)": [ @@ -1376,15 +1650,15 @@ }, { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00110", - "text": " deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording." + "text": " deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording" }, { "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00111", - "text": " If vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording." + "text": " If vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording", @@ -1400,19 +1674,19 @@ "core": [ { "vuid": "VUID-vkCreateFence-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateFence-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure" }, { "vuid": "VUID-vkCreateFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateFence-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": " pFence must be a valid pointer to a VkFence handle" } ] }, @@ -1428,7 +1702,7 @@ }, { "vuid": "VUID-VkFenceCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkFenceCreateInfo-flags-parameter", @@ -1440,7 +1714,7 @@ "(VK_VERSION_1_1,VK_KHR_external_fence)": [ { "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-01446", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties." + "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties" }, { "vuid": "VUID-VkExportFenceCreateInfo-sType-sType", @@ -1456,7 +1730,7 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447", - "text": " If VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VkExportFenceWin32HandleInfoKHR must not be in the pNext chain of VkFenceCreateInfo." + "text": " If VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportFenceWin32HandleInfoKHR structure must not be included in the pNext chain of VkFenceCreateInfo" }, { "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-sType-sType", @@ -1472,11 +1746,11 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-vkGetFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure" + "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure" }, { "vuid": "VUID-vkGetFenceWin32HandleKHR-pHandle-parameter", @@ -1488,23 +1762,23 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence’s current payload was created." + "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence’s current payload was created" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449", - "text": " If handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType." + "text": " If handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-01450", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType." + "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution." + "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452", - "text": " handleType must be defined as an NT handle or a global share handle." + "text": " handleType must be defined as an NT handle or a global share handle" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-sType-sType", @@ -1516,7 +1790,7 @@ }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": " fence must be a valid VkFence handle" }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter", @@ -1528,15 +1802,15 @@ "(VK_KHR_external_fence_fd)": [ { "vuid": "VUID-vkGetFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetFenceFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure" + "text": " pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure" }, { "vuid": "VUID-vkGetFenceFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to a int value" + "text": " pFd must be a valid pointer to an int value" } ] }, @@ -1544,19 +1818,19 @@ "(VK_KHR_external_fence_fd)": [ { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01453", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence’s current payload was created." + "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence’s current payload was created" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01454", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution." + "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-fence-01455", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType." + "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456", - "text": " handleType must be defined as a POSIX file descriptor handle." + "text": " handleType must be defined as a POSIX file descriptor handle" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-sType-sType", @@ -1568,7 +1842,7 @@ }, { "vuid": "VUID-VkFenceGetFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": " fence must be a valid VkFence handle" }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-parameter", @@ -1592,15 +1866,15 @@ }, { "vuid": "VUID-vkDestroyFence-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyFence-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" }, { "vuid": "VUID-vkDestroyFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyFence-fence-parent", @@ -1612,11 +1886,11 @@ "core": [ { "vuid": "VUID-vkGetFenceStatus-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetFenceStatus-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": " fence must be a valid VkFence handle" }, { "vuid": "VUID-vkGetFenceStatus-fence-parent", @@ -1632,11 +1906,11 @@ }, { "vuid": "VUID-vkResetFences-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkResetFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" + "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" }, { "vuid": "VUID-vkResetFences-fenceCount-arraylength", @@ -1652,11 +1926,11 @@ "core": [ { "vuid": "VUID-vkWaitForFences-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkWaitForFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" + "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" }, { "vuid": "VUID-vkWaitForFences-fenceCount-arraylength", @@ -1672,19 +1946,19 @@ "(VK_EXT_display_control)": [ { "vuid": "VUID-vkRegisterDeviceEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter", - "text": " pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure" + "text": " pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkRegisterDeviceEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": " pFence must be a valid pointer to a VkFence handle" } ] }, @@ -1708,23 +1982,27 @@ "(VK_EXT_display_control)": [ { "vuid": "VUID-vkRegisterDisplayEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "text": " display must be a valid VkDisplayKHR handle" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter", - "text": " pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure" + "text": " pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkRegisterDisplayEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" + "text": " pFence must be a valid pointer to a VkFence handle" + }, + { + "vuid": "VUID-vkRegisterDisplayEventEXT-commonparent", + "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" } ] }, @@ -1748,11 +2026,11 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-vkImportFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter", - "text": " pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure" + "text": " pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure" } ] }, @@ -1760,31 +2038,31 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table." + "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459", - "text": " If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL." + "text": " If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460", - "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType." + "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType." + "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01462", - "text": " If handle is not NULL, name must be NULL." + "text": " If handle is not NULL, name must be NULL" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01539", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility." + "text": " If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-name-01540", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility." + "text": " If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-sType-sType", @@ -1796,7 +2074,7 @@ }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": " fence must be a valid VkFence handle" }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter", @@ -1816,11 +2094,11 @@ }, { "vuid": "VUID-vkImportFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter", - "text": " pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure" + "text": " pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure" } ] }, @@ -1828,11 +2106,11 @@ "(VK_KHR_external_fence_fd)": [ { "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table." + "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541", - "text": " fd must obey any requirements listed for handleType in external fence handle types compatibility." + "text": " fd must obey any requirements listed for handleType in external fence handle types compatibility" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType", @@ -1844,7 +2122,7 @@ }, { "vuid": "VUID-VkImportFenceFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" + "text": " fence must be a valid VkFence handle" }, { "vuid": "VUID-VkImportFenceFdInfoKHR-flags-parameter", @@ -1860,19 +2138,19 @@ "core": [ { "vuid": "VUID-vkCreateSemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateSemaphore-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure" }, { "vuid": "VUID-vkCreateSemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter", - "text": " pSemaphore must be a valid pointer to a VkSemaphore handle" + "text": " pSemaphore must be a valid pointer to a VkSemaphore handle" } ] }, @@ -1884,11 +2162,11 @@ }, { "vuid": "VUID-VkSemaphoreCreateInfo-pNext-pNext", - "text": " 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 VkExportSemaphoreCreateInfo or VkExportSemaphoreWin32HandleInfoKHR" + "text": " 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 VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, or VkSemaphoreTypeCreateInfo" }, { "vuid": "VUID-VkSemaphoreCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkSemaphoreCreateInfo-flags-zerobitmask", @@ -1896,11 +2174,31 @@ } ] }, + "VkSemaphoreTypeCreateInfo": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO" + }, + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter", + "text": " semaphoreType must be a valid VkSemaphoreType value" + }, + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252", + "text": " If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE" + }, + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279", + "text": " If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero" + } + ] + }, "VkExportSemaphoreCreateInfo": { "(VK_VERSION_1_1,VK_KHR_external_semaphore)": [ { "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-01124", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties." + "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties" }, { "vuid": "VUID-VkExportSemaphoreCreateInfo-sType-sType", @@ -1916,7 +2214,7 @@ "(VK_KHR_external_semaphore_win32)": [ { "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125", - "text": " If VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be in the pNext chain of VkSemaphoreCreateInfo." + "text": " If VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be included in the pNext chain of VkSemaphoreCreateInfo" }, { "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sType", @@ -1932,11 +2230,11 @@ "(VK_KHR_external_semaphore_win32)": [ { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure" + "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure" }, { "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter", @@ -1948,27 +2246,27 @@ "(VK_KHR_external_semaphore_win32)": [ { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created." + "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127", - "text": " If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType." + "text": " If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType." + "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore." + "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution." + "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131", - "text": " handleType must be defined as an NT handle or a global share handle." + "text": " handleType must be defined as an NT handle or a global share handle" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType", @@ -1980,7 +2278,7 @@ }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": " semaphore must be a valid VkSemaphore handle" }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter", @@ -1992,15 +2290,15 @@ "(VK_KHR_external_semaphore_fd)": [ { "vuid": "VUID-vkGetSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure" + "text": " pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure" }, { "vuid": "VUID-vkGetSemaphoreFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to a int value" + "text": " pFd must be a valid pointer to an int value" } ] }, @@ -2008,23 +2306,23 @@ "(VK_KHR_external_semaphore_fd)": [ { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01132", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created." + "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType." + "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore." + "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01135", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution." + "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136", - "text": " handleType must be defined as a POSIX file descriptor handle." + "text": " handleType must be defined as a POSIX file descriptor handle" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType", @@ -2036,12 +2334,22 @@ }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": " semaphore must be a valid VkSemaphore handle" }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter", "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" } + ], + "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03253", + "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" + }, + { + "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03254", + "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" + } ] }, "vkDestroySemaphore": { @@ -2060,15 +2368,15 @@ }, { "vuid": "VUID-vkDestroySemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" }, { "vuid": "VUID-vkDestroySemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroySemaphore-semaphore-parent", @@ -2076,59 +2384,175 @@ } ] }, - "vkImportSemaphoreWin32HandleKHR": { - "(VK_KHR_external_semaphore_win32)": [ + "vkGetSemaphoreCounterValue": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-03255", + "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" }, { - "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter", - "text": " pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure" - } - ] - }, - "VkImportSemaphoreWin32HandleInfoKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table." + "vuid": "VUID-vkGetSemaphoreCounterValue-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466", - "text": " If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL." + "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parameter", + "text": " semaphore must be a valid VkSemaphore handle" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467", - "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType." + "vuid": "VUID-vkGetSemaphoreCounterValue-pValue-parameter", + "text": " pValue must be a valid pointer to a uint64_t value" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType." - }, + "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parent", + "text": " semaphore must have been created, allocated, or retrieved from device" + } + ] + }, + "vkWaitSemaphores": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469", - "text": " If handle is not NULL, name must be NULL." + "vuid": "VUID-vkWaitSemaphores-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility." - }, + "vuid": "VUID-vkWaitSemaphores-pWaitInfo-parameter", + "text": " pWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure" + } + ] + }, + "VkSemaphoreWaitInfo": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility." + "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-03256", + "text": " All of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" + "vuid": "VUID-VkSemaphoreWaitInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext", + "vuid": "VUID-VkSemaphoreWaitInfo-pNext-pNext", "text": " pNext must be NULL" }, { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "vuid": "VUID-VkSemaphoreWaitInfo-flags-parameter", + "text": " flags must be a valid combination of VkSemaphoreWaitFlagBits values" + }, + { + "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-parameter", + "text": " pSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles" + }, + { + "vuid": "VUID-VkSemaphoreWaitInfo-pValues-parameter", + "text": " pValues must be a valid pointer to an array of semaphoreCount uint64_t values" + }, + { + "vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength", + "text": " semaphoreCount must be greater than 0" + } + ] + }, + "vkSignalSemaphore": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-vkSignalSemaphore-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkSignalSemaphore-pSignalInfo-parameter", + "text": " pSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure" + } + ] + }, + "VkSemaphoreSignalInfo": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-03257", + "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-value-03258", + "text": " value must have a value greater than the current value of the semaphore" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-value-03259", + "text": " value must be less than the value of any pending semaphore signal operations" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-value-03260", + "text": " value must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on semaphore by more than maxTimelineSemaphoreValueDifference" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter", + "text": " semaphore must be a valid VkSemaphore handle" + } + ] + }, + "vkImportSemaphoreWin32HandleKHR": { + "(VK_KHR_external_semaphore_win32)": [ + { + "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter", + "text": " pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure" + } + ] + }, + "VkImportSemaphoreWin32HandleInfoKHR": { + "(VK_KHR_external_semaphore_win32)": [ + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140", + "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466", + "text": " If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467", + "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468", + "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469", + "text": " If handle is not NULL, name must be NULL" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542", + "text": " If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543", + "text": " If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261", + "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter", + "text": " semaphore must be a valid VkSemaphore handle" }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter", @@ -2138,6 +2562,16 @@ "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-parameter", "text": " If handleType is not 0, handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" } + ], + "(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262", + "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported" + }, + { + "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322", + "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" + } ] }, "vkImportSemaphoreFdKHR": { @@ -2148,11 +2582,11 @@ }, { "vuid": "VUID-vkImportSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter", - "text": " pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure" + "text": " pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure" } ] }, @@ -2160,11 +2594,15 @@ "(VK_KHR_external_semaphore_fd)": [ { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table." + "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544", - "text": " fd must obey any requirements listed for handleType in external semaphore handle types compatibility." + "text": " fd must obey any requirements listed for handleType in external semaphore handle types compatibility" + }, + { + "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03263", + "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType", @@ -2176,7 +2614,7 @@ }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" + "text": " semaphore must be a valid VkSemaphore handle" }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter", @@ -2186,25 +2624,35 @@ "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter", "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" } + ], + "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03264", + "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported" + }, + { + "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-03323", + "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" + } ] }, "vkCreateEvent": { "core": [ { "vuid": "VUID-vkCreateEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateEvent-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure" }, { "vuid": "VUID-vkCreateEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateEvent-pEvent-parameter", - "text": " pEvent must be a valid pointer to a VkEvent handle" + "text": " pEvent must be a valid pointer to a VkEvent handle" } ] }, @@ -2240,15 +2688,15 @@ }, { "vuid": "VUID-vkDestroyEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyEvent-event-parameter", - "text": " If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle" + "text": " If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle" }, { "vuid": "VUID-vkDestroyEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyEvent-event-parent", @@ -2260,11 +2708,11 @@ "core": [ { "vuid": "VUID-vkGetEventStatus-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetEventStatus-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": " event must be a valid VkEvent handle" }, { "vuid": "VUID-vkGetEventStatus-event-parent", @@ -2276,11 +2724,11 @@ "core": [ { "vuid": "VUID-vkSetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": " event must be a valid VkEvent handle" }, { "vuid": "VUID-vkSetEvent-event-parent", @@ -2296,11 +2744,11 @@ }, { "vuid": "VUID-vkResetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": " event must be a valid VkEvent handle" }, { "vuid": "VUID-vkResetEvent-event-parent", @@ -2311,24 +2759,28 @@ "vkCmdSetEvent": { "core": [ { - "vuid": "VUID-vkCmdSetEvent-stageMask-01149", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "vuid": "VUID-vkCmdSetEvent-stageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + }, + { + "vuid": "VUID-vkCmdSetEvent-stageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdSetEvent-stageMask-01150", - "text": " If the geometry shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdSetEvent-stageMask-4098", + "text": " Any pipeline stage included in pname:stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" }, { - "vuid": "VUID-vkCmdSetEvent-stageMask-01151", - "text": " If the tessellation shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdSetEvent-stageMask-01149", + "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": " event must be a valid VkEvent handle" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-parameter", @@ -2352,39 +2804,67 @@ }, { "vuid": "VUID-vkCmdSetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152", - "text": " commandBuffer’s current device mask must include exactly one physical device." + "vuid": "VUID-vkCmdSetEvent-stageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdSetEvent-stageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + } + ], + "(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdSetEvent-stageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" } ], "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdSetEvent-stageMask-02107", - "text": " If the mesh shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdSetEvent-stageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdSetEvent-stageMask-02108", - "text": " If the task shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdSetEvent-stageMask-04096", + "text": " If the task shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdSetEvent-stageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152", + "text": " commandBuffer’s current device mask must include exactly one physical device" } ] }, "vkCmdResetEvent": { "core": [ { - "vuid": "VUID-vkCmdResetEvent-stageMask-01153", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "vuid": "VUID-vkCmdResetEvent-stageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + }, + { + "vuid": "VUID-vkCmdResetEvent-stageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdResetEvent-stageMask-01154", - "text": " If the geometry shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdResetEvent-stageMask-4098", + "text": " Any pipeline stage included in pname:stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" }, { - "vuid": "VUID-vkCmdResetEvent-stageMask-01155", - "text": " If the tessellation shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdResetEvent-stageMask-01153", + "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" }, { "vuid": "VUID-vkCmdResetEvent-event-01156", @@ -2392,11 +2872,11 @@ }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" + "text": " event must be a valid VkEvent handle" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-parameter", @@ -2420,71 +2900,119 @@ }, { "vuid": "VUID-vkCmdResetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157", - "text": " commandBuffer’s current device mask must include exactly one physical device." + "vuid": "VUID-vkCmdResetEvent-stageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdResetEvent-stageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + } + ], + "(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdResetEvent-stageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" } ], "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdResetEvent-stageMask-02109", - "text": " If the mesh shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdResetEvent-stageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdResetEvent-stageMask-02110", - "text": " If the task shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdResetEvent-stageMask-04096", + "text": " If the task shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdResetEvent-stageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157", + "text": " commandBuffer’s current device mask must include exactly one physical device" } ] }, "vkCmdWaitEvents": { "core": [ { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", - "text": " srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the members of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pEvents was set using vkSetEvent" + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01159", - "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-01160", - "text": " If the geometry shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-4098", + "text": " Any pipeline stage included in pname:srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" }, { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01161", - "text": " If the tessellation shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-01162", - "text": " If the tessellation shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdWaitEvents-pEvents-01163", - "text": " If pEvents includes one or more events that will be signaled by vkSetEvent after commandBuffer has been submitted to a queue, then vkCmdWaitEvents must not be called inside a render pass instance" + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-4098", + "text": " Any pipeline stage included in pname:dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" + }, + { + "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815", + "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816", + "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817", + "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818", + "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819", + "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820", + "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" }, { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01164", - "text": " Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages." + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", + "text": " srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the members of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pEvents was set using vkSetEvent" }, { - "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-01165", - "text": " Each element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its srcAccessMask member if that bit is not supported by any of the pipeline stages in srcStageMask, as specified in the table of supported access types." + "vuid": "VUID-vkCmdWaitEvents-pEvents-01163", + "text": " If pEvents includes one or more events that will be signaled by vkSetEvent after commandBuffer has been submitted to a queue, then vkCmdWaitEvents must not be called inside a render pass instance" }, { - "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-01166", - "text": " Each element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its dstAccessMask member if that bit is not supported by any of the pipeline stages in dstStageMask, as specified in the table of supported access types." + "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803", + "text": " The srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter", - "text": " pEvents must be a valid pointer to an array of eventCount valid VkEvent handles" + "text": " pEvents must be a valid pointer to an array of eventCount valid VkEvent handles" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter", @@ -2504,15 +3032,15 @@ }, { "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" + "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" }, { "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" + "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" }, { "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" + "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording", @@ -2528,83 +3056,147 @@ }, { "vuid": "VUID-vkCmdWaitEvents-commonparent", - "text": " Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167", - "text": " commandBuffer’s current device mask must include exactly one physical device." + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + } + ], + "(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" } ], "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-02111", - "text": " If the mesh shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-02112", - "text": " If the task shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04096", + "text": " If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-02113", - "text": " If the mesh shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-02114", - "text": " If the task shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04096", + "text": " If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167", + "text": " commandBuffer’s current device mask must include exactly one physical device" } ] }, "vkCmdPipelineBarrier": { "core": [ { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01168", - "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01169", - "text": " If the geometry shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01170", - "text": " If the tessellation shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-4098", + "text": " Any pipeline stage included in pname:srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01171", - "text": " If the tessellation shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090", + "text": " If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the render pass must have been created with at least one VkSubpassDependency instance in VkRenderPassCreateInfo::pDependencies that expresses a dependency from the current subpass to itself, and for which srcStageMask contains a subset of the bit values in VkSubpassDependency::srcStageMask, dstStageMask contains a subset of the bit values in VkSubpassDependency::dstStageMask, dependencyFlags is equal to VkSubpassDependency::dependencyFlags, srcAccessMask member of each element of pMemoryBarriers and pImageMemoryBarriers contains a subset of the bit values in VkSubpassDependency::srcAccessMask, and dstAccessMask member of each element of pMemoryBarriers and pImageMemoryBarriers contains a subset of the bit values in VkSubpassDependency::dstAccessMask" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091", + "text": " If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, bufferMemoryBarrierCount must be 0" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-4098", + "text": " Any pipeline stage included in pname:dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" }, { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of an element of pImageMemoryBarriers must be equal" + "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815", + "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pImageMemoryBarriers must be VK_QUEUE_FAMILY_IGNORED" + "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816", + "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817", + "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818", + "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819", + "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820", + "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", + "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must have been created with at least one VkSubpassDependency instance in VkRenderPassCreateInfo::pDependencies that expresses a dependency from the current subpass to itself, with synchronization scopes and access scopes that are all supersets of the scopes defined in this command" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01183", - "text": " Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages." + "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", + "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, it must not include any buffer memory barriers" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-image-04073", + "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment" }, { - "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-01184", - "text": " Each element of pMemoryBarriers, pBufferMemoryBarriers and pImageMemoryBarriers must not have any access flag included in its srcAccessMask member if that bit is not supported by any of the pipeline stages in srcStageMask, as specified in the table of supported access types." + "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", + "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal" }, { - "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-01185", - "text": " Each element of pMemoryBarriers, pBufferMemoryBarriers and pImageMemoryBarriers must not have any access flag included in its dstAccessMask member if that bit is not supported by any of the pipeline stages in dstStageMask, as specified in the table of supported access types." + "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", + "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any image memory barrier included in this command must be equal" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter", @@ -2628,15 +3220,15 @@ }, { "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" + "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" }, { "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" + "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" }, { "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" + "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording", @@ -2647,48 +3239,68 @@ "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" } ], - "(VK_KHR_depth_stencil_resolve)": [ + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdPipelineBarrier-image-02635", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the image member of any element of pImageMemoryBarriers must be equal to one of the elements of pAttachments that the current framebuffer was created with, that is also referred to by one of the elements of the pColorAttachments, pResolveAttachments or pDepthStencilAttachment members of the VkSubpassDescription instance or by the pDepthStencilResolveAttachment member of the VkSubpassDescriptionDepthStencilResolveKHR structure that the current subpass was created with" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02636", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any element of pImageMemoryBarriers must be equal to the layout member of an element of the pColorAttachments, pResolveAttachments or pDepthStencilAttachment members of the VkSubpassDescription instance or by the pDepthStencilResolveAttachment member of the VkSubpassDescriptionDepthStencilResolveKHR structure that the current subpass was created with, that refers to the same image" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092", + "text": " If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" } ], - "!(VK_KHR_depth_stencil_resolve)": [ + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-vkCmdPipelineBarrier-image-02637", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the image member of any element of pImageMemoryBarriers must be equal to one of the elements of pAttachments that the current framebuffer was created with, that is also referred to by one of the elements of the pColorAttachments, pResolveAttachments or pDepthStencilAttachment members of the VkSubpassDescription instance that the current subpass was created with" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" }, { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02638", - "text": " If vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any element of pImageMemoryBarriers must be equal to the layout member of an element of the pColorAttachments, pResolveAttachments or pDepthStencilAttachment members of the VkSubpassDescription instance that the current subpass was created with, that refers to the same image" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093", + "text": " If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" } ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", - "text": " If vkCmdPipelineBarrier is called outside of a render pass instance, dependencyFlags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094", + "text": " If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" } ], "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-02115", - "text": " If the mesh shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-02116", - "text": " If the task shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04096", + "text": " If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-02117", - "text": " If the mesh shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04095", + "text": " If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-02118", - "text": " If the task shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04096", + "text": " If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04097", + "text": " If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", + "text": " If fname:vkCmdPipelineBarrier is called outside of a render pass instance, VK_DEPENDENCY_VIEW_LOCAL_BIT must not be included in the dependency flags" } ] }, @@ -2726,10 +3338,6 @@ "vuid": "VUID-VkBufferMemoryBarrier-size-01189", "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset" }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01196", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not VK_QUEUE_FAMILY_IGNORED, at least one of them must be the same as the family of the queue that will execute this barrier" - }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01931", "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" @@ -2742,66 +3350,42 @@ "vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext", "text": " pNext must be NULL" }, - { - "vuid": "VUID-VkBufferMemoryBarrier-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" - }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "text": " buffer must be a valid VkBuffer handle" } ], "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01190", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" + "vuid": "VUID-VkBufferMemoryBarrier-buffer-04086", + "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families" }, { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01192", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, srcQueueFamilyIndex and dstQueueFamilyIndex must either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see Queue Family Properties)" + "vuid": "VUID-VkBufferMemoryBarrier-buffer-01190", + "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" } ], "(VK_VERSION_1_1,VK_KHR_external_memory)": [ { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01191", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01763", - "text": " If buffer 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 a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer." + "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087", + "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer" }, { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01193", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and srcQueueFamilyIndex is VK_QUEUE_FAMILY_IGNORED, dstQueueFamilyIndex must also be VK_QUEUE_FAMILY_IGNORED" + "vuid": "VUID-VkBufferMemoryBarrier-buffer-04088", + "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is a special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED" }, { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01764", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and srcQueueFamilyIndex is not VK_QUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in Queue Family Ownership Transfer." + "vuid": "VUID-VkBufferMemoryBarrier-buffer-04089", + "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer" }, { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01765", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and dstQueueFamilyIndex is not VK_QUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in Queue Family Ownership Transfer." + "vuid": "VUID-VkBufferMemoryBarrier-buffer-01191", + "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" } ] }, "VkImageMemoryBarrier": { "core": [ - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", - "text": " oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", - "text": " newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01205", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not VK_QUEUE_FAMILY_IGNORED, at least one of them must be the same as the family of the queue that will execute this barrier" - }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486", "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" @@ -2819,36 +3403,40 @@ "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01207", - "text": " If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + "vuid": "VUID-VkImageMemoryBarrier-image-01932", + "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT set" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT set" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213", - "text": " 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" + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01932", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" }, { "vuid": "VUID-VkImageMemoryBarrier-sType-sType", @@ -2859,12 +3447,8 @@ "text": " pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT" }, { - "vuid": "VUID-VkImageMemoryBarrier-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" + "vuid": "VUID-VkImageMemoryBarrier-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-parameter", @@ -2876,43 +3460,51 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-image-parameter", - "text": " image must be a valid VkImage handle" + "text": " image must be a valid VkImage handle" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "text": " subresourceRange must be a valid VkImageSubresourceRange structure" } ], - "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01199", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01200", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, srcQueueFamilyIndex and dstQueueFamilyIndex must either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see Queue Family Properties)." + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" } ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01381", - "text": " 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" + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01766", - "text": " 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 a special queue family reserved for external memory transfers, as described in Queue Family Ownership Transfer." + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01201", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and srcQueueFamilyIndex is VK_QUEUE_FAMILY_IGNORED, dstQueueFamilyIndex must also be VK_QUEUE_FAMILY_IGNORED." + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01767", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and srcQueueFamilyIndex is not VK_QUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in Queue Family Ownership Transfer." - }, + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + } + ], + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01768", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE and dstQueueFamilyIndex is not VK_QUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in Queue Family Ownership Transfer." + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", + "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV then image must have been created with VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV set" + } + ], + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-image-02902", + "text": " If image has a color format, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ @@ -2929,20 +3521,48 @@ "text": " If image has a multi-planar format with only two planes, then the aspectMask member of subresourceRange must not include VK_IMAGE_ASPECT_PLANE_2_BIT" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "vuid": "VUID-VkImageMemoryBarrier-image-01207", + "text": " If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" + } + ], + "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-image-03319", + "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" }, { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + "vuid": "VUID-VkImageMemoryBarrier-image-03320", + "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" } ], - "(VK_NV_shading_rate_image)": [ + "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", - "text": " If either oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV then image must have been created with VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV set" + "vuid": "VUID-VkImageMemoryBarrier-image-04069", + "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-01199", + "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", + "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-04071", + "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is a special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-04072", + "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-01381", + "text": " 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" } ] }, @@ -2950,7 +3570,7 @@ "core": [ { "vuid": "VUID-vkQueueWaitIdle-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" } ] }, @@ -2958,7 +3578,7 @@ "core": [ { "vuid": "VUID-vkDeviceWaitIdle-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" } ] }, @@ -2966,11 +3586,11 @@ "(VK_EXT_calibrated_timestamps)": [ { "vuid": "VUID-vkGetCalibratedTimestampsEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter", - "text": " pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures" + "text": " pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures" }, { "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter", @@ -3010,19 +3630,19 @@ "core": [ { "vuid": "VUID-vkCreateRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateRenderPass-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure" }, { "vuid": "VUID-vkCreateRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateRenderPass-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" + "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" } ] }, @@ -3034,11 +3654,11 @@ }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL." + "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-02511", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL." + "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837", @@ -3046,7 +3666,7 @@ }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" + "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" }, { "vuid": "VUID-VkRenderPassCreateInfo-srcSubpass-02517", @@ -3066,19 +3686,23 @@ }, { "vuid": "VUID-VkRenderPassCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures" + "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures" }, { "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures" + "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures" }, { "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures" + "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures" }, { "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength", @@ -3088,57 +3712,57 @@ "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL." + "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" }, { "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01567", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL." + "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01926", - "text": " If the pNext chain includes an instance of VkRenderPassInputAttachmentAspectCreateInfo, the subpass member of each element of its pAspectReferences member must be less than subpassCount" + "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the subpass member of each element of its pAspectReferences member must be less than subpassCount" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927", - "text": " If the pNext chain includes an instance of VkRenderPassInputAttachmentAspectCreateInfo, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the member of pSubpasses identified by its subpass member" + "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the member of pSubpasses identified by its subpass member" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963", - "text": " If the pNext chain includes an instance of VkRenderPassInputAttachmentAspectCreateInfo, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment" + "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment" } ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01928", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, and its subpassCount member is not zero, that member must be equal to the value of subpassCount" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and its subpassCount member is not zero, that member must be equal to the value of subpassCount" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01929", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, if its dependencyCount member is not zero, it must be equal to dependencyCount" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01930", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02512", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, for any element of pDependencies with a dependencyFlags member that doesn’t include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for any element of pDependencies with a dependencyFlags member that does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02513", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, elements of its pViewMasks member must either all be 0, or all not be 0" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, elements of its pViewMasks member must either all be 0, or all not be 0" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02514", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02515", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, and each element of its pViewMasks member is 0, correlatedViewMaskCount must be 0" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, correlatedViewMaskCount must be 0" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-02516", - "text": " If the pNext chain includes an instance of VkRenderPassMultiviewCreateInfo, each element of its pViewMask member must not include a bit at a position greater than the value of VkPhysicalDeviceLimits::maxFramebufferLayers" + "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, each element of its pViewMask member must not have a bit set at an index greater than or equal to VkPhysicalDeviceLimits::maxFramebufferLayers" } ] }, @@ -3182,11 +3806,11 @@ }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE." + "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE." + "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE" }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType", @@ -3194,7 +3818,7 @@ }, { "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter", - "text": " fragmentDensityMapAttachment must be a valid VkAttachmentReference structure" + "text": " fragmentDensityMapAttachment must be a valid VkAttachmentReference structure" } ] }, @@ -3204,6 +3828,22 @@ "vuid": "VUID-VkAttachmentDescription-finalLayout-00843", "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" }, + { + "vuid": "VUID-VkAttachmentDescription-format-03280", + "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03281", + "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03282", + "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03283", + "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + }, { "vuid": "VUID-VkAttachmentDescription-flags-parameter", "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" @@ -3240,6 +3880,48 @@ "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter", "text": " finalLayout must be a valid VkImageLayout value" } + ], + "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284", + "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285", + "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03286", + "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03287", + "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03288", + "text": " If format is a depth/stencil format which includes both depth and stencil aspects, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03289", + "text": " If format is a depth/stencil format which includes both depth and stencil aspects, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03290", + "text": " If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03291", + "text": " If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03292", + "text": " If format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription-format-03293", + "text": " If format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + } ] }, "VkRenderPassInputAttachmentAspectCreateInfo": { @@ -3250,7 +3932,7 @@ }, { "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter", - "text": " pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures" + "text": " pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures" }, { "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylength", @@ -3276,7 +3958,7 @@ "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier)": [ { "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i." + "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" } ] }, @@ -3316,19 +3998,19 @@ }, { "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647", - "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have formats whose features contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT." + "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have formats whose features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649", - "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have formats whose features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650", - "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have a format whose features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have a image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418", @@ -3356,19 +4038,19 @@ }, { "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures" + "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures" }, { "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" + "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" }, { "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" + "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" }, { "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure" + "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure" }, { "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter", @@ -3384,7 +4066,35 @@ "(VK_NVX_multiview_per_view_attributes)": [ { "vuid": "VUID-VkSubpassDescription-flags-00856", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX." + "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" + } + ], + "(VK_QCOM_render_pass_shader_resolve)": [ + { + "vuid": "VUID-VkSubpassDescription-flags-03341", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED" + }, + { + "vuid": "VUID-VkSubpassDescription-flags-03342", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pDepthStencilResolveAttachmentKHR is not NULL, then the depth/stencil resolve attachment must be VK_ATTACHMENT_UNUSED" + }, + { + "vuid": "VUID-VkSubpassDescription-flags-03343", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain" + }, + { + "vuid": "VUID-VkSubpassDescription-flags-03344", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples" + }, + { + "vuid": "VUID-VkSubpassDescription-flags-03345", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, and if sampleShadingEnable is enabled (explicitly or implicitly) then minSampleShading must equal 0.0" + } + ], + "(VK_QCOM_render_pass_transform)": [ + { + "vuid": "VUID-VkSubpassDescription-pInputAttachments-02868", + "text": " If the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED" } ] }, @@ -3392,7 +4102,7 @@ "core": [ { "vuid": "VUID-VkAttachmentReference-layout-00857", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR" }, { "vuid": "VUID-VkAttachmentReference-layout-parameter", @@ -3402,14 +4112,6 @@ }, "VkSubpassDependency": { "core": [ - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-00858", - "text": " If srcSubpass is not VK_SUBPASS_EXTERNAL, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-dstSubpass-00859", - "text": " If dstSubpass is not VK_SUBPASS_EXTERNAL, dstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" - }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-00860", "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" @@ -3434,10 +4136,6 @@ "vuid": "VUID-VkSubpassDependency-srcSubpass-00865", "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-01989", - "text": " If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must not set any bits that are neither VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, nor one of the graphics pipeline stages" - }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00867", "text": " If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask" @@ -3516,480 +4214,620 @@ } ] }, - "vkCreateRenderPass2KHR": { - "(VK_KHR_create_renderpass2)": [ + "vkCreateRenderPass2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-vkCreateRenderPass2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCreateRenderPass2-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateRenderPass2KHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2KHR structure" + "vuid": "VUID-vkCreateRenderPass2-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure" }, { - "vuid": "VUID-vkCreateRenderPass2KHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCreateRenderPass2-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCreateRenderPass2KHR-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" + "vuid": "VUID-vkCreateRenderPass2-pRenderPass-parameter", + "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" } ] }, - "VkRenderPassCreateInfo2KHR": { - "(VK_KHR_create_renderpass2)": [ + "VkRenderPassCreateInfo2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-None-03049", + "vuid": "VUID-VkRenderPassCreateInfo2-None-03049", "text": " If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-attachment-03050", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2KHR structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags" + "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03050", + "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-attachment-03051", + "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051", "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any given element of pSubpasses is not VK_ATTACHMENT_UNUSED, it must be less than attachmentCount" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-02522", + "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522", "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-02523", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL." + "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02523", + "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03054", - "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass." + "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03054", + "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03055", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass." + "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03055", + "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pCorrelatedViewMasks-03056", + "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056", "text": " The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03057", - "text": " If the VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0" + "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03057", + "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03058", - "text": " The VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0" + "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03058", + "text": " The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03059", - "text": " If the VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03059", + "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03060", + "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03060", "text": " For any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-02524", - "text": " The viewMask member must not include a bit at a position greater than the value of VkPhysicalDeviceLimits::maxFramebufferLayers" + "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-02524", + "text": " The viewMask member must not have a bit set at an index greater than or equal to VkPhysicalDeviceLimits::maxFramebufferLayers" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-attachment-02525", + "vuid": "VUID-VkRenderPassCreateInfo2-attachment-02525", "text": " If the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-srcSubpass-02526", + "vuid": "VUID-VkRenderPassCreateInfo2-srcSubpass-02526", "text": " The srcSubpass member of each element of pDependencies must be less than subpassCount" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-dstSubpass-02527", + "vuid": "VUID-VkRenderPassCreateInfo2-dstSubpass-02527", "text": " The dstSubpass member of each element of pDependencies must be less than subpassCount" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR" + "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkRenderPassCreateInfo2-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkRenderPassFragmentDensityMapCreateInfoEXT" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2-flags-parameter", + "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2KHR structures" + "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter", + "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2KHR structures" + "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter", + "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2KHR structures" + "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter", + "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-pCorrelatedViewMasks-parameter", + "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter", "text": " If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values" }, { - "vuid": "VUID-VkRenderPassCreateInfo2KHR-subpassCount-arraylength", + "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength", "text": " subpassCount must be greater than 0" } ] }, - "VkAttachmentDescription2KHR": { - "(VK_KHR_create_renderpass2)": [ + "VkAttachmentDescription2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-03061", + "vuid": "VUID-VkAttachmentDescription2-finalLayout-03061", "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR" + "vuid": "VUID-VkAttachmentDescription2-format-03294", + "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03295", + "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03296", + "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03297", + "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-flags-parameter", + "vuid": "VUID-VkAttachmentDescription2-flags-parameter", "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-format-parameter", + "vuid": "VUID-VkAttachmentDescription2-format-parameter", "text": " format must be a valid VkFormat value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-samples-parameter", + "vuid": "VUID-VkAttachmentDescription2-samples-parameter", "text": " samples must be a valid VkSampleCountFlagBits value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-loadOp-parameter", + "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter", "text": " loadOp must be a valid VkAttachmentLoadOp value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-storeOp-parameter", + "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter", "text": " storeOp must be a valid VkAttachmentStoreOp value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-stencilLoadOp-parameter", + "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter", "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-stencilStoreOp-parameter", + "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter", "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-initialLayout-parameter", + "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter", "text": " initialLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-parameter", + "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter", "text": " finalLayout must be a valid VkImageLayout value" } + ], + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298", + "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299", + "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03300", + "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03301", + "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03302", + "text": " If format is a depth/stencil format which includes both depth and stencil aspects, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03303", + "text": " If format is a depth/stencil format which includes both depth and stencil aspects, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03304", + "text": " If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03305", + "text": " If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03306", + "text": " If format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-03307", + "text": " If format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + } + ] + }, + "VkAttachmentDescriptionStencilLayout": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308", + "text": " stencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309", + "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310", + "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + }, + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT" + }, + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter", + "text": " stencilInitialLayout must be a valid VkImageLayout value" + }, + { + "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter", + "text": " stencilFinalLayout must be a valid VkImageLayout value" + } ] }, - "VkSubpassDescription2KHR": { - "(VK_KHR_create_renderpass2)": [ + "VkSubpassDescription2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-03062", + "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-03062", "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkSubpassDescription2KHR-colorAttachmentCount-03063", + "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063", "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" }, { - "vuid": "VUID-VkSubpassDescription2KHR-loadOp-03064", + "vuid": "VUID-VkSubpassDescription2-loadOp-03064", "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03065", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065", "text": " If pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03066", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066", "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03067", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067", "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03068", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068", "text": " Any given element of pResolveAttachments must have the same VkFormat as its corresponding color attachment" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-03069", + "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03069", "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071", + "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897", + "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898", + "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899", + "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900", + "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have a image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-03071", "text": " If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count" }, { - "vuid": "VUID-VkSubpassDescription2KHR-attachment-03073", + "vuid": "VUID-VkSubpassDescription2-attachment-03073", "text": " The attachment member of any element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pPreserveAttachments-03074", + "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074", "text": " Any given element of pPreserveAttachments must not also be an element of any other member of the subpass description" }, { - "vuid": "VUID-VkSubpassDescription2KHR-layout-02528", + "vuid": "VUID-VkSubpassDescription2-layout-02528", "text": " If any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout" }, { - "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03175", - "text": " The aspectMask member of any element of pInputAttachments must be a valid combination of VkImageAspectFlagBits" + "vuid": "VUID-VkSubpassDescription2-attachment-02799", + "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must be a valid combination of VkImageAspectFlagBits" }, { - "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03176", - "text": " The aspectMask member of any element of pInputAttachments must not be 0" + "vuid": "VUID-VkSubpassDescription2-attachment-02800", + "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0" }, { - "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-02529", - "text": " The aspectMask member of each element of pInputAttachments must not include VK_IMAGE_ASPECT_METADATA_BIT" + "vuid": "VUID-VkSubpassDescription2-attachment-02801", + "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT" }, { - "vuid": "VUID-VkSubpassDescription2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR" + "vuid": "VUID-VkSubpassDescription2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2" }, { - "vuid": "VUID-VkSubpassDescription2KHR-flags-parameter", + "vuid": "VUID-VkSubpassDescription2-flags-parameter", "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-parameter", + "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter", "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2KHR structures" + "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter", + "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2KHR structures" + "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter", + "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2KHR structures" + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter", + "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2KHR structure" + "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter", + "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" }, { - "vuid": "VUID-VkSubpassDescription2KHR-pPreserveAttachments-parameter", + "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter", "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" } ], - "(VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [ + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [ { - "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-03070", + "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03070", "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" } ], - "(VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [ + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [ { - "vuid": "VUID-VkSubpassDescription2KHR-flags-03076", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX." + "vuid": "VUID-VkSubpassDescription2-flags-03076", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" } ] }, - "VkSubpassDescriptionDepthStencilResolveKHR": { - "(VK_KHR_create_renderpass2)+(VK_KHR_depth_stencil_resolve)": [ + "VkSubpassDescriptionDepthStencilResolve": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03177", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177", "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have the value VK_ATTACHMENT_UNUSED" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03178", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE_KHR" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178", + "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03179", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179", "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03180", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180", "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-02651", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651", "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have a format whose features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03181", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181", "text": " If the VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numerical type" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03182", + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182", "text": " If the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numerical type" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-depthResolveMode-03183", - "text": " The value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolvePropertiesKHR::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE_KHR" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183", + "text": " The value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-stencilResolveMode-03184", - "text": " The value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolvePropertiesKHR::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE_KHR" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184", + "text": " The value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03185", - "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolvePropertiesKHR::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolvePropertiesKHR::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185", + "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-03186", - "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolvePropertiesKHR::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolvePropertiesKHR::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE_KHR" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186", + "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-depthResolveMode-parameter", - "text": " depthResolveMode must be a valid VkResolveModeFlagBitsKHR value" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-parameter", + "text": " depthResolveMode must be a valid VkResolveModeFlagBits value" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-stencilResolveMode-parameter", - "text": " stencilResolveMode must be a valid VkResolveModeFlagBitsKHR value" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-parameter", + "text": " stencilResolveMode must be a valid VkResolveModeFlagBits value" }, { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolveKHR-pDepthStencilResolveAttachment-parameter", - "text": " If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2KHR structure" + "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter", + "text": " If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" } ] }, - "VkAttachmentReference2KHR": { - "(VK_KHR_create_renderpass2)": [ + "VkAttachmentReference2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkAttachmentReference2-layout-03077", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" + }, + { + "vuid": "VUID-VkAttachmentReference2-attachment-03311", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask does not include VK_IMAGE_ASPECT_STENCIL_BIT or VK_IMAGE_ASPECT_DEPTH_BIT, layout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" + }, { - "vuid": "VUID-VkAttachmentReference2KHR-layout-03077", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + "vuid": "VUID-VkAttachmentReference2-attachment-03312", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask does not include VK_IMAGE_ASPECT_COLOR_BIT, layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" }, { - "vuid": "VUID-VkAttachmentReference2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR" + "vuid": "VUID-VkAttachmentReference2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2" }, { - "vuid": "VUID-VkAttachmentReference2KHR-layout-parameter", + "vuid": "VUID-VkAttachmentReference2-layout-parameter", "text": " layout must be a valid VkImageLayout value" } + ], + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313", + "text": " If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + }, + { + "vuid": "VUID-VkAttachmentReference2-attachment-03314", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," + }, + { + "vuid": "VUID-VkAttachmentReference2-attachment-03315", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask includes both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT, and layout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentReferenceStencilLayout structure" + }, + { + "vuid": "VUID-VkAttachmentReference2-attachment-03316", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask includes only VK_IMAGE_ASPECT_DEPTH_BIT then layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" + }, + { + "vuid": "VUID-VkAttachmentReference2-attachment-03317", + "text": " If attachment is not VK_ATTACHMENT_UNUSED, and aspectMask includes only VK_IMAGE_ASPECT_STENCIL_BIT then layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" + } ] }, - "VkSubpassDependency2KHR": { - "(VK_KHR_create_renderpass2)": [ + "VkAttachmentReferenceStencilLayout": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03078", - "text": " If srcSubpass is not VK_SUBPASS_EXTERNAL, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318", + "text": " stencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstSubpass-03079", - "text": " If dstSubpass is not VK_SUBPASS_EXTERNAL, dstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + "vuid": "VUID-VkAttachmentReferenceStencilLayout-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03080", + "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter", + "text": " stencilLayout must be a valid VkImageLayout value" + } + ] + }, + "VkSubpassDependency2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassDependency2-srcStageMask-03080", "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03081", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-03081", "text": " If the geometry shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03082", + "vuid": "VUID-VkSubpassDependency2-srcStageMask-03082", "text": " If the tessellation shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03083", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-03083", "text": " If the tessellation shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03084", + "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084", "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03085", + "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085", "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-02244", - "text": " If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must not set any bits that are neither VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, nor one of the graphics pipeline stages" - }, - { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03087", + "vuid": "VUID-VkSubpassDependency2-srcSubpass-03087", "text": " If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcAccessMask-03088", + "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088", "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstAccessMask-03089", + "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089", "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03090", + "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090", "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03091", + "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091", "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-02245", + "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245", "text": " If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" }, { - "vuid": "VUID-VkSubpassDependency2KHR-viewOffset-02530", + "vuid": "VUID-VkSubpassDependency2-viewOffset-02530", "text": " If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03092", + "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092", "text": " If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0" }, { - "vuid": "VUID-VkSubpassDependency2KHR-viewOffset-03093", - "text": " If viewOffset is not 0, srcSubpass must not be equal to dstSubpass." - }, - { - "vuid": "VUID-VkSubpassDependency2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR" + "vuid": "VUID-VkSubpassDependency2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-parameter", + "vuid": "VUID-VkSubpassDependency2-srcStageMask-parameter", "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-requiredbitmask", + "vuid": "VUID-VkSubpassDependency2-srcStageMask-requiredbitmask", "text": " srcStageMask must not be 0" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-parameter", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter", "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-requiredbitmask", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-requiredbitmask", "text": " dstStageMask must not be 0" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcAccessMask-parameter", + "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter", "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstAccessMask-parameter", + "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter", "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-parameter", + "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter", "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" } ], - "(VK_KHR_create_renderpass2)+(VK_NV_mesh_shader)": [ + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader)": [ { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-02103", + "vuid": "VUID-VkSubpassDependency2-srcStageMask-02103", "text": " If the mesh shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-02104", + "vuid": "VUID-VkSubpassDependency2-srcStageMask-02104", "text": " If the task shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-02105", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-02105", "text": " If the mesh shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" }, { - "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-02106", + "vuid": "VUID-VkSubpassDependency2-dstStageMask-02106", "text": " If the task shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" } ] @@ -4010,15 +4848,15 @@ }, { "vuid": "VUID-vkDestroyRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-parameter", - "text": " If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" + "text": " If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" }, { "vuid": "VUID-vkDestroyRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyRenderPass-renderPass-parent", @@ -4028,21 +4866,25 @@ }, "vkCreateFramebuffer": { "core": [ + { + "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-02777", + "text": " If pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device" + }, { "vuid": "VUID-vkCreateFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure" }, { "vuid": "VUID-vkCreateFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter", - "text": " pFramebuffer must be a valid pointer to a VkFramebuffer handle" + "text": " pFramebuffer must be a valid pointer to a VkFramebuffer handle" } ] }, @@ -4052,37 +4894,41 @@ "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-00876", "text": " attachmentCount must be equal to the attachment count specified in renderPass" }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-02778", + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" + }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00877", - "text": " Each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633", - "text": " Each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879", - "text": " Each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880", - "text": " Each element of pAttachments must have been created with an VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881", - "text": " Each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883", - "text": " Each element of pAttachments must only specify a single mip level" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884", - "text": " Each element of pAttachments must have been created with the identity swizzle" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle" }, { "vuid": "VUID-VkFramebufferCreateInfo-width-00885", - "text": " width must be greater than 0." + "text": " width must be greater than 0" }, { "vuid": "VUID-VkFramebufferCreateInfo-width-00886", @@ -4090,7 +4936,7 @@ }, { "vuid": "VUID-VkFramebufferCreateInfo-height-00887", - "text": " height must be greater than 0." + "text": " height must be greater than 0" }, { "vuid": "VUID-VkFramebufferCreateInfo-height-00888", @@ -4098,124 +4944,274 @@ }, { "vuid": "VUID-VkFramebufferCreateInfo-layers-00889", - "text": " layers must be greater than 0." + "text": " layers must be greater than 0" }, { "vuid": "VUID-VkFramebufferCreateInfo-layers-00890", "text": " layers must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferLayers" }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-04113", + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" + }, { "vuid": "VUID-VkFramebufferCreateInfo-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO" }, { "vuid": "VUID-VkFramebufferCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": " pNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo" }, { - "vuid": "VUID-VkFramebufferCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkFramebufferCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "vuid": "VUID-VkFramebufferCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkFramebufferCreateFlagBits values" }, { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter", + "text": " renderPass must be a valid VkRenderPass handle" }, { "vuid": "VUID-VkFramebufferCreateInfo-commonparent", - "text": " Both of renderPass, and the elements of pAttachments that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_KHR_depth_stencil_resolve)": [ + "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634", - "text": " Each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" } ], "(VK_EXT_fragment_density_map)": [ { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552", - "text": " Each element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT." + "text": " Each element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02553", - "text": " If renderPass has a fragment density map attachment and non-subsample image feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment." + "text": " If renderPass has a fragment density map attachment and non-subsample image feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02554", - "text": " Each element of pAttachments must have dimensions at least as large as the corresponding framebuffer dimension except for any element that is referenced by fragmentDensityMapAttachment" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have dimensions at least as large as the corresponding framebuffer dimension except for any element that is referenced by fragmentDensityMapAttachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02555", - "text": " An element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as \\(\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\rceil\\)" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" }, { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02556", - "text": " An element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as \\(\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\rceil\\)" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" } ], "!(VK_EXT_fragment_density_map)": [ { "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00882", - "text": " Each element of pAttachments must have dimensions at least as large as the corresponding framebuffer dimension" + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have dimensions at least as large as the corresponding framebuffer dimension" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "!(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891", - "text": " Each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format" + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02743", + "text": " If renderPass was specified with non-zero view masks, each element of pAttachments must have a layerCount greater than the index of the most significant bit set in any of those view masks" + } + ], + "(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02744", + "text": " An element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1" + } + ], + "(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02745", + "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is not referenced by fragmentDensityMapAttachment must have a layerCount greater than the index of the most significant bit set in any of those view masks" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746", + "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747", + "text": " If renderPass was not specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1" } ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531", - "text": " If renderPass was specified with non-zero view masks, layers must be greater than or equal to the greatest position of any bit included in any of those view masks" + "text": " If renderPass was specified with non-zero view masks, layers must be 1" } - ] - }, - "vkDestroyFramebuffer": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892", - "text": " All submitted commands that refer to framebuffer must have completed execution" + "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891", + "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03189", + "text": " If the imageless framebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT" }, { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893", - "text": " If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03190", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure" }, { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894", - "text": " If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03191", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to either zero or attachmentCount" }, { - "vuid": "VUID-vkDestroyFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03201", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter", - "text": " If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03202", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkDestroyFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03204", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent", - "text": " If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03205", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass" } - ] - }, - "vkCmdBeginRenderPass": { - "core": [ + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + "vuid": "VUID-VkFramebufferCreateInfo-flags-03192", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to width" }, { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897", + "vuid": "VUID-VkFramebufferCreateInfo-flags-03193", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to height" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03194", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to width, except for any element that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03195", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to height, except for any element that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03196", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03197", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198", + "text": " If multiview is enabled for renderPass, and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03199", + "text": " If multiview is not enabled for renderPass, and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to layers" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1+VK_KHR_multiview)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03200", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be greater than or equal to layers" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)": [ + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-03203", + "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + } + ] + }, + "VkFramebufferAttachmentsCreateInfo": { + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO" + }, + { + "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter", + "text": " If attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures" + } + ] + }, + "VkFramebufferAttachmentImageInfo": { + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO" + }, + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-flags-parameter", + "text": " flags must be a valid combination of VkImageCreateFlagBits values" + }, + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-parameter", + "text": " usage must be a valid combination of VkImageUsageFlagBits values" + }, + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask", + "text": " usage must not be 0" + }, + { + "vuid": "VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter", + "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" + } + ] + }, + "vkDestroyFramebuffer": { + "core": [ + { + "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892", + "text": " All submitted commands that refer to framebuffer must have completed execution" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893", + "text": " If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894", + "text": " If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter", + "text": " If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent", + "text": " If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCmdBeginRenderPass": { + "core": [ + { + "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" }, { @@ -4238,13 +5234,29 @@ "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532", "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" }, + { + "vuid": "VUID-vkCmdBeginRenderPass-pAttachments-04102", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pInputAttachments of any element of pSubpasses of renderPass must have image view format features containing at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass-pAttachments-04103", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pColorAttachments of any element of pSubpasses of renderPass must have image view format features containing VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass-pAttachments-04104", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pResolveAttachments of any element of pSubpasses of renderPass must have image view format features containing VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass-pAttachments-04105", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pDepthStencilAttachment of any element of pSubpasses of renderPass must have image view format features containing VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" }, { "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter", @@ -4278,70 +5290,110 @@ "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-01758", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-02842", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843", + "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + } ] }, - "vkCmdBeginRenderPass2KHR": { - "(VK_KHR_create_renderpass2)": [ + "vkCmdBeginRenderPass2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02779", + "text": " Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on" + }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03094", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03094", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03096", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03096", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03097", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03098", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03099", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099", "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03100", + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100", "text": " If any of the initialLayout members of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-srcStageMask-03101", + "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-03101", "text": " The srcStageMask and dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-framebuffer-02533", + "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533", "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdBeginRenderPass2-pAttachments-04106", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pInputAttachments of any element of pSubpasses of renderPass must have image view format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2-pAttachments-04107", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pColorAttachments of any element of pSubpasses of renderPass must have image view format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2-pAttachments-04108", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pResolveAttachments of any element of pSubpasses of renderPass must have image view format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + "vuid": "VUID-vkCmdBeginRenderPass2-pAttachments-04109", + "text": " Each element of the pAttachments of framebuffer that is referenced by any element of the pDepthStencilAttachment of any element of pSubpasses of renderPass must have image view format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfoKHR structure" + "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-recording", + "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter", + "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter", + "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-renderpass", + "vuid": "VUID-vkCmdBeginRenderPass2-renderpass", "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkCmdBeginRenderPass2KHR-bufferlevel", + "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel", "text": " commandBuffer must be a primary VkCommandBuffer" } + ], + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-02844", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845", + "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + } ] }, "VkRenderPassBeginInfo": { @@ -4352,7 +5404,7 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904", - "text": " renderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer." + "text": " renderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer" }, { "vuid": "VUID-VkRenderPassBeginInfo-sType-sType", @@ -4360,27 +5412,139 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-pNext-pNext", - "text": " 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 VkDeviceGroupRenderPassBeginInfo or VkRenderPassSampleLocationsBeginInfoEXT" + "text": " 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 VkDeviceGroupRenderPassBeginInfo, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, or VkRenderPassTransformBeginInfoQCOM" }, { "vuid": "VUID-VkRenderPassBeginInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkRenderPassBeginInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": " renderPass must be a valid VkRenderPass handle" }, { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter", - "text": " framebuffer must be a valid VkFramebuffer handle" + "text": " framebuffer must be a valid VkFramebuffer handle" }, { "vuid": "VUID-VkRenderPassBeginInfo-pClearValues-parameter", - "text": " If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions" + "text": " If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions" }, { "vuid": "VUID-VkRenderPassBeginInfo-commonparent", - "text": " Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "!(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02846", + "text": " renderArea.offset.x must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02847", + "text": " renderArea.offset.y must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02848", + "text": " renderArea.offset.x + renderArea.offset.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02849", + "text": " renderArea.offset.y + renderArea.offset.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02850", + "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02851", + "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02852", + "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.offset.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02853", + "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.offset.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02854", + "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the offset.x member of each element of pDeviceRenderAreas must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02855", + "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the offset.y member of each element of pDeviceRenderAreas must be greater than or equal to 0" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02856", + "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.x + offset.width of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02857", + "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.y + offset.height of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" + } + ], + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03207", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that did not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the pNext chain includes a VkRenderPassAttachmentBeginInfo structure, its attachmentCount must be zero" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03208", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentCount of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be equal to the value of VkFramebufferAttachmentsCreateInfo::attachmentImageInfoCount used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-02780", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must have been created on the same VkDevice as framebuffer and renderPass" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03210", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachments used to create framebuffer" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03217", + "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass" + } + ], + "(VK_QCOM_render_pass_transform)": [ + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02869", + "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-pNext-02870", + "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions" } ] }, @@ -4392,11 +5556,11 @@ }, { "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter", - "text": " If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures" + "text": " If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures" }, { "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter", - "text": " If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures" + "text": " If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures" } ] }, @@ -4408,7 +5572,7 @@ }, { "vuid": "VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" } ] }, @@ -4420,22 +5584,38 @@ }, { "vuid": "VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + } + ] + }, + "VkRenderPassTransformBeginInfoQCOM": { + "(VK_QCOM_render_pass_transform)": [ + { + "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871", + "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" + }, + { + "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872", + "text": " The renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM" + }, + { + "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM" } ] }, - "VkSubpassBeginInfoKHR": { - "(VK_KHR_create_renderpass2)": [ + "VkSubpassBeginInfo": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-VkSubpassBeginInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR" + "vuid": "VUID-VkSubpassBeginInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO" }, { - "vuid": "VUID-VkSubpassBeginInfoKHR-pNext-pNext", + "vuid": "VUID-VkSubpassBeginInfo-pNext-pNext", "text": " pNext must be NULL" }, { - "vuid": "VUID-VkSubpassBeginInfoKHR-contents-parameter", + "vuid": "VUID-VkSubpassBeginInfo-contents-parameter", "text": " contents must be a valid VkSubpassContents value" } ] @@ -4456,7 +5636,7 @@ }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908", - "text": " deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device." + "text": " deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device" }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType", @@ -4464,7 +5644,31 @@ }, { "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter", - "text": " If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures" + "text": " If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures" + } + ] + }, + "VkRenderPassAttachmentBeginInfo": { + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218", + "text": " Each element of pAttachments must only specify a single mip level" + }, + { + "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219", + "text": " Each element of pAttachments must have been created with the identity swizzle" + }, + { + "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114", + "text": " Each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" + }, + { + "vuid": "VUID-VkRenderPassAttachmentBeginInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO" + }, + { + "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter", + "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" } ] }, @@ -4472,15 +5676,15 @@ "core": [ { "vuid": "VUID-vkGetRenderAreaGranularity-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": " renderPass must be a valid VkRenderPass handle" }, { "vuid": "VUID-vkGetRenderAreaGranularity-pGranularity-parameter", - "text": " pGranularity must be a valid pointer to a VkExtent2D structure" + "text": " pGranularity must be a valid pointer to a VkExtent2D structure" }, { "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parent", @@ -4496,7 +5700,7 @@ }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdNextSubpass-contents-parameter", @@ -4526,44 +5730,44 @@ } ] }, - "vkCmdNextSubpass2KHR": { - "(VK_KHR_create_renderpass2)": [ + "vkCmdNextSubpass2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-vkCmdNextSubpass2KHR-None-03102", + "vuid": "VUID-vkCmdNextSubpass2-None-03102", "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfoKHR structure" + "vuid": "VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter", + "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfoKHR structure" + "vuid": "VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter", + "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-recording", + "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-renderpass", + "vuid": "VUID-vkCmdNextSubpass2-renderpass", "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdNextSubpass2KHR-bufferlevel", + "vuid": "VUID-vkCmdNextSubpass2-bufferlevel", "text": " commandBuffer must be a primary VkCommandBuffer" } ], - "(VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdNextSubpass2KHR-None-02350", + "vuid": "VUID-vkCmdNextSubpass2-None-02350", "text": " This command must not be recorded when transform feedback is active" } ] @@ -4576,7 +5780,7 @@ }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording", @@ -4602,52 +5806,52 @@ } ] }, - "vkCmdEndRenderPass2KHR": { - "(VK_KHR_create_renderpass2)": [ + "vkCmdEndRenderPass2": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-vkCmdEndRenderPass2KHR-None-03103", + "vuid": "VUID-vkCmdEndRenderPass2-None-03103", "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfoKHR structure" + "vuid": "VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter", + "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-recording", + "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-renderpass", + "vuid": "VUID-vkCmdEndRenderPass2-renderpass", "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdEndRenderPass2KHR-bufferlevel", + "vuid": "VUID-vkCmdEndRenderPass2-bufferlevel", "text": " commandBuffer must be a primary VkCommandBuffer" } ], - "(VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdEndRenderPass2KHR-None-02352", + "vuid": "VUID-vkCmdEndRenderPass2-None-02352", "text": " This command must not be recorded when transform feedback is active" } ] }, - "VkSubpassEndInfoKHR": { - "(VK_KHR_create_renderpass2)": [ + "VkSubpassEndInfo": { + "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ { - "vuid": "VUID-VkSubpassEndInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR" + "vuid": "VUID-VkSubpassEndInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO" }, { - "vuid": "VUID-VkSubpassEndInfoKHR-pNext-pNext", + "vuid": "VUID-VkSubpassEndInfo-pNext-pNext", "text": " pNext must be NULL" } ] @@ -4656,19 +5860,19 @@ "core": [ { "vuid": "VUID-vkCreateShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateShaderModule-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure" }, { "vuid": "VUID-vkCreateShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateShaderModule-pShaderModule-parameter", - "text": " pShaderModule must be a valid pointer to a VkShaderModule handle" + "text": " pShaderModule must be a valid pointer to a VkShaderModule handle" } ] }, @@ -4688,7 +5892,15 @@ }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01091", - "text": " If pCode declares any of the capabilities listed as optional in the SPIR-V Environment appendix, the corresponding feature(s) must be enabled." + "text": " If pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" + }, + { + "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04146", + "text": " pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix" + }, + { + "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04147", + "text": " If pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" }, { "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType", @@ -4698,6 +5910,10 @@ "vuid": "VUID-VkShaderModuleCreateInfo-pNext-pNext", "text": " pNext must be NULL or a pointer to a valid instance of VkShaderModuleValidationCacheCreateInfoEXT" }, + { + "vuid": "VUID-VkShaderModuleCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, { "vuid": "VUID-VkShaderModuleCreateInfo-flags-zerobitmask", "text": " flags must be 0" @@ -4724,7 +5940,7 @@ "(VK_NV_glsl_shader)": [ { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01376", - "text": " If pCode points to SPIR-V code, codeSize must be a multiple of 4" + "text": " If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01377", @@ -4732,11 +5948,11 @@ }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01378", - "text": " If pCode points to SPIR-V code, that code must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" + "text": " If pCode is a pointer to SPIR-V code, that code must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01379", - "text": " If pCode points to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification" + "text": " If pCode is a pointer to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification" } ] }, @@ -4748,7 +5964,7 @@ }, { "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" + "text": " validationCache must be a valid VkValidationCacheEXT handle" } ] }, @@ -4764,15 +5980,15 @@ }, { "vuid": "VUID-vkDestroyShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyShaderModule-shaderModule-parameter", - "text": " If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle" + "text": " If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle" }, { "vuid": "VUID-vkDestroyShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyShaderModule-shaderModule-parent", @@ -4784,7 +6000,7 @@ "(VK_NV_cooperative_matrix)": [ { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter", @@ -4792,7 +6008,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures" + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures" } ] }, @@ -4832,19 +6048,19 @@ "(VK_EXT_validation_cache)": [ { "vuid": "VUID-vkCreateValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure" + "text": " pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter", - "text": " pValidationCache must be a valid pointer to a VkValidationCacheEXT handle" + "text": " pValidationCache must be a valid pointer to a VkValidationCacheEXT handle" } ] }, @@ -4884,15 +6100,15 @@ }, { "vuid": "VUID-vkMergeValidationCachesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parameter", - "text": " dstCache must be a valid VkValidationCacheEXT handle" + "text": " dstCache must be a valid VkValidationCacheEXT handle" }, { "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles" + "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles" }, { "vuid": "VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength", @@ -4912,11 +6128,11 @@ "(VK_EXT_validation_cache)": [ { "vuid": "VUID-vkGetValidationCacheDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" + "text": " validationCache must be a valid VkValidationCacheEXT handle" }, { "vuid": "VUID-vkGetValidationCacheDataEXT-pDataSize-parameter", @@ -4944,15 +6160,15 @@ }, { "vuid": "VUID-vkDestroyValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parameter", - "text": " If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle" + "text": " If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parent", @@ -4972,23 +6188,23 @@ }, { "vuid": "VUID-vkCreateComputePipelines-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" }, { "vuid": "VUID-vkCreateComputePipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures" + "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures" }, { "vuid": "VUID-vkCreateComputePipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateComputePipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" }, { "vuid": "VUID-vkCreateComputePipelines-createInfoCount-arraylength", @@ -4998,6 +6214,12 @@ "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parent", "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873", + "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" + } ] }, "VkComputePipelineCreateInfo": { @@ -5040,7 +6262,11 @@ }, { "vuid": "VUID-VkComputePipelineCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": " 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 VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfoEXT" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkComputePipelineCreateInfo-flags-parameter", @@ -5048,15 +6274,59 @@ }, { "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter", - "text": " stage must be a valid VkPipelineShaderStageCreateInfo structure" + "text": " stage must be a valid VkPipelineShaderStageCreateInfo structure" }, { "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": " layout must be a valid VkPipelineLayout handle" }, { "vuid": "VUID-VkComputePipelineCreateInfo-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_KHR_pipeline_library)": [ + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03364", + "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + } + ], + "(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03365", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03366", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03367", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03368", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03369", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + }, + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-03370", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + } + ], + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkComputePipelineCreateInfo-flags-02874", + "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" + } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875", + "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" } ] }, @@ -5126,17 +6396,25 @@ "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00719", "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, it must write to FragDepth in all execution paths" }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-04145", + "text": " The SPIR-V code that was used to create module must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants." + }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT" }, { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkPipelineShaderStageCreateFlagBits values" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter", @@ -5144,7 +6422,7 @@ }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter", - "text": " module must be a valid VkShaderModule handle" + "text": " module must be a valid VkShaderModule handle" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter", @@ -5152,7 +6430,7 @@ }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter", - "text": " If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure" + "text": " If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure" } ], "(VK_NV_mesh_shader)": [ @@ -5166,11 +6444,11 @@ }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02093", - "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output vertex count, OutputVertices, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices." + "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output vertex count, OutputVertices, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02094", - "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output primitive count, OutputPrimitivesNV, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives." + "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output primitive count, OutputPrimitivesNV, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives" } ], "(VK_EXT_shader_stencil_export)": [ @@ -5178,53 +6456,113 @@ "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-01511", "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, it must write to FragStencilRefEXT in all execution paths" } - ] - }, - "vkCreateGraphicsPipelines": { - "core": [ - { - "vuid": "VUID-vkCreateGraphicsPipelines-flags-00720", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" - }, + ], + "(VK_EXT_subgroup_size_control)": [ { - "vuid": "VUID-vkCreateGraphicsPipelines-flags-00721", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02784", + "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set, the subgroupSizeControl feature must be enabled" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02785", + "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set, the computeFullSubgroups feature must be enabled" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02754", + "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02755", + "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02756", + "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSize and maxComputeWorkgroupSubgroups" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02757", + "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSize" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02758", + "text": " If flags has both the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT and VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize" }, { - "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02759", + "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set and flags does not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize" } ] }, - "VkGraphicsPipelineCreateInfo": { - "core": [ + "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT": { + "(VK_EXT_subgroup_size_control)": [ { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00722", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a graphics VkPipeline" + "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760", + "text": " requiredSubgroupSize must be a power-of-two integer" + }, + { + "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761", + "text": " requiredSubgroupSize must be greater or equal to minSubgroupSize" + }, + { + "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02762", + "text": " requiredSubgroupSize must be less than or equal to maxSubgroupSize" + }, + { + "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT" + } + ] + }, + "vkCreateGraphicsPipelines": { + "core": [ + { + "vuid": "VUID-vkCreateGraphicsPipelines-flags-00720", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-flags-00721", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter", + "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", + "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter", + "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", + "text": " createInfoCount must be greater than 0" + }, + { + "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent", + "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876", + "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" + } + ] + }, + "VkGraphicsPipelineCreateInfo": { + "core": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00722", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a graphics VkPipeline" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00723", @@ -5256,7 +6594,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00731", - "text": " If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure" + "text": " If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732", @@ -5304,39 +6642,31 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023", - "text": " If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the blendEnable member of the corresponding element of the pAttachment member of pColorBlendState must be VK_FALSE if the attached image’s format features does not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT." + "text": " If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the blendEnable member of the corresponding element of the pAttachment member of pColorBlendState must be VK_FALSE if the attached image’s format features does not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746", "text": " If rasterization is not disabled and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass" }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState::viewportCount valid VkViewport structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState::scissorCount VkRect2D structures" - }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749", "text": " If the wide lines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" + "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" + "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" + "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" + "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", @@ -5376,11 +6706,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext", - "text": " 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 VkPipelineDiscardRectangleStateCreateInfoEXT or VkPipelineRepresentativeFragmentTestStateCreateInfoNV" + "text": " 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 VkGraphicsPipelineShaderGroupsCreateInfoNV, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfoEXT, VkPipelineDiscardRectangleStateCreateInfoEXT, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-parameter", @@ -5388,23 +6718,23 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter", - "text": " pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" + "text": " pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter", - "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" + "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "text": " layout must be a valid VkPipelineLayout handle" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" + "text": " renderPass must be a valid VkRenderPass handle" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylength", @@ -5412,7 +6742,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent", - "text": " Each of basePipelineHandle, layout, and renderPass that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "text": " Each of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ], "!(VK_NV_mesh_shader)": [ @@ -5424,11 +6754,11 @@ "(VK_NV_mesh_shader)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", - "text": " The geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_NV or VK_SHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)." + "text": " The geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_NV or VK_SHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096", - "text": " The stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_NV." + "text": " The stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_NV" } ], "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [ @@ -5449,10 +6779,46 @@ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01757", "text": " If rasterization is not disabled and subpass uses a depth/stencil attachment in renderPass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP" + } + ], + "!(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565", - "text": " If pStages includes a fragment shader stage and an input attachment was referenced by the VkRenderPassInputAttachmentAspectCreateInfo at renderPass create time, its shader code must not read from any aspect that was not specified in the aspectMask of the corresponding VkInputAttachmentAspectReference structure." + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures" + } + ], + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378", + "text": " If the extendedDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE_EXT, VK_DYNAMIC_STATE_FRONT_FACE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, or VK_DYNAMIC_STATE_STENCIL_OP_EXT" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379", + "text": " If VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then viewportCount must be zero" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380", + "text": " If VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then scissorCount must be zero" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132", + "text": " If VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133", + "text": " If VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present" } ], "!(VK_EXT_depth_range_unrestricted)": [ @@ -5470,19 +6836,19 @@ "(VK_EXT_sample_locations)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples" + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", - "text": " If the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure chained to the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample" + "text": " If the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample" } ], "(VK_AMD_mixed_attachment_samples)": [ @@ -5501,14 +6867,20 @@ "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments" } ], + "(VK_NV_coverage_reduction_mode)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722", + "text": " If the VK_NV_coverage_reduction_mode extension is enabled, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + } + ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00760", - "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders." + "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00761", - "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader." + "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00762", @@ -5516,19 +6888,43 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00763", - "text": " If the renderPass has multiview enabled, then all shaders must not include variables decorated with the Layer built-in decoration in their interfaces." + "text": " If the renderPass has multiview enabled, then all shaders must not include variables decorated with the Layer built-in decoration in their interfaces" } ], "(VK_VERSION_1_1,VK_KHR_device_group)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764", - "text": " flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag." + "text": " flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565", + "text": " If pStages includes a fragment shader stage and an input attachment was referenced by an aspectMask at renderPass creation time, its shader code must only read from the aspects that were specified for that input attachment" } ], "(VK_NV_clip_space_w_scaling)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, chained to the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures" + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures" + } + ], + "(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" + } + ], + "(VK_EXT_discard_rectangles)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058", + "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures" } ], "(VK_EXT_transform_feedback)": [ @@ -5542,11 +6938,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", - "text": " If a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with identical Stream values that match the rasterizationStream" + "text": " If a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with identical Stream values that match the rasterizationStream" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", - "text": " If VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with a Stream value of zero, or must not specify the Stream decoration" + "text": " If VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must all be decorated with a Stream value of zero, or must not specify the Stream decoration" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", @@ -5556,7 +6952,67 @@ "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322", - "text": " If there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode." + "text": " If there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode" + } + ], + "(VK_EXT_line_rasterization)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766", + "text": " If the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and if rasterization is enabled, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", + "text": " If the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]" + } + ], + "(VK_KHR_pipeline_library)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03371", + "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + } + ], + "(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03372", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03373", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03374", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03375", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03376", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03377", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + } + ], + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877", + "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + } + ], + "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966", + "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution mode" + } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878", + "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" } ] }, @@ -5584,6 +7040,102 @@ } ] }, + "VkGraphicsPipelineShaderGroupsCreateInfoNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879", + "text": " groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880", + "text": " The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881", + "text": " The state of the first element of pGroups must match its equivalent within the parent’s VkGraphicsPipelineCreateInfo" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882", + "text": " Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886", + "text": " Each element of the pPipelines member of libraries must have been created with identical state to the pipeline currently created except the state that can be overriden by VkGraphicsShaderGroupCreateInfoNV" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter", + "text": " pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter", + "text": " If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-arraylength", + "text": " groupCount must be greater than 0" + } + ], + "(VK_NV_device_generated_commands)+!(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883", + "text": " All elements of pGroups must use the same shader stage combinations" + } + ], + "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884", + "text": " All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid" + }, + { + "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885", + "text": " Mesh and regular primitive shading stages cannot be mixed across pGroups" + } + ] + }, + "VkGraphicsShaderGroupCreateInfoNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888", + "text": " For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889", + "text": " For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890", + "text": " For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891", + "text": " For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter", + "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + }, + { + "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength", + "text": " stageCount must be greater than 0" + } + ] + }, "vkDestroyPipeline": { "core": [ { @@ -5600,15 +7152,15 @@ }, { "vuid": "VUID-vkDestroyPipeline-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-parameter", - "text": " If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle" + "text": " If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle" }, { "vuid": "VUID-vkDestroyPipeline-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyPipeline-pipeline-parent", @@ -5620,19 +7172,19 @@ "core": [ { "vuid": "VUID-vkCreatePipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkCreatePipelineCache-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure" + "text": " pCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure" }, { "vuid": "VUID-vkCreatePipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreatePipelineCache-pPipelineCache-parameter", - "text": " pPipelineCache must be a valid pointer to a VkPipelineCache handle" + "text": " pPipelineCache must be a valid pointer to a VkPipelineCache handle" } ] }, @@ -5655,13 +7207,19 @@ "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineCacheCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPipelineCacheCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkPipelineCacheCreateFlagBits values" }, { "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-parameter", "text": " If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes" } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892", + "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT" + } ] }, "vkMergePipelineCaches": { @@ -5672,15 +7230,15 @@ }, { "vuid": "VUID-vkMergePipelineCaches-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkMergePipelineCaches-dstCache-parameter", - "text": " dstCache must be a valid VkPipelineCache handle" + "text": " dstCache must be a valid VkPipelineCache handle" }, { "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles" + "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles" }, { "vuid": "VUID-vkMergePipelineCaches-srcCacheCount-arraylength", @@ -5700,11 +7258,11 @@ "core": [ { "vuid": "VUID-vkGetPipelineCacheData-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parameter", - "text": " pipelineCache must be a valid VkPipelineCache handle" + "text": " pipelineCache must be a valid VkPipelineCache handle" }, { "vuid": "VUID-vkGetPipelineCacheData-pDataSize-parameter", @@ -5732,15 +7290,15 @@ }, { "vuid": "VUID-vkDestroyPipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" }, { "vuid": "VUID-vkDestroyPipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parent", @@ -5760,7 +7318,7 @@ }, { "vuid": "VUID-VkSpecializationInfo-pMapEntries-parameter", - "text": " If mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures" + "text": " If mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures" }, { "vuid": "VUID-VkSpecializationInfo-pData-parameter", @@ -5776,6 +7334,26 @@ } ] }, + "VkPipelineLibraryCreateInfoKHR": { + "(VK_KHR_pipeline_library)": [ + { + "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381", + "text": " Each element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" + }, + { + "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR" + }, + { + "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter", + "text": " If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles" + } + ] + }, "vkCmdBindPipeline": { "core": [ { @@ -5796,11 +7374,11 @@ }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-00781", - "text": " If the variable multisample rate feature is not supported, pipeline is a graphics pipeline, the current subpass has no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline" + "text": " If the variable multisample rate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter", @@ -5808,7 +7386,7 @@ }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "text": " pipeline must be a valid VkPipeline handle" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording", @@ -5820,7 +7398,7 @@ }, { "vuid": "VUID-vkCmdBindPipeline-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" } ], "(VK_EXT_sample_locations)": [ @@ -5835,16268 +7413,21454 @@ "text": " This command must not be recorded when transform feedback is active" } ], - "(VK_NV_ray_tracing)": [ + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations" }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, the pipeline must be a ray tracing pipeline" + "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the pipeline must be a ray tracing pipeline" + } + ], + "(VK_KHR_pipeline_library)": [ + { + "vuid": "VUID-vkCmdBindPipeline-pipeline-03382", + "text": " The pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set" } ] }, - "vkGetShaderInfoAMD": { - "(VK_AMD_shader_info)": [ + "vkCmdBindPipelineShaderGroupNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-vkGetShaderInfoAMD-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893", + "text": " groupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines" }, { - "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894", + "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter", - "text": " shaderStage must be a valid VkShaderStageFlagBits value" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895", + "text": " The same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information" }, { - "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter", - "text": " infoType must be a valid VkShaderInfoTypeAMD value" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" }, { - "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter", - "text": " pInfoSize must be a valid pointer to a size_t value" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter", - "text": " If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" }, { - "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateRayTracingPipelinesNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-02402", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-02403", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commonparent", + "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkGetPipelineExecutablePropertiesKHR": { + "(VK_KHR_pipeline_executable_properties)": [ + { + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270", + "text": " pipelineExecutableInfo must be enabled" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures" + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271", + "text": " pipeline member of pPipelineInfo must have been created with device" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter", + "text": " pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter", + "text": " pExecutableCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter", + "text": " If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures" } ] }, - "VkRayTracingPipelineCreateInfoNV": { - "(VK_NV_ray_tracing)": [ + "VkPipelineInfoKHR": { + "(VK_KHR_pipeline_executable_properties)": [ { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02404", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" + "vuid": "VUID-VkPipelineInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02405", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" + "vuid": "VUID-VkPipelineInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02406", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" + "vuid": "VUID-VkPipelineInfoKHR-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" + } + ] + }, + "VkPipelineExecutablePropertiesKHR": { + "(VK_KHR_pipeline_executable_properties)": [ + { + "vuid": "VUID-VkPipelineExecutablePropertiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02407", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" + "vuid": "VUID-VkPipelineExecutablePropertiesKHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkGetPipelineExecutableStatisticsKHR": { + "(VK_KHR_pipeline_executable_properties)": [ + { + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272", + "text": " pipelineExecutableInfo must be enabled" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-02408", - "text": " The stage member of one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_NV" + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273", + "text": " pipeline member of pExecutableInfo must have been created with device" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-02409", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274", + "text": " pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR set in the flags field of VkGraphicsPipelineCreateInfo or VkComputePipelineCreateInfo" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-02410", - "text": " layout must be consistent with all shaders specified in pStages" + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-02411", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter", + "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-02412", - "text": " maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth" + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter", + "text": " pStatisticCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" - }, + "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter", + "text": " If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures" + } + ] + }, + "VkPipelineExecutableInfoKHR": { + "(VK_KHR_pipeline_executable_properties)": [ { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" + "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275", + "text": " executableIndex must be less than the number of executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", - "text": " pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures" + "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "vuid": "VUID-VkPipelineExecutableInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", - "text": " stageCount must be greater than 0" - }, + "vuid": "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" + } + ] + }, + "VkPipelineExecutableStatisticKHR": { + "(VK_KHR_pipeline_executable_properties)": [ { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength", - "text": " groupCount must be greater than 0" + "vuid": "VUID-VkPipelineExecutableStatisticKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR" }, { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkPipelineExecutableStatisticKHR-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "VkRayTracingShaderGroupCreateInfoNV": { - "(VK_NV_ray_tracing)": [ + "vkGetPipelineExecutableInternalRepresentationsKHR": { + "(VK_KHR_pipeline_executable_properties)": [ { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276", + "text": " pipelineExecutableInfo must be enabled" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277", + "text": " pipeline member of pExecutableInfo must have been created with device" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278", + "text": " pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR set in the flags field of VkGraphicsPipelineCreateInfo or VkComputePipelineCreateInfo" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417", - "text": " closestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter", + "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418", - "text": " anyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV" + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter", + "text": " pInternalRepresentationCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV" - }, + "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter", + "text": " If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures" + } + ] + }, + "VkPipelineExecutableInternalRepresentationKHR": { + "(VK_KHR_pipeline_executable_properties)": [ { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" }, { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter", - "text": " type must be a valid VkRayTracingShaderGroupTypeNV value" + "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "vkGetRayTracingShaderGroupHandlesNV": { - "(VK_NV_ray_tracing)": [ + "vkGetShaderInfoAMD": { + "(VK_AMD_shader_info)": [ { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-firstGroup-02419", - "text": " The sum of firstGroup and groupCount must be less than the number of shader groups in pipeline." + "vuid": "VUID-vkGetShaderInfoAMD-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-dataSize-02420", - "text": " dataSize must be at least VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize {times} groupCount" + "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter", + "text": " shaderStage must be a valid VkShaderStageFlagBits value" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter", + "text": " infoType must be a valid VkShaderInfoTypeAMD value" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter", + "text": " pInfoSize must be a valid pointer to a size_t value" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter", + "text": " If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes" }, { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parent", + "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent", "text": " pipeline must have been created, allocated, or retrieved from device" } ] }, - "vkCompileDeferredNV": { - "(VK_NV_ray_tracing)": [ + "VkPipelineCompilerControlCreateInfoAMD": { + "(VK_AMD_pipeline_compiler_control)": [ { - "vuid": "VUID-vkCompileDeferredNV-pipeline-02237", - "text": " pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV" + "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD" }, { - "vuid": "VUID-vkCompileDeferredNV-shader-02238", - "text": " shader must not have been called as a deferred compile before" + "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask", + "text": " compilerControlFlags must be 0" + } + ] + }, + "vkCreateRayTracingPipelinesNV": { + "core": [ + { + "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03415", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" }, { - "vuid": "VUID-vkCompileDeferredNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03416", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + } + ], + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903", + "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", + "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" }, { - "vuid": "VUID-vkCompileDeferredNV-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "VkAllocationCallbacks": { - "core": [ + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", + "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures" + }, { - "vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632", - "text": " pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633", - "text": " pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", + "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" }, { - "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634", - "text": " pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength", + "text": " createInfoCount must be greater than 0" }, { - "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635", - "text": " If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent", + "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" } ] }, - "vkGetPhysicalDeviceMemoryProperties": { + "vkCreateRayTracingPipelinesKHR": { "core": [ { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03415", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" }, { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure" + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03416", + "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" + }, + { + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-rayTracing-03455", + "text": " The rayTracing feature must be enabled" } - ] - }, - "vkGetPhysicalDeviceMemoryProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + ], + "(VK_EXT_pipeline_creation_cache_control)": [ { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903", + "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure" - } - ] - }, - "VkPhysicalDeviceMemoryProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameter", + "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" + }, { - "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2" + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameter", + "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures" }, { - "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT" - } - ] - }, - "VkPhysicalDeviceMemoryBudgetPropertiesEXT": { - "(VK_EXT_memory_budget)": [ + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, { - "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT" + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameter", + "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" + }, + { + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylength", + "text": " createInfoCount must be greater than 0" + }, + { + "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parent", + "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" } ] }, - "vkAllocateMemory": { + "VkRayTracingPipelineCreateInfoNV": { "core": [ { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713", - "text": " pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[pAllocateInfo->memoryTypeIndex].size as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03421", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" }, { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714", - "text": " pAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03422", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" }, { - "vuid": "VUID-vkAllocateMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03423", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03424", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" }, { - "vuid": "VUID-vkAllocateMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-03425", + "text": " The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" }, { - "vuid": "VUID-vkAllocateMemory-pMemory-parameter", - "text": " pMemory must be a valid pointer to a VkDeviceMemory handle" - } - ] - }, - "VkMemoryAllocateInfo": { - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426", + "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" + }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638", - "text": " allocationSize must be greater than 0" - } - ], - "(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03427", + "text": " layout must be consistent with all shaders specified in pStages" + }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639", - "text": " If the pNext chain contains an instance of VkExportMemoryAllocateInfo, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties::externalMemoryFeatures or VkExternalBufferProperties::externalMemoryProperties::externalMemoryFeatures, the pNext chain must contain an instance of ifdef::VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfo]" - } - ], - "(VK_KHR_external_memory)+(VK_NV_external_memory)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03428", + "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" + }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640", - "text": " If the pNext chain contains an instance of VkExportMemoryAllocateInfo, it must not contain an instance of VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457", + "text": " maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth" } ], - "(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)": [ + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641", - "text": " If the pNext chain contains an instance of VkImportMemoryWin32HandleInfoKHR, it must not contain an instance of VkImportMemoryWin32HandleInfoNV." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904", + "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" } ], - "(VK_KHR_external_memory_fd)": [ + "(VK_EXT_pipeline_creation_cache_control)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742", - "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the memory object being imported was created." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905", + "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" }, { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648", - "text": " 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." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957", + "text": " flags must not include both VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV and VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT at the same time" } ], - "(VK_KHR_external_memory+VK_KHR_device_group)": [ + "(VK_KHR_pipeline_library)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-None-00643", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match that specified when the memory object being imported was allocated." - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-None-00644", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the memory was originally allocated." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456", + "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" } ], - "(VK_KHR_external_memory_win32)": [ + "(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645", - "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03458", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743", - "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the memory object being imported was created." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03459", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00646", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, 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." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03460", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the external handle was extracted." - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872", - "text": " If the protected memory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT." - } - ], - "(VK_EXT_external_memory_host)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03461", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + }, { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744", - "text": " If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03462", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" }, { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745", - "text": " If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03463", + "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" } ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not contain an instance of VkMemoryDedicatedAllocateInfo or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineCreationFeedbackCreateInfoEXT" }, { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", - "text": " If the parameters do not define an import operation, and the pNext chain contains an instance of VkExportMemoryAllocateInfo with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext contains an instance of VkMemoryDedicatedAllocateInfo with image not equal to VK_NULL_HANDLE, then allocationSize must be 0, otherwise allocationSize must be greater than 0." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter", + "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer’s AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT or AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", + "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", + "text": " pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer’s AHardwareBuffer_Desc must be identical." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", + "text": " stageCount must be greater than 0" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength", + "text": " groupCount must be greater than 0" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes an instance of VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer’s AHardwareBuffer_Desc::usage." + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", + "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } - ], + ] + }, + "VkRayTracingPipelineCreateInfoKHR": { "core": [ { - "vuid": "VUID-VkMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext", - "text": " 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, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, or VkMemoryPriorityAllocateInfoEXT" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03422", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" }, { - "vuid": "VUID-VkMemoryAllocateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" - } - ] - }, - "VkMemoryDedicatedAllocateInfo": { - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03423", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" + }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03424", + "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01433", - "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425", + "text": " The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434", - "text": " If image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426", + "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01435", - "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03427", + "text": " layout must be consistent with all shaders specified in pStages" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", - "text": " If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428", + "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-maxRecursionDepth-03464", + "text": " maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxRecursionDepth" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470", + "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the anyHitShader of that element must not be VK_SHADER_UNUSED_KHR" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471", + "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the closestHitShader of that element must not be VK_SHADER_UNUSED_KHR" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent", - "text": " Both of buffer, and image that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)": [ + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPrimitiveCulling-03472", + "text": " If the rayTracingPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" + }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPrimitiveCulling-03473", + "text": " If the rayTracingPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" }, { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-libraries-02958", + "text": " If libraries.libraryCount is zero, then stageCount must not be zero" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-libraries-02959", + "text": " If libraries.libraryCount is zero, then groupCount must not be zero" } ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)": [ + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory." - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904", + "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" } ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)": [ + "(VK_EXT_pipeline_creation_cache_control)": [ { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797", - "text": " If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905", + "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" } - ] - }, - "VkDedicatedAllocationMemoryAllocateInfoNV": { - "(VK_NV_dedicated_allocation)": [ + ], + "(VK_KHR_pipeline_library)": [ { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465", + "text": " If flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650", - "text": " If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-libraryCount-03466", + "text": " If the libraryCount member of libraries is greater than 0, pLibraryInterface must not be NULL" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651", - "text": " If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03467", + "text": " Each element of the pLibraries member of libraries must have been created with the value of maxRecursionDepth equal to that in this pipeline" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652", - "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03468", + "text": " Each element of the pLibraries member of libraries must have been created with a layout that is compatible with the layout in this pipeline" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653", - "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" - }, + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03469", + "text": " Each element of the pLibraries member of libraries must have been created with values of the maxPayloadSize, maxAttributeSize, and maxCallableSize members of pLibraryInterface equal to those in this pipeline" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext", + "text": " 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 VkDeferredOperationInfoKHR or VkPipelineCreationFeedbackCreateInfoEXT" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent", - "text": " Both of buffer, and image that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-parameter", + "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" }, { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory." - } - ] - }, - "VkMemoryPriorityAllocateInfoEXT": { - "(VK_EXT_memory_priority)": [ - { - "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602", - "text": " priority must be between 0 and 1, inclusive" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter", + "text": " If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" }, { - "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT" - } - ] - }, - "VkExportMemoryAllocateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter", + "text": " If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures" }, { - "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-libraries-parameter", + "text": " libraries must be a valid VkPipelineLibraryCreateInfoKHR structure" }, { - "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" - } - ] - }, - "VkExportMemoryWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657", - "text": " If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, VkExportMemoryWin32HandleInfoKHR must not be in the pNext chain of VkMemoryAllocateInfo." + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter", + "text": " If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure" }, { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", + "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkImportMemoryWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties." - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659", - "text": " The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device." - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660", - "text": " If handleType is not 0, it must be defined as an NT handle or a global share handle." - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439", - "text": " If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL." - }, + "VkRayTracingShaderGroupCreateInfoNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440", - "text": " If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441", - "text": " if handle is not NULL, name must be NULL." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417", + "text": " closestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418", + "text": " anyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryWin32HandleKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV" }, { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter", + "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" } ] }, - "VkMemoryGetWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ + "VkRayTracingShaderGroupCreateInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then generalShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663", - "text": " If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664", - "text": " handleType must be defined as an NT handle or a global share handle." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477", + "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478", + "text": " closestHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479", + "text": " anyHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_KHR" }, { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryWin32HandlePropertiesKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665", - "text": " handle must be an external memory handle created outside of the Vulkan API." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingShaderGroupHandleCaptureReplayMixed-03480", + "text": " If VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingShaderGroupHandleCaptureReplayMixed is VK_FALSE then pShaderGroupCaptureReplayHandle must not be provided if it has not been provided on a previous call to ray tracing pipeline creation" }, { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666", - "text": " handleType must not be one of the handle types defined as opaque." + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingShaderGroupHandleCaptureReplayMixed-03481", + "text": " If VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingShaderGroupHandleCaptureReplayMixed is VK_FALSE then the caller must guarantee that no ray tracing pipeline creation commands with pShaderGroupCaptureReplayHandle provided execute simultaneously with ray tracing pipeline creation commands without pShaderGroupCaptureReplayHandle provided" }, { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter", - "text": " pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure" + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameter", + "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" } ] }, - "VkMemoryWin32HandlePropertiesKHR": { - "(VK_KHR_external_memory_win32)": [ + "VkRayTracingPipelineInterfaceCreateInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR" + "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext", + "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext", "text": " pNext must be NULL" } ] }, - "VkImportMemoryFdInfoKHR": { - "(VK_KHR_external_memory_fd)": [ + "vkGetRayTracingShaderGroupHandlesKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050", + "text": " firstGroup must be less than the number of shader groups in pipeline" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668", - "text": " The memory from which fd was exported must have been created on the same underlying physical device as device." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419", + "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669", - "text": " If handleType is not 0, it must be defined as a POSIX file descriptor handle." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420", + "text": " dataSize must be at least VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize {times} groupCount" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670", - "text": " If handleType is not 0, fd must be a valid handle of the type specified by handleType." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746", - "text": " The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520", - "text": " fd must obey any requirements listed for handleType in external memory handle types compatibility." + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR" + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength", + "text": " dataSize must be greater than 0" }, { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent", + "text": " pipeline must have been created, allocated, or retrieved from device" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_pipeline_library)": [ + { + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482", + "text": " pipeline must have not been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" } ] }, - "vkGetMemoryFdKHR": { - "(VK_KHR_external_memory_fd)": [ + "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkGetMemoryFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051", + "text": " firstGroup must be less than the number of shader groups in pipeline" }, { - "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483", + "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" }, { - "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to a int value" - } - ] - }, - "VkMemoryGetFdInfoKHR": { - "(VK_KHR_external_memory_fd)": [ + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484", + "text": " dataSize must be at least VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleCaptureReplaySize {times} groupCount" + }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created." + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingShaderGroupHandleCaptureReplay-03485", + "text": " VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingShaderGroupHandleCaptureReplay must be enabled to call this function" }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672", - "text": " handleType must be defined as a POSIX file descriptor handle." + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength", + "text": " dataSize must be greater than 0" }, { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent", + "text": " pipeline must have been created, allocated, or retrieved from device" } ] }, - "vkGetMemoryFdPropertiesKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673", - "text": " fd must be an external memory handle created outside of the Vulkan API." - }, + "vkCompileDeferredNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", - "text": " handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR." + "vuid": "VUID-vkCompileDeferredNV-pipeline-02237", + "text": " pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV" }, { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCompileDeferredNV-shader-02238", + "text": " shader must not have been called as a deferred compile before" }, { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-vkCompileDeferredNV-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter", - "text": " pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure" - } - ] - }, - "VkMemoryFdPropertiesKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR" + "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" }, { - "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCompileDeferredNV-pipeline-parent", + "text": " pipeline must have been created, allocated, or retrieved from device" } ] }, - "VkImportMemoryHostPointerInfoEXT": { - "(VK_EXT_external_memory_host)": [ + "VkPipelineCreationFeedbackCreateInfoEXT": { + "(VK_EXT_pipeline_creation_feedback)": [ { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747", - "text": " If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryPropertiesKHR" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02668", + "text": " When chained to VkGraphicsPipelineCreateInfo, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkGraphicsPipelineCreateInfo::stageCount" }, { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748", - "text": " If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02669", + "text": " When chained to VkComputePipelineCreateInfo, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal 1" }, { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineCreationFeedback-parameter", + "text": " pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedbackEXT structure" }, { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineStageCreationFeedbacks-parameter", + "text": " pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedbackEXT structures" }, { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" - }, + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-arraylength", + "text": " pipelineStageCreationFeedbackCount must be greater than 0" + } + ], + "(VK_EXT_pipeline_creation_feedback)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02670", + "text": " When chained to VkRayTracingPipelineCreateInfoKHR, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkRayTracingPipelineCreateInfoKHR::stageCount" + } + ], + "(VK_EXT_pipeline_creation_feedback)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02969", + "text": " When chained to VkRayTracingPipelineCreateInfoNV, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkRayTracingPipelineCreateInfoNV::stageCount" } ] }, - "vkGetMemoryHostPointerPropertiesEXT": { - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" - }, + "VkAllocationCallbacks": { + "core": [ { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + "vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632", + "text": " pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction" }, { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory" + "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633", + "text": " pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction" }, { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory" + "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634", + "text": " pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction" }, { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635", + "text": " If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks" + } + ] + }, + "vkGetPhysicalDeviceMemoryProperties": { + "core": [ { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter", - "text": " pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure" + "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter", + "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure" } ] }, - "VkMemoryHostPointerPropertiesEXT": { - "(VK_EXT_external_memory_host)": [ + "vkGetPhysicalDeviceMemoryProperties2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT" + "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter", + "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure" } ] }, - "VkImportAndroidHardwareBufferInfoANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880", - "text": " If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties." - }, + "VkPhysicalDeviceMemoryProperties2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881", - "text": " If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::format and AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers." + "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2" }, { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" + "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT" }, { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to a AHardwareBuffer value" + "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" } ] }, - "vkGetMemoryAndroidHardwareBufferANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure" - }, + "VkPhysicalDeviceMemoryBudgetPropertiesEXT": { + "(VK_EXT_memory_budget)": [ { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a valid pointer to a AHardwareBuffer value" + "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT" } ] }, - "VkMemoryGetAndroidHardwareBufferInfoANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vkAllocateMemory": { + "core": [ { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882", - "text": " VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfoKHR::handleTypes when memory was created." + "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713", + "text": " pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" }, { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883", - "text": " If the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory." + "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714", + "text": " pAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" }, { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" + "vuid": "VUID-vkAllocateMemory-maxMemoryAllocationCount-04101", + "text": " There must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device." }, { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkAllocateMemory-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - } - ] - }, - "vkGetAndroidHardwareBufferPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884", - "text": " buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage" + "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter", + "text": " pAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure" }, { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkAllocateMemory-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to a valid AHardwareBuffer value" - }, + "vuid": "VUID-vkAllocateMemory-pMemory-parameter", + "text": " pMemory must be a valid pointer to a VkDeviceMemory handle" + } + ], + "(VK_AMD_device_coherent_memory)": [ { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure" + "vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790", + "text": " If the deviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must not identify a memory type supporting VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD" } ] }, - "VkAndroidHardwareBufferPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "VkMemoryAllocateInfo": { + "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID" - }, + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638", + "text": " allocationSize must be greater than 0" + } + ], + "(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [ { - "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatPropertiesANDROID" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639", + "text": " If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures or VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a ifdef::VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfo]" } - ] - }, - "VkAndroidHardwareBufferFormatPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + ], + "(VK_KHR_external_memory)+(VK_NV_external_memory)": [ { - "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640", + "text": " If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure" } - ] - }, - "VkExportMemoryAllocateInfoNV": { - "(VK_NV_external_memory)": [ + ], + "(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)": [ { - "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641", + "text": " If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure" + } + ], + "(VK_KHR_external_memory_fd)": [ + { + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742", + "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the memory object being imported was created" }, { - "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648", + "text": " 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" } - ] - }, - "VkExportMemoryWin32HandleInfoNV": { - "(VK_NV_external_memory_win32)": [ + ], + "(VK_KHR_external_memory+VK_KHR_device_group)": [ { - "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV" + "vuid": "VUID-VkMemoryAllocateInfo-None-00643", + "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match that specified when the memory object being imported was allocated" }, { - "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + "vuid": "VUID-VkMemoryAllocateInfo-None-00644", + "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the memory was originally allocated" } - ] - }, - "VkImportMemoryWin32HandleInfoNV": { - "(VK_NV_external_memory_win32)": [ + ], + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327", - "text": " handleType must not have more than one bit set." + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645", + "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328", - "text": " handle must be a valid handle to memory, obtained as specified by handleType." + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743", + "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the memory object being imported was created" }, { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV" - }, + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647", + "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the external handle was extracted" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872", + "text": " If the protected memory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" } - ] - }, - "vkGetMemoryWin32HandleNV": { - "(VK_NV_external_memory_win32)": [ + ], + "(VK_EXT_external_memory_host)": [ { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326", - "text": " handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory" + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744", + "text": " If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745", + "text": " If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" + } + ], + "(VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02805", + "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" + } + ], + "(VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02806", + "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" + } + ], + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383", + "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384", + "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385", + "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask", - "text": " handleType must not be 0" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", + "text": " If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0, otherwise allocationSize must be greater than 0" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer’s AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER or AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE" }, { - "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ] - }, - "VkMemoryAllocateFlagsInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer" + }, { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask." + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer’s AHardwareBuffer_Desc must be identical" }, { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain" }, { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level" }, { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter", - "text": " flags must be a valid combination of VkMemoryAllocateFlagBits values" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer’s AHardwareBuffer_Desc::usage" } - ] - }, - "vkFreeMemory": { - "core": [ + ], + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ { - "vuid": "VUID-vkFreeMemory-memory-00677", - "text": " All submitted commands that refer to memory (via images or buffers) must have completed execution" + "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329", + "text": " If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" }, { - "vuid": "VUID-vkFreeMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryAllocateInfo-flags-03330", + "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled" }, { - "vuid": "VUID-vkFreeMemory-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkMemoryAllocateInfo-flags-03331", + "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled" }, { - "vuid": "VUID-vkFreeMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, + "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333", + "text": " If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" + } + ], + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host)": [ { - "vuid": "VUID-vkFreeMemory-memory-parent", - "text": " If memory is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332", + "text": " If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" } - ] - }, - "vkMapMemory": { + ], "core": [ { - "vuid": "VUID-vkMapMemory-memory-00678", - "text": " memory must not be currently host mapped" + "vuid": "VUID-VkMemoryAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO" }, { - "vuid": "VUID-vkMapMemory-offset-00679", - "text": " offset must be less than the size of memory" + "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext", + "text": " 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, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT" }, { - "vuid": "VUID-vkMapMemory-size-00680", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" - }, + "vuid": "VUID-VkMemoryAllocateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkMemoryDedicatedAllocateInfo": { + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ { - "vuid": "VUID-vkMapMemory-size-00681", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432", + "text": " At least one of image and buffer must be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkMapMemory-memory-00682", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434", + "text": " If image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags" }, { - "vuid": "VUID-vkMapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", + "text": " If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags" }, { - "vuid": "VUID-vkMapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO" }, { - "vuid": "VUID-vkMapMemory-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter", + "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" }, { - "vuid": "VUID-vkMapMemory-ppData-parameter", - "text": " ppData must be a valid pointer to a pointer value" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter", + "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkMapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent", + "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_KHR_device_group)": [ + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-vkMapMemory-memory-00683", - "text": " memory must not have been allocated with multiple instances." + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01433", + "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" + }, + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01435", + "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" } - ] - }, - "vkFlushMappedMemoryRanges": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964", + "text": " If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" }, { - "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-02965", + "text": " If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)": [ + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876", + "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" }, { - "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877", + "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" } - ] - }, - "vkInvalidateMappedMemoryRanges": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878", + "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" }, { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" - }, + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879", + "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" + "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797", + "text": " If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags" } ] }, - "VkMappedMemoryRange": { - "core": [ + "VkDedicatedAllocationMemoryAllocateInfoNV": { + "(VK_NV_dedicated_allocation)": [ { - "vuid": "VUID-VkMappedMemoryRange-memory-00684", - "text": " memory must be currently host mapped" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649", + "text": " At least one of image and buffer must be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkMappedMemoryRange-size-00685", - "text": " If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650", + "text": " If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE" }, { - "vuid": "VUID-VkMappedMemoryRange-size-00686", - "text": " If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651", + "text": " If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE" }, { - "vuid": "VUID-VkMappedMemoryRange-size-01389", - "text": " If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object." + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652", + "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" }, { - "vuid": "VUID-VkMappedMemoryRange-offset-00687", - "text": " offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653", + "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" }, { - "vuid": "VUID-VkMappedMemoryRange-size-01390", - "text": " If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory." + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV" }, { - "vuid": "VUID-VkMappedMemoryRange-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter", + "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" }, { - "vuid": "VUID-VkMappedMemoryRange-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter", + "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkMappedMemoryRange-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent", + "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "vkUnmapMemory": { - "core": [ + ], + "(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-vkUnmapMemory-memory-00689", - "text": " memory must be currently host mapped" + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654", + "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" }, { - "vuid": "VUID-vkUnmapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655", + "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" + } + ] + }, + "VkMemoryPriorityAllocateInfoEXT": { + "(VK_EXT_memory_priority)": [ { - "vuid": "VUID-vkUnmapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602", + "text": " priority must be between 0 and 1, inclusive" }, { - "vuid": "VUID-vkUnmapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT" } ] }, - "vkGetDeviceMemoryCommitment": { - "core": [ + "VkExportMemoryAllocateInfo": { + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT" + "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656", + "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" }, { - "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO" }, { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter", + "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + } + ] + }, + "VkExportMemoryWin32HandleInfoKHR": { + "(VK_KHR_external_memory_win32)": [ + { + "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657", + "text": " If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo" }, { - "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter", - "text": " pCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value" + "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR" }, { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter", + "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" } ] }, - "vkGetDeviceGroupPeerMemoryFeatures": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "VkImportMemoryWin32HandleInfoKHR": { + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691", - "text": " heapIndex must be less than memoryHeapCount" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658", + "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" }, { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692", - "text": " localDeviceIndex must be a valid device index" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659", + "text": " The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device" }, { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693", - "text": " remoteDeviceIndex must be a valid device index" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660", + "text": " If handleType is not 0, it must be defined as an NT handle or a global share handle" }, { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694", - "text": " localDeviceIndex must not equal remoteDeviceIndex" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439", + "text": " If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL" }, { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440", + "text": " If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType" }, { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter", - "text": " pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value" - } - ] - }, - "vkCreateBuffer": { - "core": [ + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661", + "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" + }, { - "vuid": "VUID-vkCreateBuffer-flags-00911", - "text": " If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441", + "text": " if handle is not NULL, name must be NULL" }, { - "vuid": "VUID-vkCreateBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518", + "text": " If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" }, { - "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519", + "text": " If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" }, { - "vuid": "VUID-vkCreateBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR" }, { - "vuid": "VUID-vkCreateBuffer-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a VkBuffer handle" + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter", + "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" } ] }, - "VkBufferCreateInfo": { - "core": [ + "vkGetMemoryWin32HandleKHR": { + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-VkBufferCreateInfo-size-00912", - "text": " size must be greater than 0" + "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter", + "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure" }, { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" - }, + "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter", + "text": " pHandle must be a valid pointer to a HANDLE value" + } + ] + }, + "VkMemoryGetWin32HandleInfoKHR": { + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-VkBufferCreateInfo-flags-00915", - "text": " If the sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662", + "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" }, { - "vuid": "VUID-VkBufferCreateInfo-flags-00916", - "text": " If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663", + "text": " If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType" }, { - "vuid": "VUID-VkBufferCreateInfo-flags-00917", - "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664", + "text": " handleType must be defined as an NT handle or a global share handle" }, { - "vuid": "VUID-VkBufferCreateInfo-flags-00918", - "text": " If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR" }, { - "vuid": "VUID-VkBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkBufferCreateInfo-pNext-pNext", - "text": " 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 VkBufferDeviceAddressCreateInfoEXT, VkDedicatedAllocationBufferCreateInfoNV, or VkExternalMemoryBufferCreateInfo" + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" }, { - "vuid": "VUID-VkBufferCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" - }, + "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + } + ] + }, + "vkGetMemoryWin32HandlePropertiesKHR": { + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-VkBufferCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkBufferCreateFlagBits values" + "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665", + "text": " handle must be an external memory handle created outside of the Vulkan API" }, { - "vuid": "VUID-VkBufferCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" + "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666", + "text": " handleType must not be one of the handle types defined as opaque" }, { - "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" - } - ], - "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + }, { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-01391", - "text": " 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" + "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter", + "text": " pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure" } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + ] + }, + "VkMemoryWin32HandlePropertiesKHR": { + "(VK_KHR_external_memory_win32)": [ { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419", - "text": " 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 vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR" + }, { - "vuid": "VUID-VkBufferCreateInfo-pNext-00920", - "text": " If the pNext chain contains an instance of VkExternalMemoryBufferCreateInfo, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes" + "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext", + "text": " pNext must be NULL" } - ], - "(VK_VERSION_1_1)": [ + ] + }, + "VkImportMemoryFdInfoKHR": { + "(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-VkBufferCreateInfo-flags-01887", - "text": " If the protected memory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT" + "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667", + "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" }, { - "vuid": "VUID-VkBufferCreateInfo-None-01888", - "text": " If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set" - } - ], - "(VK_NV_dedicated_allocation)": [ + "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668", + "text": " The memory from which fd was exported must have been created on the same underlying physical device as device" + }, { - "vuid": "VUID-VkBufferCreateInfo-pNext-01571", - "text": " If the pNext chain contains an instance of VkDedicatedAllocationBufferCreateInfoNV, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" - } - ], - "(VK_EXT_buffer_device_address)": [ + "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669", + "text": " If handleType is not 0, it must be defined as a POSIX file descriptor handle" + }, { - "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604", - "text": " If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT" + "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670", + "text": " If handleType is not 0, fd must be a valid handle of the type specified by handleType" }, { - "vuid": "VUID-VkBufferCreateInfo-flags-02605", - "text": " If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, the bufferDeviceAddressCaptureReplay feature must be enabled" + "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746", + "text": " The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility" }, { - "vuid": "VUID-VkBufferCreateInfo-usage-02606", - "text": " If usage includes VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, the bufferDeviceAddress feature must be enabled" - } - ] - }, - "VkDedicatedAllocationBufferCreateInfoNV": { - "(VK_NV_dedicated_allocation)": [ + "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520", + "text": " fd must obey any requirements listed for handleType in external memory handle types compatibility" + }, { - "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV" + "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR" + }, + { + "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter", + "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" } ] }, - "VkExternalMemoryBufferCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "vkGetMemoryFdKHR": { + "(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO" + "vuid": "VUID-vkGetMemoryFdKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" - } - ] - }, - "VkBufferDeviceAddressCreateInfoEXT": { - "(VK_EXT_buffer_device_address)": [ + "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter", + "text": " pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure" + }, { - "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" + "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter", + "text": " pFd must be a valid pointer to an int value" } ] }, - "vkDestroyBuffer": { - "core": [ - { - "vuid": "VUID-vkDestroyBuffer-buffer-00922", - "text": " All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution" - }, + "VkMemoryGetFdInfoKHR": { + "(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-vkDestroyBuffer-buffer-00923", - "text": " If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671", + "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" }, { - "vuid": "VUID-vkDestroyBuffer-buffer-00924", - "text": " If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL" + "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672", + "text": " handleType must be defined as a POSIX file descriptor handle" }, { - "vuid": "VUID-vkDestroyBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR" }, { - "vuid": "VUID-vkDestroyBuffer-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkDestroyBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" }, { - "vuid": "VUID-vkDestroyBuffer-buffer-parent", - "text": " If buffer is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" } ] }, - "vkCreateBufferView": { - "core": [ + "vkGetMemoryFdPropertiesKHR": { + "(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-vkCreateBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673", + "text": " fd must be an external memory handle created outside of the Vulkan API" }, { - "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure" + "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", + "text": " handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR" }, { - "vuid": "VUID-vkCreateBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateBufferView-pView-parameter", - "text": " pView must be a valid pointer to a VkBufferView handle" + "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + }, + { + "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter", + "text": " pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure" } ] }, - "VkBufferViewCreateInfo": { - "core": [ + "VkMemoryFdPropertiesKHR": { + "(VK_KHR_external_memory_fd)": [ { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00925", - "text": " offset must be less than the size of buffer" + "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR" }, { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00926", - "text": " offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" - }, + "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkImportMemoryHostPointerInfoEXT": { + "(VK_EXT_external_memory_host)": [ { - "vuid": "VUID-VkBufferViewCreateInfo-range-00928", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747", + "text": " If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties" }, { - "vuid": "VUID-VkBufferViewCreateInfo-range-00929", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748", + "text": " If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" }, { - "vuid": "VUID-VkBufferViewCreateInfo-range-00930", - "text": " If range is not equal to VK_WHOLE_SIZE, range divided by the texel block size of format, multiplied by the number of texels per texel block for that format (as defined in the Compatible Formats table), must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749", + "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" }, { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00931", - "text": " If range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750", + "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" }, { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932", - "text": " buffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751", + "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" }, { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933", - "text": " If buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, format must be supported for uniform texel buffers, as specified by the VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" }, { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934", - "text": " If buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, format must be supported for storage texel buffers, as specified by the VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" + } + ] + }, + "vkGetMemoryHostPointerPropertiesEXT": { + "(VK_EXT_external_memory_host)": [ + { + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752", + "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" }, { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753", + "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" }, { - "vuid": "VUID-VkBufferViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754", + "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory" }, { - "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755", + "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory" }, { - "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter", + "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" }, { - "vuid": "VUID-VkBufferViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter", + "text": " pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure" } ] }, - "vkDestroyBufferView": { - "core": [ - { - "vuid": "VUID-vkDestroyBufferView-bufferView-00936", - "text": " All submitted commands that refer to bufferView must have completed execution" - }, + "VkMemoryHostPointerPropertiesEXT": { + "(VK_EXT_external_memory_host)": [ { - "vuid": "VUID-vkDestroyBufferView-bufferView-00937", - "text": " If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT" }, { - "vuid": "VUID-vkDestroyBufferView-bufferView-00938", - "text": " If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL" - }, + "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkImportAndroidHardwareBufferInfoANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-vkDestroyBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880", + "text": " If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" }, { - "vuid": "VUID-vkDestroyBufferView-bufferView-parameter", - "text": " If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle" + "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881", + "text": " If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers" }, { - "vuid": "VUID-vkDestroyBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" }, { - "vuid": "VUID-vkDestroyBufferView-bufferView-parent", - "text": " If bufferView is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter", + "text": " buffer must be a valid pointer to an AHardwareBuffer value" } ] }, - "vkCreateImage": { - "core": [ - { - "vuid": "VUID-vkCreateImage-flags-00939", - "text": " If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" - }, - { - "vuid": "VUID-vkCreateImage-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vkGetMemoryAndroidHardwareBufferANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-vkCreateImage-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" + "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure" }, { - "vuid": "VUID-vkCreateImage-pImage-parameter", - "text": " pImage must be a valid pointer to a VkImage handle" + "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter", + "text": " pBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value" } ] }, - "VkImageCreateInfo": { + "VkMemoryGetAndroidHardwareBufferInfoANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882", + "text": " VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" + }, + { + "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883", + "text": " If the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory" + }, + { + "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" + }, + { + "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + } + ] + }, + "vkGetAndroidHardwareBufferPropertiesANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884", + "text": " buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage" + }, + { + "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter", + "text": " buffer must be a valid pointer to a valid AHardwareBuffer value" + }, + { + "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter", + "text": " pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure" + } + ] + }, + "VkAndroidHardwareBufferPropertiesANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID" + }, + { + "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatPropertiesANDROID" + }, + { + "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkAndroidHardwareBufferFormatPropertiesANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID" + } + ] + }, + "VkExportMemoryAllocateInfoNV": { + "(VK_NV_external_memory)": [ + { + "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV" + }, + { + "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter", + "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + } + ] + }, + "VkExportMemoryWin32HandleInfoNV": { + "(VK_NV_external_memory_win32)": [ + { + "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV" + }, + { + "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter", + "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" + } + ] + }, + "VkImportMemoryWin32HandleInfoNV": { + "(VK_NV_external_memory_win32)": [ + { + "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327", + "text": " handleType must not have more than one bit set" + }, + { + "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328", + "text": " handle must be a valid handle to memory, obtained as specified by handleType" + }, + { + "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV" + }, + { + "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter", + "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + } + ] + }, + "vkGetMemoryWin32HandleNV": { + "(VK_NV_external_memory_win32)": [ + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326", + "text": " handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter", + "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask", + "text": " handleType must not be 0" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter", + "text": " pHandle must be a valid pointer to a HANDLE value" + }, + { + "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ] + }, + "VkMemoryAllocateFlagsInfo": { + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675", + "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask" + }, + { + "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676", + "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero" + }, + { + "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO" + }, + { + "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter", + "text": " flags must be a valid combination of VkMemoryAllocateFlagBits values" + } + ] + }, + "VkMemoryOpaqueCaptureAddressAllocateInfo": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO" + } + ] + }, + "vkFreeMemory": { + "core": [ + { + "vuid": "VUID-vkFreeMemory-memory-00677", + "text": " All submitted commands that refer to memory (via images or buffers) must have completed execution" + }, + { + "vuid": "VUID-vkFreeMemory-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkFreeMemory-memory-parameter", + "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkFreeMemory-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkFreeMemory-memory-parent", + "text": " If memory is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkMapMemory": { + "core": [ + { + "vuid": "VUID-vkMapMemory-memory-00678", + "text": " memory must not be currently host mapped" + }, + { + "vuid": "VUID-vkMapMemory-offset-00679", + "text": " offset must be less than the size of memory" + }, + { + "vuid": "VUID-vkMapMemory-size-00680", + "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + }, + { + "vuid": "VUID-vkMapMemory-size-00681", + "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset" + }, + { + "vuid": "VUID-vkMapMemory-memory-00682", + "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" + }, + { + "vuid": "VUID-vkMapMemory-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkMapMemory-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkMapMemory-flags-zerobitmask", + "text": " flags must be 0" + }, + { + "vuid": "VUID-vkMapMemory-ppData-parameter", + "text": " ppData must be a valid pointer to a pointer value" + }, + { + "vuid": "VUID-vkMapMemory-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ], + "(VK_KHR_device_group)": [ + { + "vuid": "VUID-vkMapMemory-memory-00683", + "text": " memory must not have been allocated with multiple instances" + } + ] + }, + "vkFlushMappedMemoryRanges": { + "core": [ + { + "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter", + "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" + }, + { + "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength", + "text": " memoryRangeCount must be greater than 0" + } + ] + }, + "vkInvalidateMappedMemoryRanges": { + "core": [ + { + "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter", + "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" + }, + { + "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength", + "text": " memoryRangeCount must be greater than 0" + } + ] + }, + "VkMappedMemoryRange": { + "core": [ + { + "vuid": "VUID-VkMappedMemoryRange-memory-00684", + "text": " memory must be currently host mapped" + }, + { + "vuid": "VUID-VkMappedMemoryRange-size-00685", + "text": " If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory" + }, + { + "vuid": "VUID-VkMappedMemoryRange-size-00686", + "text": " If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory" + }, + { + "vuid": "VUID-VkMappedMemoryRange-size-01389", + "text": " If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object" + }, + { + "vuid": "VUID-VkMappedMemoryRange-offset-00687", + "text": " offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize" + }, + { + "vuid": "VUID-VkMappedMemoryRange-size-01390", + "text": " If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory" + }, + { + "vuid": "VUID-VkMappedMemoryRange-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE" + }, + { + "vuid": "VUID-VkMappedMemoryRange-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkMappedMemoryRange-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + } + ] + }, + "vkUnmapMemory": { + "core": [ + { + "vuid": "VUID-vkUnmapMemory-memory-00689", + "text": " memory must be currently host mapped" + }, + { + "vuid": "VUID-vkUnmapMemory-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkUnmapMemory-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkUnmapMemory-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetDeviceMemoryCommitment": { + "core": [ + { + "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690", + "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT" + }, + { + "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter", + "text": " pCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value" + }, + { + "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetDeviceGroupPeerMemoryFeatures": { + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691", + "text": " heapIndex must be less than memoryHeapCount" + }, + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692", + "text": " localDeviceIndex must be a valid device index" + }, + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693", + "text": " remoteDeviceIndex must be a valid device index" + }, + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694", + "text": " localDeviceIndex must not equal remoteDeviceIndex" + }, + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter", + "text": " pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value" + } + ] + }, + "vkGetDeviceMemoryOpaqueCaptureAddress": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334", + "text": " The bufferDeviceAddress feature must be enabled" + }, + { + "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335", + "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + }, + { + "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure" + } + ] + }, + "VkDeviceMemoryOpaqueCaptureAddressInfo": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336", + "text": " memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT" + }, + { + "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO" + }, + { + "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + } + ] + }, + "vkCreateBuffer": { + "core": [ + { + "vuid": "VUID-vkCreateBuffer-flags-00911", + "text": " If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" + }, + { + "vuid": "VUID-vkCreateBuffer-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateBuffer-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateBuffer-pBuffer-parameter", + "text": " pBuffer must be a valid pointer to a VkBuffer handle" + } + ] + }, + "VkBufferCreateInfo": { + "core": [ + { + "vuid": "VUID-VkBufferCreateInfo-size-00912", + "text": " size must be greater than 0" + }, + { + "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913", + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + }, + { + "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914", + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + }, + { + "vuid": "VUID-VkBufferCreateInfo-flags-00915", + "text": " If the sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + }, + { + "vuid": "VUID-VkBufferCreateInfo-flags-00916", + "text": " If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkBufferCreateInfo-flags-00917", + "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" + }, + { + "vuid": "VUID-VkBufferCreateInfo-flags-00918", + "text": " If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" + }, + { + "vuid": "VUID-VkBufferCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO" + }, + { + "vuid": "VUID-VkBufferCreateInfo-pNext-pNext", + "text": " 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 VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, or VkExternalMemoryBufferCreateInfo" + }, + { + "vuid": "VUID-VkBufferCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkBufferCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkBufferCreateFlagBits values" + }, + { + "vuid": "VUID-VkBufferCreateInfo-usage-parameter", + "text": " usage must be a valid combination of VkBufferUsageFlagBits values" + }, + { + "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask", + "text": " usage must not be 0" + }, + { + "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter", + "text": " sharingMode must be a valid VkSharingMode value" + } + ], + "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + { + "vuid": "VUID-VkBufferCreateInfo-sharingMode-01391", + "text": " 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" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + { + "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419", + "text": " 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 vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkBufferCreateInfo-pNext-00920", + "text": " If the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkBufferCreateInfo-flags-01887", + "text": " If the protected memory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT" + }, + { + "vuid": "VUID-VkBufferCreateInfo-None-01888", + "text": " If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set" + } + ], + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkBufferCreateInfo-pNext-01571", + "text": " If the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" + } + ], + "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [ + { + "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604", + "text": " If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" + } + ], + "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337", + "text": " If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" + } + ], + "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkBufferCreateInfo-flags-03338", + "text": " If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressCaptureReplay feature must be enabled" + } + ] + }, + "VkDedicatedAllocationBufferCreateInfoNV": { + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV" + } + ] + }, + "VkExternalMemoryBufferCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO" + }, + { + "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter", + "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + } + ] + }, + "VkBufferOpaqueCaptureAddressCreateInfo": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO" + } + ] + }, + "VkBufferDeviceAddressCreateInfoEXT": { + "(VK_EXT_buffer_device_address)": [ + { + "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" + } + ] + }, + "vkDestroyBuffer": { + "core": [ + { + "vuid": "VUID-vkDestroyBuffer-buffer-00922", + "text": " All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution" + }, + { + "vuid": "VUID-vkDestroyBuffer-buffer-00923", + "text": " If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyBuffer-buffer-00924", + "text": " If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyBuffer-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyBuffer-buffer-parameter", + "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkDestroyBuffer-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyBuffer-buffer-parent", + "text": " If buffer is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCreateBufferView": { + "core": [ + { + "vuid": "VUID-vkCreateBufferView-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateBufferView-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateBufferView-pView-parameter", + "text": " pView must be a valid pointer to a VkBufferView handle" + } + ] + }, + "VkBufferViewCreateInfo": { + "core": [ + { + "vuid": "VUID-VkBufferViewCreateInfo-offset-00925", + "text": " offset must be less than the size of buffer" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-range-00928", + "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-range-00929", + "text": " If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-range-00930", + "text": " If range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}range / (texel block size){rfloor} {times} (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-offset-00931", + "text": " If range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-range-04059", + "text": " If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}(size - offset) / (texel block size){rfloor} {times} (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932", + "text": " buffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933", + "text": " If buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, format must be supported for uniform texel buffers, as specified by the VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934", + "text": " If buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, format must be supported for storage texel buffers, as specified by the VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask", + "text": " flags must be 0" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-format-parameter", + "text": " format must be a valid VkFormat value" + } + ], + "!(VK_EXT_texel_buffer_alignment)": [ + { + "vuid": "VUID-VkBufferViewCreateInfo-offset-00926", + "text": " offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" + } + ], + "(VK_EXT_texel_buffer_alignment)": [ + { + "vuid": "VUID-VkBufferViewCreateInfo-offset-02749", + "text": " If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-02750", + "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" + }, + { + "vuid": "VUID-VkBufferViewCreateInfo-buffer-02751", + "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" + } + ] + }, + "vkDestroyBufferView": { + "core": [ + { + "vuid": "VUID-vkDestroyBufferView-bufferView-00936", + "text": " All submitted commands that refer to bufferView must have completed execution" + }, + { + "vuid": "VUID-vkDestroyBufferView-bufferView-00937", + "text": " If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyBufferView-bufferView-00938", + "text": " If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyBufferView-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyBufferView-bufferView-parameter", + "text": " If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle" + }, + { + "vuid": "VUID-vkDestroyBufferView-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyBufferView-bufferView-parent", + "text": " If bufferView is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCreateImage": { + "core": [ + { + "vuid": "VUID-vkCreateImage-flags-00939", + "text": " If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" + }, + { + "vuid": "VUID-vkCreateImage-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateImage-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateImage-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateImage-pImage-parameter", + "text": " pImage must be a valid pointer to a VkImage handle" + } + ] + }, + "VkImageCreateInfo": { + "core": [ + { + "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", + "text": " Each of the following values (as described in Image Creation Limits) must not be undefined imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts" + }, + { + "vuid": "VUID-VkImageCreateInfo-sharingMode-00941", + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + }, + { + "vuid": "VUID-VkImageCreateInfo-sharingMode-00942", + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-00944", + "text": " extent.width must be greater than 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-00945", + "text": " extent.height must be greater than 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-00946", + "text": " extent.depth must be greater than 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-mipLevels-00947", + "text": " mipLevels must be greater than 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948", + "text": " arrayLayers must be greater than 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-00949", + "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-02252", + "text": " extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-02253", + "text": " extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-extent-02254", + "text": " extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00954", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00956", + "text": " If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00957", + "text": " If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-mipLevels-00958", + "text": " mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" + }, + { + "vuid": "VUID-VkImageCreateInfo-mipLevels-02255", + "text": " mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256", + "text": " arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00961", + "text": " If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-02257", + "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false," + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-00963", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-00964", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-00965", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-00966", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-02258", + "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-00968", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-00969", + "text": " If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-01924", + "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-04121", + "text": " If tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00970", + "text": " If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00971", + "text": " If the sparse residency for 2D images feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00972", + "text": " If the sparse residency for 3D images feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00973", + "text": " If the sparse residency for images with 2 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00974", + "text": " If the sparse residency for images with 4 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00975", + "text": " If the sparse residency for images with 8 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-00976", + "text": " If the sparse residency for images with 16 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-00987", + "text": " 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" + }, + { + "vuid": "VUID-VkImageCreateInfo-None-01925", + "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set" + }, + { + "vuid": "VUID-VkImageCreateInfo-initialLayout-00993", + "text": " initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + }, + { + "vuid": "VUID-VkImageCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-pNext", + "text": " 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, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, or VkImageSwapchainCreateInfoKHR" + }, + { + "vuid": "VUID-VkImageCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkImageCreateFlagBits values" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageType-parameter", + "text": " imageType must be a valid VkImageType value" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-parameter", + "text": " format must be a valid VkFormat value" + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-parameter", + "text": " samples must be a valid VkSampleCountFlagBits value" + }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-parameter", + "text": " tiling must be a valid VkImageTiling value" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-parameter", + "text": " usage must be a valid combination of VkImageUsageFlagBits values" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask", + "text": " usage must not be 0" + }, + { + "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter", + "text": " sharingMode must be a valid VkSharingMode value" + }, + { + "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter", + "text": " initialLayout must be a valid VkImageLayout value" + } + ], + "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + { + "vuid": "VUID-VkImageCreateInfo-sharingMode-01392", + "text": " 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" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + { + "vuid": "VUID-VkImageCreateInfo-sharingMode-01420", + "text": " 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 vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" + } + ], + "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkImageCreateInfo-format-00943", + "text": " format must not be VK_FORMAT_UNDEFINED" + } + ], + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-01974", + "text": " If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-01975", + "text": " If the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02393", + "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02394", + "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02396", + "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02397", + "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02398", + "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-02557", + "text": " If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-02558", + "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-02559", + "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" + }, + { + "vuid": "VUID-VkImageCreateInfo-usage-02560", + "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02565", + "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02566", + "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02567", + "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02568", + "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-00950", + "text": " If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-01890", + "text": " If the protected memory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-None-01891", + "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-00988", + "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-00990", + "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes" + } + ], + "(VK_NV_external_memory+VK_NV_external_memory_capabilities)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-00991", + "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, 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" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421", + "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02259", + "text": " If flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-01572", + "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a block-compressed image format, an ETC compressed image format, or an ASTC compressed image format" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-01573", + "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-01443", + "text": " If the pNext chain includes a ifdef::VK_VERSION_1_1,VK_KHR_external_memory[VkExternalMemoryImageCreateInfo]" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageCreateInfo-format-02561", + "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02562", + "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, samples must be VK_SAMPLE_COUNT_1_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02563", + "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", + "text": " If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-01577", + "text": " If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)": [ + { + "vuid": "VUID-VkImageCreateInfo-format-02653", + "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)": [ + { + "vuid": "VUID-VkImageCreateInfo-format-02564", + "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, arrayLayers must be 1" + } + ], + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageCreateInfo-tiling-02261", + "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02262", + "text": " If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-02353", + "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" + } + ], + "(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-01533", + "text": " If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format" + } + ], + "(VK_EXT_separate_stencil_usage)": [ + { + "vuid": "VUID-VkImageCreateInfo-format-02795", + "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02796", + "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02797", + "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02798", + "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-Format-02536", + "text": " If Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02537", + "text": " If format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" + }, + { + "vuid": "VUID-VkImageCreateInfo-format-02538", + "text": " If the multisampled storage images feature is not enabled, format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" + } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-VkImageCreateInfo-flags-02050", + "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02051", + "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02052", + "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1" + }, + { + "vuid": "VUID-VkImageCreateInfo-flags-02053", + "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageCreateInfo-imageType-02082", + "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, imageType must be VK_IMAGE_TYPE_2D" + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-02083", + "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, samples must be VK_SAMPLE_COUNT_1_BIT" + }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-02084", + "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL" + } + ] + }, + "VkImageStencilUsageCreateInfo": { + "(VK_EXT_separate_stencil_usage)": [ + { + "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539", + "text": " If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageStencilUsageCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO" + }, + { + "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter", + "text": " stencilUsage must be a valid combination of VkImageUsageFlagBits values" + }, + { + "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask", + "text": " stencilUsage must not be 0" + } + ] + }, + "VkDedicatedAllocationImageCreateInfoNV": { + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994", + "text": " If dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + }, + { + "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV" + } + ] + }, + "VkExternalMemoryImageCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO" + }, + { + "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter", + "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + }, + { + "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-requiredbitmask", + "text": " handleTypes must not be 0" + } + ] + }, + "VkExternalMemoryImageCreateInfoNV": { + "(VK_NV_external_memory)": [ + { + "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV" + }, + { + "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter", + "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" + } + ] + }, + "VkExternalFormatANDROID": { + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894", + "text": " externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID" + }, + { + "vuid": "VUID-VkExternalFormatANDROID-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID" + } + ] + }, + "VkImageSwapchainCreateInfoKHR": { + "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + { + "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995", + "text": " If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain" + }, + { + "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR" + }, + { + "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter", + "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" + } + ] + }, + "VkImageFormatListCreateInfo": { + "(VK_VERSION_1_2,VK_KHR_image_format_list)": [ + { + "vuid": "VUID-VkImageFormatListCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO" + }, + { + "vuid": "VUID-VkImageFormatListCreateInfo-pViewFormats-parameter", + "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" + } + ] + }, + "VkImageDrmFormatModifierListCreateInfoEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263", + "text": " Each modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter", + "text": " pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength", + "text": " drmFormatModifierCount must be greater than 0" + } + ] + }, + "VkImageDrmFormatModifierExplicitCreateInfoEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264", + "text": " drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265", + "text": " drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267", + "text": " For each element of pPlaneLayouts, size must be 0" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268", + "text": " For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269", + "text": " For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter", + "text": " If drmFormatModifierPlaneCount is not 0, pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures" + } + ] + }, + "vkGetImageSubresourceLayout": { + "!(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-vkGetImageSubresourceLayout-image-00996", + "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR" + } + ], + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-vkGetImageSubresourceLayout-image-02270", + "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", + "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier" + } + ], + "core": [ + { + "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997", + "text": " The aspectMask member of pSubresource must only have a single bit set" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", + "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", + "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter", + "text": " pSubresource must be a valid pointer to a valid VkImageSubresource structure" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter", + "text": " pLayout must be a valid pointer to a VkSubresourceLayout structure" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-image-parent", + "text": " image must have been created, allocated, or retrieved from device" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkGetImageSubresourceLayout-format-01581", + "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with two planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" + }, + { + "vuid": "VUID-vkGetImageSubresourceLayout-format-01582", + "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with three planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT" + } + ], + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", + "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + } + ] + }, + "VkImageSubresource": { + "core": [ + { + "vuid": "VUID-VkImageSubresource-aspectMask-parameter", + "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + }, + { + "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask", + "text": " aspectMask must not be 0" + } + ] + }, + "vkGetImageDrmFormatModifierPropertiesEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272", + "text": " image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + }, + { + "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter", + "text": " pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure" + }, + { + "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent", + "text": " image must have been created, allocated, or retrieved from device" + } + ] + }, + "VkImageDrmFormatModifierPropertiesEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT" + }, + { + "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkDestroyImage": { + "core": [ + { + "vuid": "VUID-vkDestroyImage-image-01000", + "text": " All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution" + }, + { + "vuid": "VUID-vkDestroyImage-image-01001", + "text": " If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyImage-image-01002", + "text": " If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyImage-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyImage-image-parameter", + "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + }, + { + "vuid": "VUID-vkDestroyImage-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyImage-image-parent", + "text": " If image is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCreateImageView": { + "core": [ + { + "vuid": "VUID-vkCreateImageView-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateImageView-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateImageView-pView-parameter", + "text": " pView must be a valid pointer to a VkImageView handle" + } + ] + }, + "VkImageViewCreateInfo": { + "core": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01003", + "text": " If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-01004", + "text": " If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-None-02273", + "text": " The format features of the resultant image view must contain at least one bit" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-usage-02274", + "text": " If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-usage-02275", + "text": " If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-usage-02276", + "text": " If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-usage-02277", + "text": " If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-usage-02652", + "text": " If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view’s format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478", + "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718", + "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-01020", + "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021", + "text": " subresourceRange and viewType must be compatible with the image, as described in the compatibility table" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-02960", + "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-02961", + "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-02962", + "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-02963", + "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext", + "text": " 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 VkImageViewASTCDecodeModeEXT, VkImageViewUsageCreateInfo, or VkSamplerYcbcrConversionInfo" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkImageViewCreateFlagBits values" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter", + "text": " viewType must be a valid VkImageViewType value" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-format-parameter", + "text": " format must be a valid VkFormat value" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-components-parameter", + "text": " components must be a valid VkComponentMapping structure" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter", + "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01005", + "text": " If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-01482", + "text": " If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01483", + "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02724", + "text": " If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725", + "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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 depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing" + } + ], + "!(VK_EXT_fragment_density_map)+!(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01007", + "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" + } + ], + "!(VK_EXT_fragment_density_map)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02085", + "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_EXT_fragment_density_map)+!(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02569", + "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02570", + "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, or VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02571", + "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-flags-02572", + "text": " If dynamic fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-flags-04116", + "text": " If flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + } + ], + "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01480", + "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01719", + "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" + } + ], + "!(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01018", + "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01759", + "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + } + ], + "!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01760", + "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01761", + "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01583", + "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-01584", + "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the levelCount and layerCount members of subresourceRange must both be 1" + } + ], + "(VK_VERSION_1_2,VK_KHR_image_format_list)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-01585", + "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-04082", + "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-flags-04083", + "text": " If flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01586", + "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-01762", + "text": " If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-01970", + "text": " If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle" + } + ], + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-01019", + "text": " 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" + } + ], + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02399", + "text": " If image has an external format, format must be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02400", + "text": " If image has an external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02401", + "text": " If image has an external format, all members of components must be the identity swizzle" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-image-02086", + "text": " If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02087", + "text": " If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT" + } + ], + "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-flags-03567", + "text": " If deferred fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-flags-03568", + "text": " If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-03569", + "text": " If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_EXT_separate_stencil_usage)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-02661", + "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_separate_stencil_usage)": [ + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-02662", + "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-02663", + "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo instance must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-pNext-02664", + "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + } + ] + }, + "VkImageViewUsageCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + { + "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO" + }, + { + "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter", + "text": " usage must be a valid combination of VkImageUsageFlagBits values" + }, + { + "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask", + "text": " usage must not be 0" + } + ] + }, + "VkImageSubresourceRange": { + "core": [ + { + "vuid": "VUID-VkImageSubresourceRange-levelCount-01720", + "text": " If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0" + }, + { + "vuid": "VUID-VkImageSubresourceRange-layerCount-01721", + "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0" + }, + { + "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter", + "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + }, + { + "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask", + "text": " aspectMask must not be 0" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670", + "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + } + ], + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278", + "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" + } + ] + }, + "VkComponentMapping": { + "core": [ + { + "vuid": "VUID-VkComponentMapping-r-parameter", + "text": " r must be a valid VkComponentSwizzle value" + }, + { + "vuid": "VUID-VkComponentMapping-g-parameter", + "text": " g must be a valid VkComponentSwizzle value" + }, + { + "vuid": "VUID-VkComponentMapping-b-parameter", + "text": " b must be a valid VkComponentSwizzle value" + }, + { + "vuid": "VUID-VkComponentMapping-a-parameter", + "text": " a must be a valid VkComponentSwizzle value" + } + ] + }, + "VkImageViewASTCDecodeModeEXT": { + "(VK_EXT_astc_decode_mode)": [ + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230", + "text": " decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231", + "text": " If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232", + "text": " If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-04084", + "text": " format of the image view must be one of the ASTC Compressed Image Formats" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter", + "text": " decodeMode must be a valid VkFormat value" + } + ] + }, + "vkDestroyImageView": { + "core": [ + { + "vuid": "VUID-vkDestroyImageView-imageView-01026", + "text": " All submitted commands that refer to imageView must have completed execution" + }, + { + "vuid": "VUID-vkDestroyImageView-imageView-01027", + "text": " If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyImageView-imageView-01028", + "text": " If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyImageView-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyImageView-imageView-parameter", + "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + }, + { + "vuid": "VUID-vkDestroyImageView-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyImageView-imageView-parent", + "text": " If imageView is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetImageViewHandleNVX": { + "(VK_NVX_image_view_handle)": [ + { + "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure" + } + ] + }, + "VkImageViewHandleInfoNVX": { + "(VK_NVX_image_view_handle)": [ + { + "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654", + "text": " descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655", + "text": " sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter", + "text": " imageView must be a valid VkImageView handle" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter", + "text": " descriptorType must be a valid VkDescriptorType value" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter", + "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + }, + { + "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent", + "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkGetImageViewAddressNVX": { + "(VK_NVX_image_view_handle)": [ + { + "vuid": "VUID-vkGetImageViewAddressNVX-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parameter", + "text": " imageView must be a valid VkImageView handle" + }, + { + "vuid": "VUID-vkGetImageViewAddressNVX-pProperties-parameter", + "text": " pProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure" + }, + { + "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parent", + "text": " imageView must have been created, allocated, or retrieved from device" + } + ] + }, + "VkImageViewAddressPropertiesNVX": { + "(VK_NVX_image_view_handle)": [ + { + "vuid": "VUID-VkImageViewAddressPropertiesNVX-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX" + }, + { + "vuid": "VUID-VkImageViewAddressPropertiesNVX-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkGetBufferMemoryRequirements": { + "core": [ + { + "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" + }, + { + "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent", + "text": " buffer must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetImageMemoryRequirements": { + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkGetImageMemoryRequirements-image-01588", + "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set" + } + ], + "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkGetImageMemoryRequirements-image-04004", + "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + } + ], + "core": [ + { + "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" + }, + { + "vuid": "VUID-vkGetImageMemoryRequirements-image-parent", + "text": " image must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetBufferMemoryRequirements2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + { + "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure" + }, + { + "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + } + ] + }, + "VkBufferMemoryRequirementsInfo2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + { + "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2" + }, + { + "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + } + ] + }, + "vkGetImageMemoryRequirements2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + { + "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure" + }, + { + "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + } + ] + }, + "VkImageMemoryRequirementsInfo2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589", + "text": " If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + }, + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590", + "text": " If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279", + "text": " If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + }, + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280", + "text": " If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01591", + "text": " If image was created with a single-plane format, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897", + "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2" + }, + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo" + }, + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-parameter", + "text": " image must be a valid VkImage handle" + } + ] + }, + "VkImagePlaneMemoryRequirementsInfo": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281", + "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)" + }, + { + "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO" + }, + { + "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter", + "text": " planeAspect must be a valid VkImageAspectFlagBits value" + } + ], + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282", + "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" + } + ] + }, + "VkMemoryRequirements2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + { + "vuid": "VUID-VkMemoryRequirements2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2" + }, + { + "vuid": "VUID-VkMemoryRequirements2-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements" + }, + { + "vuid": "VUID-VkMemoryRequirements2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkMemoryDedicatedRequirements": { + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS" + } + ] + }, + "vkBindBufferMemory": { + "core": [ + { + "vuid": "VUID-vkBindBufferMemory-buffer-01029", + "text": " buffer must not already be backed by a memory object" + }, + { + "vuid": "VUID-vkBindBufferMemory-buffer-01030", + "text": " buffer must not have been created with any sparse memory binding flags" + }, + { + "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031", + "text": " memoryOffset must be less than the size of memory" + }, + { + "vuid": "VUID-vkBindBufferMemory-memory-01035", + "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + }, + { + "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036", + "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + }, + { + "vuid": "VUID-vkBindBufferMemory-size-01037", + "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + }, + { + "vuid": "VUID-vkBindBufferMemory-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkBindBufferMemory-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkBindBufferMemory-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkBindBufferMemory-buffer-parent", + "text": " buffer must have been created, allocated, or retrieved from device" + }, + { + "vuid": "VUID-vkBindBufferMemory-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindBufferMemory-buffer-01444", + "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" + }, + { + "vuid": "VUID-vkBindBufferMemory-memory-01508", + "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkBindBufferMemory-None-01898", + "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + }, + { + "vuid": "VUID-vkBindBufferMemory-None-01899", + "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + } + ], + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindBufferMemory-buffer-01038", + "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" + } + ], + "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindBufferMemory-buffer-01039", + "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-vkBindBufferMemory-memory-02726", + "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkBindBufferMemory-memory-02727", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkBindBufferMemory-memory-02985", + "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + }, + { + "vuid": "VUID-vkBindBufferMemory-memory-02986", + "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddress-03339", + "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + } + ] + }, + "vkBindBufferMemory2": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + { + "vuid": "VUID-vkBindBufferMemory2-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter", + "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures" + }, + { + "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength", + "text": " bindInfoCount must be greater than 0" + } + ] + }, + "VkBindBufferMemoryInfo": { + "core": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01029", + "text": " buffer must not already be backed by a memory object" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01030", + "text": " buffer must not have been created with any sparse memory binding flags" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01031", + "text": " memoryOffset must be less than the size of memory" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-01035", + "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01036", + "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-size-01037", + "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444", + "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508", + "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-None-01898", + "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-None-01899", + "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + } + ], + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038", + "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" + } + ], + "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01039", + "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-02726", + "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-02727", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985", + "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986", + "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" + } + ], + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339", + "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605", + "text": " If the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + } + ], + "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + { + "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-VkBindBufferMemoryInfo-commonparent", + "text": " Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkBindBufferMemoryDeviceGroupInfo": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606", + "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + }, + { + "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607", + "text": " All elements of pDeviceIndices must be valid device indices" + }, + { + "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO" + }, + { + "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter", + "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + } + ] + }, + "vkBindImageMemory": { + "core": [ + { + "vuid": "VUID-vkBindImageMemory-image-01044", + "text": " image must not already be backed by a memory object" + }, + { + "vuid": "VUID-vkBindImageMemory-image-01045", + "text": " image must not have been created with any sparse memory binding flags" + }, + { + "vuid": "VUID-vkBindImageMemory-memoryOffset-01046", + "text": " memoryOffset must be less than the size of memory" + }, + { + "vuid": "VUID-vkBindImageMemory-memory-01047", + "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + }, + { + "vuid": "VUID-vkBindImageMemory-memoryOffset-01048", + "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + }, + { + "vuid": "VUID-vkBindImageMemory-size-01049", + "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" + }, + { + "vuid": "VUID-vkBindImageMemory-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkBindImageMemory-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-vkBindImageMemory-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-vkBindImageMemory-image-parent", + "text": " image must have been created, allocated, or retrieved from device" + }, + { + "vuid": "VUID-vkBindImageMemory-memory-parent", + "text": " memory must have been created, allocated, or retrieved from device" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindImageMemory-image-01445", + "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ + { + "vuid": "VUID-vkBindImageMemory-memory-01509", + "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ + { + "vuid": "VUID-vkBindImageMemory-memory-02628", + "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + }, + { + "vuid": "VUID-vkBindImageMemory-memory-02629", + "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkBindImageMemory-None-01901", + "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + }, + { + "vuid": "VUID-vkBindImageMemory-None-01902", + "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + } + ], + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindImageMemory-image-01050", + "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" + } + ], + "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-vkBindImageMemory-image-01051", + "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-vkBindImageMemory-memory-02728", + "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkBindImageMemory-memory-02729", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-vkBindImageMemory-memory-02989", + "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + }, + { + "vuid": "VUID-vkBindImageMemory-memory-02990", + "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkBindImageMemory-image-01608", + "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set" + } + ] + }, + "vkBindImageMemory2": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkBindImageMemory2-pBindInfos-02858", + "text": " If any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos" + }, + { + "vuid": "VUID-vkBindImageMemory2-pBindInfos-04006", + "text": " pBindInfos must not refer to the same image subresource more than once" + } + ], + "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + { + "vuid": "VUID-vkBindImageMemory2-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter", + "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures" + }, + { + "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength", + "text": " bindInfoCount must be greater than 0" + } + ] + }, + "VkBindImageMemoryInfo": { + "core": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01044", + "text": " image must not already be backed by a memory object" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01045", + "text": " image must not have been created with any sparse memory binding flags" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01046", + "text": " memoryOffset must be less than the size of memory" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01445", + "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-01509", + "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + } + ], + "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02628", + "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02629", + "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-None-01901", + "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-None-01902", + "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + } + ], + "(VK_NV_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01050", + "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" + } + ], + "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01051", + "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02728", + "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02729", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02989", + "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-02990", + "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" + } + ], + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-01612", + "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01613", + "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-01614", + "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615", + "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616", + "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617", + "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618", + "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619", + "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620", + "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621", + "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" + } + ], + "!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-memory-01625", + "text": " memory must be a valid VkDeviceMemory handle" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01626", + "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01627", + "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628", + "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629", + "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-image-01630", + "text": " If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a VkBindImageMemorySwapchainInfoKHR structure containing the same swapchain handle" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631", + "text": " If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632", + "text": " If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle" + } + ], + "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + { + "vuid": "VUID-VkBindImageMemoryInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext", + "text": " 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 VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-image-parameter", + "text": " image must be a valid VkImage handle" + }, + { + "vuid": "VUID-VkBindImageMemoryInfo-commonparent", + "text": " Both of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkBindImageMemoryDeviceGroupInfo": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633", + "text": " At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634", + "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635", + "text": " All elements of pDeviceIndices must be valid device indices" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636", + "text": " splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637", + "text": " Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638", + "text": " The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639", + "text": " The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640", + "text": " The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641", + "text": " The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the width of the image subresource" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter", + "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + }, + { + "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter", + "text": " If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures" + } + ] + }, + "VkBindImageMemorySwapchainInfoKHR": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + { + "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644", + "text": " imageIndex must be less than the number of images in swapchain" + }, + { + "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR" + }, + { + "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" + } + ] + }, + "VkBindImagePlaneMemoryInfo": { + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283", + "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)" + }, + { + "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO" + }, + { + "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter", + "text": " planeAspect must be a valid VkImageAspectFlagBits value" + } + ], + "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284", + "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" + } + ] + }, + "vkCreateAccelerationStructureNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNV-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", + "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle" + } + ] + }, + "VkAccelerationStructureCreateInfoNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421", + "text": " If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter", + "text": " info must be a valid VkAccelerationStructureInfoNV structure" + } + ] + }, + "VkAccelerationStructureInfoNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422", + "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423", + "text": " instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424", + "text": " The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-type-02786", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then the geometryType member of each geometry in pGeometries must be the same" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592", + "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-scratch-02781", + "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-instanceData-02782", + "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter", + "text": " type must be a valid VkAccelerationStructureTypeNV value" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter", + "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter", + "text": " If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures" + } + ] + }, + "vkCreateAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-rayTracing-03487", + "text": " The rayTracing or rayQuery feature must be enabled" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488", + "text": " If VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the rayTracingAccelerationStructureCaptureReplay feature must be enabled" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-device-03489", + "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter", + "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle" + } + ] + }, + "VkAccelerationStructureCreateInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-compactedSize-03490", + "text": " If compactedSize is not 0 then maxGeometryCount must be 0" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-compactedSize-02993", + "text": " If compactedSize is 0 then maxGeometryCount must not be 0" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03491", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then maxGeometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxGeometryCount" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03492", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR then the maxPrimitiveCount member of each element of the pGeometryInfos array must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxInstanceCount" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-maxPrimitiveCount-03493", + "text": " The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxPrimitiveCount" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-maxPrimitiveCount-03494", + "text": " The total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxPrimitiveCount" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03495", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR and compactedSize is 0, maxGeometryCount must be 1" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03496", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR and compactedSize is 0, the geometryType member of elements of pGeometryInfos must be VK_GEOMETRY_TYPE_INSTANCES_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03497", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and compactedSize is 0, the geometryType member of elements of pGeometryInfos must not be VK_GEOMETRY_TYPE_INSTANCES_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-03498", + "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then the geometryType member of each geometry in pGeometryInfos must be the same" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-03499", + "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR bit set" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03500", + "text": " If deviceAddress is not 0, VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingAccelerationStructureCaptureReplay must be VK_TRUE" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter", + "text": " type must be a valid VkAccelerationStructureTypeKHR value" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-parameter", + "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pGeometryInfos-parameter", + "text": " If maxGeometryCount is not 0, pGeometryInfos must be a valid pointer to an array of maxGeometryCount valid VkAccelerationStructureCreateGeometryTypeInfoKHR structures" + } + ] + }, + "VkAccelerationStructureCreateGeometryTypeInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-geometryType-03501", + "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, vertexFormat must support the VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR in VkFormatProperties::bufferFeatures as returned by vkGetPhysicalDeviceFormatProperties2" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-geometryType-03502", + "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-geometryType-parameter", + "text": " geometryType must be a valid VkGeometryTypeKHR value" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-indexType-parameter", + "text": " indexType must be a valid VkIndexType value" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateGeometryTypeInfoKHR-vertexFormat-parameter", + "text": " If vertexFormat is not 0, vertexFormat must be a valid VkFormat value" + } + ] + }, + "VkGeometryNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkGeometryNV-geometryType-03503", + "text": " geometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV" + }, + { + "vuid": "VUID-VkGeometryNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV" + }, + { + "vuid": "VUID-VkGeometryNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkGeometryNV-geometryType-parameter", + "text": " geometryType must be a valid VkGeometryTypeKHR value" + }, + { + "vuid": "VUID-VkGeometryNV-geometry-parameter", + "text": " geometry must be a valid VkGeometryDataNV structure" + }, + { + "vuid": "VUID-VkGeometryNV-flags-parameter", + "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" + } + ] + }, + "VkGeometryDataNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkGeometryDataNV-triangles-parameter", + "text": " triangles must be a valid VkGeometryTrianglesNV structure" + }, + { + "vuid": "VUID-VkGeometryDataNV-aabbs-parameter", + "text": " aabbs must be a valid VkGeometryAABBNV structure" + } + ] + }, + "VkGeometryTrianglesNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428", + "text": " vertexOffset must be less than the size of vertexData" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429", + "text": " vertexOffset must be a multiple of the component size of vertexFormat" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430", + "text": " vertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431", + "text": " indexOffset must be less than the size of indexData" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432", + "text": " indexOffset must be a multiple of the element size of indexType" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433", + "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434", + "text": " indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435", + "text": " indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436", + "text": " indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437", + "text": " transformOffset must be less than the size of transformData" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438", + "text": " transformOffset must be a multiple of 16" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter", + "text": " If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter", + "text": " vertexFormat must be a valid VkFormat value" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter", + "text": " If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter", + "text": " indexType must be a valid VkIndexType value" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter", + "text": " If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-commonparent", + "text": " Each of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkGeometryAABBNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkGeometryAABBNV-offset-02439", + "text": " offset must be less than the size of aabbData" + }, + { + "vuid": "VUID-VkGeometryAABBNV-offset-02440", + "text": " offset must be a multiple of 8" + }, + { + "vuid": "VUID-VkGeometryAABBNV-stride-02441", + "text": " stride must be a multiple of 8" + }, + { + "vuid": "VUID-VkGeometryAABBNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV" + }, + { + "vuid": "VUID-VkGeometryAABBNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter", + "text": " If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle" + } + ] + }, + "vkDestroyAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442", + "text": " All submitted commands that refer to accelerationStructure must have completed execution" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443", + "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444", + "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter", + "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent", + "text": " If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetAccelerationStructureMemoryRequirementsNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure" + } + ] + }, + "VkAccelerationStructureMemoryRequirementsInfoNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter", + "text": " type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", + "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + } + ] + }, + "vkGetAccelerationStructureMemoryRequirementsKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoKHR structure" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsKHR-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + } + ] + }, + "VkAccelerationStructureMemoryRequirementsInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoKHR-type-parameter", + "text": " type must be a valid VkAccelerationStructureMemoryRequirementsTypeKHR value" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoKHR-buildType-parameter", + "text": " buildType must be a valid VkAccelerationStructureBuildTypeKHR value" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoKHR-accelerationStructure-parameter", + "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" + } + ] + }, + "vkBindAccelerationStructureMemoryKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkBindAccelerationStructureMemoryKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryKHR-pBindInfos-parameter", + "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoKHR structures" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryKHR-bindInfoCount-arraylength", + "text": " bindInfoCount must be greater than 0" + } + ] + }, + "VkBindAccelerationStructureMemoryInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-accelerationStructure-02450", + "text": " accelerationStructure must not already be backed by a memory object" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-memoryOffset-02451", + "text": " memoryOffset must be less than the size of memory" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-memory-02593", + "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-memoryOffset-02594", + "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-size-02595", + "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR must be less than or equal to the size of memory minus memoryOffset" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-accelerationStructure-parameter", + "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-memory-parameter", + "text": " memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-pDeviceIndices-parameter", + "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoKHR-commonparent", + "text": " Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkGetAccelerationStructureHandleNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240", + "text": " dataSize must be large enough to contain the result of the query, as described above" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787", + "text": " accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryKHR" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", + "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", + "text": " dataSize must be greater than 0" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent", + "text": " accelerationStructure must have been created, allocated, or retrieved from device" + } + ] + }, + "vkGetAccelerationStructureDeviceAddressKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504", + "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + }, + { + "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure" + } + ] + }, + "VkAccelerationStructureDeviceAddressInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter", + "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" + } + ] + }, + "vkCreateSampler": { + "core": [ + { + "vuid": "VUID-vkCreateSampler-maxSamplerAllocationCount-04110", + "text": " There must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device." + }, + { + "vuid": "VUID-vkCreateSampler-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateSampler-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateSampler-pSampler-parameter", + "text": " pSampler must be a valid pointer to a VkSampler handle" + } + ] + }, + "VkSamplerCreateInfo": { + "core": [ + { + "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069", + "text": " The absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973", + "text": " maxLod must be greater than or equal to minLod" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070", + "text": " If the anisotropic sampling feature is not enabled, anisotropyEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071", + "text": " If anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072", + "text": " If unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073", + "text": " If unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074", + "text": " If unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075", + "text": " If unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076", + "text": " If unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077", + "text": " If unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078", + "text": " If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080", + "text": " If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext", + "text": " 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 VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkSamplerCreateFlagBits values" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter", + "text": " magFilter must be a valid VkFilter value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter", + "text": " minFilter must be a valid VkFilter value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter", + "text": " mipmapMode must be a valid VkSamplerMipmapMode value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter", + "text": " addressModeU must be a valid VkSamplerAddressMode value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter", + "text": " addressModeV must be a valid VkSamplerAddressMode value" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter", + "text": " addressModeW must be a valid VkSamplerAddressMode value" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645", + "text": " If sampler {YCbCr} conversion is enabled and the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler {YCbCr} conversion’s chromaFilter" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646", + "text": " If sampler {YCbCr} conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-None-01647", + "text": " The sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE if sampler {YCbCr} conversion is enabled" + } + ], + "(VK_VERSION_1_2,VK_KHR_sampler_mirror_clamp_to_edge)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079", + "text": " If ifdef::VK_VERSION_1_2[samplerMirrorClampToEdge is not enabled, and if] the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081", + "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE" + } + ], + "(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-magFilter-01422", + "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + } + ], + "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423", + "text": " If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02574", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02575", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02576", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02577", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02578", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02579", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-flags-02580", + "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE" + } + ], + "(VK_EXT_custom_border_color)": [ + { + "vuid": "VUID-VkSamplerCreateInfo-borderColor-04011", + "text": " If borderColor is set to one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, then a VkSamplerCustomBorderColorCreateInfoEXT must be present in the pNext chain" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-customBorderColors-04085", + "text": " If the customBorderColors feature is not enabled, borderColor must not be set to VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" + }, + { + "vuid": "VUID-VkSamplerCreateInfo-None-04012", + "text": " The maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the maxCustomBorderColorSamplers member of the VkPhysicalDeviceCustomBorderColorPropertiesEXT structure" + } + ] + }, + "VkSamplerReductionModeCreateInfo": { + "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ + { + "vuid": "VUID-VkSamplerReductionModeCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO" + }, + { + "vuid": "VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter", + "text": " reductionMode must be a valid VkSamplerReductionMode value" + } + ] + }, + "vkDestroySampler": { + "core": [ + { + "vuid": "VUID-vkDestroySampler-sampler-01082", + "text": " All submitted commands that refer to sampler must have completed execution" + }, + { + "vuid": "VUID-vkDestroySampler-sampler-01083", + "text": " If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroySampler-sampler-01084", + "text": " If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroySampler-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroySampler-sampler-parameter", + "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + }, + { + "vuid": "VUID-vkDestroySampler-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroySampler-sampler-parent", + "text": " If sampler is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "VkSamplerYcbcrConversionInfo": { + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter", + "text": " conversion must be a valid VkSamplerYcbcrConversion handle" + } + ] + }, + "vkCreateSamplerYcbcrConversion": { + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648", + "text": " The sampler {YCbCr} conversion feature must be enabled" + }, + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", + "text": " pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle" + } + ] + }, + "VkSamplerYcbcrConversionCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04060", + "text": " format must represent unsigned normalized values (i.e. the format must be a UNORM format)" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904", + "text": " If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061", + "text": " If an external format conversion is not being created, format must represent unsigned normalized values (i.e. the format must be a UNORM format)" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650", + "text": " The potential format features of the sampler {YCbCr} conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651", + "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN if the corresponding channels are downsampled" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652", + "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT if the corresponding channels are downsampled" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581", + "text": " If the format has a _422 or _420 suffix, then components.g must be the identity swizzle" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582", + "text": " If the format has a _422 or _420 suffix, then components.a must be the identity swizzle, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583", + "text": " If the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584", + "text": " If the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585", + "text": " If the format has a _422 or _420 suffix, and if either components.r or components.b is the identity swizzle, both values must be the identity swizzle" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655", + "text": " If ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to channels of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a channel which contains zero or one as a consequence of conversion to RGBA" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748", + "text": " If ycbcrRange is VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the R, G and B channels obtained by applying the component swizzle to format must each have a bit-depth greater than or equal to 8" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656", + "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657", + "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkExternalFormatANDROID" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter", + "text": " format must be a valid VkFormat value" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter", + "text": " ycbcrModel must be a valid VkSamplerYcbcrModelConversion value" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter", + "text": " ycbcrRange must be a valid VkSamplerYcbcrRange value" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter", + "text": " components must be a valid VkComponentMapping structure" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter", + "text": " xChromaOffset must be a valid VkChromaLocation value" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter", + "text": " yChromaOffset must be a valid VkChromaLocation value" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter", + "text": " chromaFilter must be a valid VkFilter value" + } + ] + }, + "vkDestroySamplerYcbcrConversion": { + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", + "text": " If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle" + }, + { + "vuid": "VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent", + "text": " If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "VkSamplerCustomBorderColorCreateInfoEXT": { + "(VK_EXT_custom_border_color)": [ + { + "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04013", + "text": " If provided format is not VK_FORMAT_UNDEFINED then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table" + }, + { + "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014", + "text": " If the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015", + "text": " If the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED" + }, + { + "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT" + }, + { + "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter", + "text": " format must be a valid VkFormat value" + } + ] + }, + "vkCreateDescriptorSetLayout": { + "core": [ + { + "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateDescriptorSetLayout-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter", + "text": " pSetLayout must be a valid pointer to a VkDescriptorSetLayout handle" + } + ] + }, + "VkDescriptorSetLayoutCreateInfo": { + "core": [ + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279", + "text": " The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetLayoutBindingFlagsCreateInfo" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter", + "text": " If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures" + } + ], + "(VK_KHR_push_descriptor)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280", + "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281", + "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors" + } + ], + "(VK_KHR_push_descriptor)+(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208", + "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000", + "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001", + "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + } + ] + }, + "VkDescriptorSetLayoutBinding": { + "core": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283", + "text": " If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter", + "text": " descriptorType must be a valid VkDescriptorType value" + } + ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize" + } + ], + "(VK_EXT_custom_border_color)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009", + "text": " The sampler objects indicated by pImmutableSamplers must not have a borderColor with one of the values VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" + } + ] + }, + "VkDescriptorSetLayoutBindingFlagsCreateInfo": { + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002", + "text": " If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004", + "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011", + "text": " All bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014", + "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015", + "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element’s descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter", + "text": " If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003", + "text": " If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211", + "text": " If VkPhysicalDeviceInlineUniformBlockFeaturesEXT::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" + } + ] + }, + "vkGetDescriptorSetLayoutSupport": { + "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ + { + "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + }, + { + "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter", + "text": " pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure" + } + ] + }, + "VkDescriptorSetLayoutSupport": { + "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutSupport-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkDescriptorSetVariableDescriptorCountLayoutSupport": { + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT" + } + ] + }, + "vkDestroyDescriptorSetLayout": { + "core": [ + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284", + "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285", + "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter", + "text": " If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + }, + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent", + "text": " If descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCreatePipelineLayout": { + "core": [ + { + "vuid": "VUID-vkCreatePipelineLayout-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure" + }, + { + "vuid": "VUID-vkCreatePipelineLayout-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter", + "text": " pPipelineLayout must be a valid pointer to a VkPipelineLayout handle" + } + ] + }, + "VkPipelineLayoutCreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286", + "text": " setLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292", + "text": " Any two elements of pPushConstantRanges must not include the same stage in stageFlags" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-zerobitmask", + "text": " flags must be 0" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter", + "text": " If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter", + "text": " If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures" + } + ], + "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01676", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01677", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" + } + ], + "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02212", + "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02213", + "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03019", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027", + "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035", + "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043", + "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214", + "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215", + "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216", + "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217", + "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetUpdateAfterBindInlineUniformBlocks" + } + ], + "(VK_KHR_push_descriptor)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", + "text": " pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381", + "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxDescriptorSetAccelerationStructures" + } + ], + "(VK_EXT_fragment_density_map2)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566", + "text": " The total number of pImmutableSamplers created with flags containing VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxDescriptorSetSubsampledSamplers" + } + ] + }, + "VkPushConstantRange": { + "core": [ + { + "vuid": "VUID-VkPushConstantRange-offset-00294", + "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + }, + { + "vuid": "VUID-VkPushConstantRange-offset-00295", + "text": " offset must be a multiple of 4" + }, + { + "vuid": "VUID-VkPushConstantRange-size-00296", + "text": " size must be greater than 0" + }, + { + "vuid": "VUID-VkPushConstantRange-size-00297", + "text": " size must be a multiple of 4" + }, + { + "vuid": "VUID-VkPushConstantRange-size-00298", + "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + }, + { + "vuid": "VUID-VkPushConstantRange-stageFlags-parameter", + "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + }, + { + "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask", + "text": " stageFlags must not be 0" + } + ] + }, + "vkDestroyPipelineLayout": { + "core": [ + { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299", + "text": " If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300", + "text": " If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004", + "text": " pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter", + "text": " If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent", + "text": " If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCreateDescriptorPool": { + "core": [ + { + "vuid": "VUID-vkCreateDescriptorPool-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateDescriptorPool-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter", + "text": " pDescriptorPool must be a valid pointer to a VkDescriptorPool handle" + } + ] + }, + "VkDescriptorPoolCreateInfo": { + "core": [ + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301", + "text": " maxSets must be greater than 0" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorPoolInlineUniformBlockCreateInfoEXT" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter", + "text": " flags must be a valid combination of VkDescriptorPoolCreateFlagBits values" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter", + "text": " pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures" + }, + { + "vuid": "VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength", + "text": " poolSizeCount must be greater than 0" + } + ] + }, + "VkDescriptorPoolInlineUniformBlockCreateInfoEXT": { + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT" + } + ] + }, + "VkDescriptorPoolSize": { + "core": [ + { + "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302", + "text": " descriptorCount must be greater than 0" + }, + { + "vuid": "VUID-VkDescriptorPoolSize-type-parameter", + "text": " type must be a valid VkDescriptorType value" + } + ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorPoolSize-type-02218", + "text": " If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" + } + ] + }, + "vkDestroyDescriptorPool": { + "core": [ + { + "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303", + "text": " All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304", + "text": " If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305", + "text": " If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter", + "text": " If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent", + "text": " If descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkAllocateDescriptorSets": { + "core": [ + { + "vuid": "VUID-vkAllocateDescriptorSets-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter", + "text": " pAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure" + }, + { + "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter", + "text": " pDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles" + }, + { + "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength", + "text": " pAllocateInfo->descriptorSetCount must be greater than 0" + } + ] + }, + "VkDescriptorSetAllocateInfo": { + "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306", + "text": " descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307", + "text": " descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts" + } + ], + "(VK_KHR_push_descriptor)": [ + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308", + "text": " Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044", + "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" + } + ], + "core": [ + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter", + "text": " descriptorPool must be a valid VkDescriptorPool handle" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", + "text": " pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength", + "text": " descriptorSetCount must be greater than 0" + }, + { + "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent", + "text": " Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkDescriptorSetVariableDescriptorCountAllocateInfo": { + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045", + "text": " If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount" + }, + { + "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046", + "text": " If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable descriptor count binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created" + }, + { + "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO" + }, + { + "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter", + "text": " If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values" + } + ] + }, + "vkFreeDescriptorSets": { "core": [ { - "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", - "text": " Each of the following values (as described in Image Creation Limits) must not be undefined imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts." + "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309", + "text": " All submitted commands that refer to any element of pDescriptorSets must have completed execution" }, { - "vuid": "VUID-VkImageCreateInfo-sharingMode-00941", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310", + "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE" }, { - "vuid": "VUID-VkImageCreateInfo-sharingMode-00942", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00311", + "text": " Each valid handle in pDescriptorSets must have been allocated from descriptorPool" }, { - "vuid": "VUID-VkImageCreateInfo-extent-00944", - "text": " extent::width must be greater than 0." + "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312", + "text": " descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag" }, { - "vuid": "VUID-VkImageCreateInfo-extent-00945", - "text": " extent::height must be greater than 0." + "vuid": "VUID-vkFreeDescriptorSets-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-extent-00946", - "text": " extent::depth must be greater than 0." + "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter", + "text": " descriptorPool must be a valid VkDescriptorPool handle" }, { - "vuid": "VUID-VkImageCreateInfo-mipLevels-00947", - "text": " mipLevels must be greater than 0" + "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength", + "text": " descriptorSetCount must be greater than 0" }, { - "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948", - "text": " arrayLayers must be greater than 0" + "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent", + "text": " descriptorPool must have been created, allocated, or retrieved from device" }, { - "vuid": "VUID-VkImageCreateInfo-flags-00949", - "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D" + "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent", + "text": " Each element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool" + } + ] + }, + "vkResetDescriptorPool": { + "core": [ + { + "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313", + "text": " All uses of descriptorPool (via any allocated descriptor sets) must have completed execution" }, { - "vuid": "VUID-VkImageCreateInfo-extent-02252", - "text": " extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)." + "vuid": "VUID-vkResetDescriptorPool-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-extent-02253", - "text": " extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)." + "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter", + "text": " descriptorPool must be a valid VkDescriptorPool handle" }, { - "vuid": "VUID-VkImageCreateInfo-extent-02254", - "text": " extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)." + "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00954", - "text": " 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" + "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent", + "text": " descriptorPool must have been created, allocated, or retrieved from device" + } + ] + }, + "vkUpdateDescriptorSets": { + "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-vkUpdateDescriptorSets-dstSet-00314", + "text": " The dstSet member of each element of pDescriptorWrites or pDescriptorCopies must not be used by any command that was recorded to a command buffer which is in the pending state" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-vkUpdateDescriptorSets-None-03047", + "text": " Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state" + } + ], + "core": [ + { + "vuid": "VUID-vkUpdateDescriptorSets-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00956", - "text": " If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1" + "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter", + "text": " If descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00957", - "text": " If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1" + "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter", + "text": " If descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures" + } + ] + }, + "VkWriteDescriptorSet": { + "core": [ + { + "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315", + "text": " dstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet’s descriptor set layout was created" }, { - "vuid": "VUID-VkImageCreateInfo-mipLevels-00958", - "text": " mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth." + "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316", + "text": " dstBinding must be a binding with a non-zero descriptorCount" }, { - "vuid": "VUID-VkImageCreateInfo-mipLevels-02255", - "text": " mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)." + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317", + "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags" }, { - "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256", - "text": " arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)." + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318", + "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00961", - "text": " If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1." + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319", + "text": " descriptorType must match the type of dstBinding within dstSet" }, { - "vuid": "VUID-VkImageCreateInfo-samples-02257", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false," + "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320", + "text": " dstSet must be a valid VkDescriptorSet handle" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321", + "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00322", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pImageInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorImageInfo structures" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of pTexelBufferView must be either a valid VkBufferView handle or VK_NULL_HANDLE" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER and the nullDescriptor feature is not enabled, each element of pTexelBufferView must not be VK_NULL_HANDLE" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must be either a valid VkImageView handle or VK_NULL_HANDLE" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and the nullDescriptor feature is not enabled, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01402", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, for each descriptor that will be accessed via load or store operations the imageLayout member for corresponding elements of pImageInfo must be VK_IMAGE_LAYOUT_GENERAL" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00334", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00335", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01403", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image or Combined Image Sampler, corresponding to its type" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext", + "text": " 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 VkWriteDescriptorSetAccelerationStructureKHR or VkWriteDescriptorSetInlineUniformBlockEXT" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter", + "text": " descriptorType must be a valid VkDescriptorType value" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength", + "text": " descriptorCount must be greater than 0" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-commonparent", + "text": " Both of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlockEXT structure whose dataSize member equals descriptorCount" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount" + } + ], + "(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02738", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948", + "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler {YCbCr} conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", + "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical VkDescriptorBindingFlagBits" + } + ] + }, + "VkDescriptorBufferInfo": { + "core": [ + { + "vuid": "VUID-VkDescriptorBufferInfo-offset-00340", + "text": " offset must be less than the size of buffer" }, { - "vuid": "VUID-VkImageCreateInfo-usage-00963", - "text": " 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" + "vuid": "VUID-VkDescriptorBufferInfo-range-00341", + "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" }, { - "vuid": "VUID-VkImageCreateInfo-usage-00964", - "text": " 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" + "vuid": "VUID-VkDescriptorBufferInfo-range-00342", + "text": " If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset" }, { - "vuid": "VUID-VkImageCreateInfo-usage-00965", - "text": " 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" + "vuid": "VUID-VkDescriptorBufferInfo-buffer-02998", + "text": " If the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkImageCreateInfo-usage-00966", - "text": " 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." - }, + "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter", + "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" + } + ], + "(VK_EXT_robustness2)": [ { - "vuid": "VUID-VkImageCreateInfo-samples-02258", - "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)." - }, + "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999", + "text": " If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE" + } + ] + }, + "VkDescriptorImageInfo": { + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkImageCreateInfo-usage-00968", - "text": " 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" - }, + "vuid": "VUID-VkDescriptorImageInfo-imageView-00343", + "text": " imageView must not be 2D or 2D array image view created from a 3D image" + } + ], + "core": [ { - "vuid": "VUID-VkImageCreateInfo-flags-00969", - "text": " If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" + "vuid": "VUID-VkDescriptorImageInfo-imageView-01976", + "text": " If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both" }, { - "vuid": "VUID-VkImageCreateInfo-flags-01924", - "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344", + "text": " imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00970", - "text": " If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, + "vuid": "VUID-VkDescriptorImageInfo-commonparent", + "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkImageCreateInfo-imageType-00971", - "text": " If the sparse residency for 2D images feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, + "vuid": "VUID-VkDescriptorImageInfo-sampler-01564", + "text": " If sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or (for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT" + } + ] + }, + "VkWriteDescriptorSetInlineUniformBlockEXT": { + "(VK_EXT_inline_uniform_block)": [ { - "vuid": "VUID-VkImageCreateInfo-imageType-00972", - "text": " If the sparse residency for 3D images feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222", + "text": " dataSize must be an integer multiple of 4" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00973", - "text": " If the sparse residency for images with 2 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00974", - "text": " If the sparse residency for images with 4 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00975", - "text": " If the sparse residency for images with 8 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength", + "text": " dataSize must be greater than 0" + } + ] + }, + "VkWriteDescriptorSetAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkImageCreateInfo-imageType-00976", - "text": " If the sparse residency for images with 16 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236", + "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" }, { - "vuid": "VUID-VkImageCreateInfo-flags-00987", - "text": " 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" + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-02764", + "text": " Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR" }, { - "vuid": "VUID-VkImageCreateInfo-None-01925", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set" + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR" }, { - "vuid": "VUID-VkImageCreateInfo-initialLayout-00993", - "text": " initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED." + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter", + "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" }, { - "vuid": "VUID-VkImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO" + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength", + "text": " accelerationStructureCount must be greater than 0" + } + ] + }, + "VkCopyDescriptorSet": { + "core": [ + { + "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345", + "text": " srcBinding must be a valid binding within srcSet" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-pNext", - "text": " 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, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfoKHR, VkImageStencilUsageCreateInfoEXT, or VkImageSwapchainCreateInfoKHR" + "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346", + "text": " The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates" }, { - "vuid": "VUID-VkImageCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347", + "text": " dstBinding must be a valid binding within dstSet" }, { - "vuid": "VUID-VkImageCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" + "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348", + "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" }, { - "vuid": "VUID-VkImageCreateInfo-imageType-parameter", - "text": " imageType must be a valid VkImageType value" + "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632", + "text": " The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet" }, { - "vuid": "VUID-VkImageCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349", + "text": " If srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates" }, { - "vuid": "VUID-VkImageCreateInfo-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753", + "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" }, { - "vuid": "VUID-VkImageCreateInfo-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "vuid": "VUID-VkCopyDescriptorSet-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET" }, { - "vuid": "VUID-VkImageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" + "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter", + "text": " srcSet must be a valid VkDescriptorSet handle" }, { - "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" + "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter", + "text": " dstSet must be a valid VkDescriptorSet handle" }, { - "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" + "vuid": "VUID-VkCopyDescriptorSet-commonparent", + "text": " Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice" } ], - "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "(VK_EXT_inline_uniform_block)": [ { - "vuid": "VUID-VkImageCreateInfo-sharingMode-01392", - "text": " 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" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223", + "text": " If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, srcArrayElement must be an integer multiple of 4" + }, { - "vuid": "VUID-VkImageCreateInfo-sharingMode-01420", - "text": " 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 vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - } - ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224", + "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + }, { - "vuid": "VUID-VkImageCreateInfo-format-00943", - "text": " format must not be VK_FORMAT_UNDEFINED" + "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225", + "text": " If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" } ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ { - "vuid": "VUID-VkImageCreateInfo-pNext-01974", - "text": " If the pNext chain contains an instance of VkExternalFormatANDROID, and its member externalFormat is non-zero the format must be VK_FORMAT_UNDEFINED." + "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918", + "text": " If srcSet’s layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-01975", - "text": " If the pNext chain does not contain an instance of VkExternalFormatANDROID, or does and its member externalFormat is 0 the format must not be VK_FORMAT_UNDEFINED." + "vuid": "VUID-VkCopyDescriptorSet-srcSet-01919", + "text": " If srcSet’s layout was created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02393", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D." + "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920", + "text": " If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02394", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth." + "vuid": "VUID-VkCopyDescriptorSet-srcSet-01921", + "text": " If the descriptor pool from which srcSet was allocated was created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" + } + ] + }, + "vkCreateDescriptorUpdateTemplate": { + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + { + "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02396", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT." + "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02397", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT." + "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02398", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL." + "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter", + "text": " pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle" } - ], - "(VK_EXT_fragment_density_map)": [ + ] + }, + "VkDescriptorUpdateTemplateCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ { - "vuid": "VUID-VkImageCreateInfo-flags-02557", - "text": " If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350", + "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" }, { - "vuid": "VUID-VkImageCreateInfo-samples-02558", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO" }, { - "vuid": "VUID-VkImageCreateInfo-usage-02559", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to \\(\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\rceil\\)" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkImageCreateInfo-usage-02560", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to \\(\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\rceil\\)" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02565", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter", + "text": " pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02566", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter", + "text": " templateType must be a valid VkDescriptorUpdateTemplateType value" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02567", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength", + "text": " descriptorUpdateEntryCount must be greater than 0" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02568", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-00950", - "text": " If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent", + "text": " Both of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1)": [ + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [ { - "vuid": "VUID-VkImageCreateInfo-flags-01890", - "text": " If the protected memory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT." + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351", + "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value" }, { - "vuid": "VUID-VkImageCreateInfo-None-01891", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set." - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-00988", - "text": " If the pNext chain contains an instance of VkExternalMemoryImageCreateInfoNV, it must not contain an instance of VkExternalMemoryImageCreateInfo." - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-00990", - "text": " If the pNext chain contains an instance of VkExternalMemoryImageCreateInfo, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with an instance of VkPhysicalDeviceExternalImageFormatInfo in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes" - } - ], - "(VK_NV_external_memory+VK_NV_external_memory_capabilities)": [ + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352", + "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle" + }, { - "vuid": "VUID-VkImageCreateInfo-pNext-00991", - "text": " 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" + "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353", + "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + ] + }, + "VkDescriptorUpdateTemplateEntry": { + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ { - "vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT" + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354", + "text": " dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02259", - "text": " If flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false." - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-01572", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a block-compressed image format, an ETC compressed image format, or an ASTC compressed image format." + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355", + "text": " dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates" }, { - "vuid": "VUID-VkImageCreateInfo-flags-01573", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT." + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter", + "text": " descriptorType must be a valid VkDescriptorType value" } ], - "(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)": [ + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block)": [ { - "vuid": "VUID-VkImageCreateInfo-pNext-01443", - "text": " If the pNext chain includes a ifdef::VK_VERSION_1_1,VK_KHR_external_memory[VkExternalMemoryImageCreateInfo]" + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226", + "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + }, + { + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227", + "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ] + }, + "vkDestroyDescriptorUpdateTemplate": { + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ { - "vuid": "VUID-VkImageCreateInfo-format-02561", - "text": " If the image format is one of those listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1" + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", + "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-VkImageCreateInfo-format-02562", - "text": " If the image format is one of those listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, samples must be VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357", + "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" }, { - "vuid": "VUID-VkImageCreateInfo-format-02563", - "text": " If the image format is one of those listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, imageType must be VK_IMAGE_TYPE_2D" + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", - "text": " If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT." + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", + "text": " If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" }, { - "vuid": "VUID-VkImageCreateInfo-format-01577", - "text": " If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)": [ + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, { - "vuid": "VUID-VkImageCreateInfo-format-02653", - "text": " If the image format is one of those listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1" + "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent", + "text": " If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device" } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)": [ + ] + }, + "vkUpdateDescriptorSetWithTemplate": { + "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ { - "vuid": "VUID-VkImageCreateInfo-format-02564", - "text": " If the image format is one of those listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, arrayLayers must be 1" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685", + "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate" + }, { - "vuid": "VUID-VkImageCreateInfo-tiling-02261", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must contain exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT." + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageCreateInfo-pNext-02262", - "text": " If the pNext chain contains VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT." + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", + "text": " descriptorSet must be a valid VkDescriptorSet handle" }, { - "vuid": "VUID-VkImageCreateInfo-tiling-02353", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must contain VkImageFormatListCreateInfoKHR with non-zero viewFormatCount." - } - ], - "(VK_EXT_sample_locations)": [ + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", + "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + }, { - "vuid": "VUID-VkImageCreateInfo-flags-01533", - "text": " If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format" + "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent", + "text": " descriptorUpdateTemplate must have been created, allocated, or retrieved from device" } - ], - "(VK_EXT_separate_stencil_usage)": [ + ] + }, + "vkCmdBindDescriptorSets": { + "core": [ { - "vuid": "VUID-VkImageCreateInfo-format-02534", - "text": " If format is a depth-stencil format and the pNext chain contains an instance of VkImageStencilUsageCreateInfoEXT, then its stencilUsage member must only include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT if usage also includes it" + "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358", + "text": " Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets" }, { - "vuid": "VUID-VkImageCreateInfo-format-02535", - "text": " If format is a depth-stencil format and the pNext chain contains an instance of VkImageStencilUsageCreateInfoEXT, then its stencilUsage member must only include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT if usage also includes it" + "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359", + "text": " dynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets" }, { - "vuid": "VUID-VkImageCreateInfo-Format-02536", - "text": " If Format is a depth-stencil format and the pNext chain contains an instance of VkImageStencilUsageCreateInfoEXT with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" + "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360", + "text": " The sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" }, { - "vuid": "VUID-VkImageCreateInfo-format-02537", - "text": " If format is a depth-stencil format and the pNext chain contains an instance of VkImageStencilUsageCreateInfoEXT with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" + "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361", + "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" }, { - "vuid": "VUID-VkImageCreateInfo-format-02538", - "text": " If the multisampled storage images feature is not enabled, format is a depth-stencil format and the pNext chain contains an instance of VkImageStencilUsageCreateInfoEXT with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" - } - ], - "(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971", + "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" + }, { - "vuid": "VUID-VkImageCreateInfo-flags-02050", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D" + "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972", + "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02051", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format" + "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", + "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset, as defined above, and the range of the binding must be less than or equal to the size of the buffer" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02052", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent::width and extent::height must be greater than 1" + "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageCreateInfo-flags-02053", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent::width, extent::height, and extent::depth must be greater than 1" - } - ], - "(VK_NV_shading_rate_image)": [ + "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + }, { - "vuid": "VUID-VkImageCreateInfo-imageType-02082", - "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, imageType must be VK_IMAGE_TYPE_2D." + "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-VkImageCreateInfo-samples-02083", - "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, samples must be VK_SAMPLE_COUNT_1_BIT." + "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter", + "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSet handles" }, { - "vuid": "VUID-VkImageCreateInfo-tiling-02084", - "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL." - } - ] - }, - "VkImageStencilUsageCreateInfoEXT": { - "(VK_EXT_separate_stencil_usage)": [ + "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter", + "text": " If dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values" + }, { - "vuid": "VUID-VkImageStencilUsageCreateInfoEXT-stencilUsage-02539", - "text": " If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set" + "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageStencilUsageCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT" + "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkImageStencilUsageCreateInfoEXT-stencilUsage-parameter", - "text": " stencilUsage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength", + "text": " descriptorSetCount must be greater than 0" }, { - "vuid": "VUID-VkImageStencilUsageCreateInfoEXT-stencilUsage-requiredbitmask", - "text": " stencilUsage must not be 0" + "vuid": "VUID-vkCmdBindDescriptorSets-commonparent", + "text": " Each of commandBuffer, layout, and the elements of pDescriptorSets must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkDedicatedAllocationImageCreateInfoNV": { - "(VK_NV_dedicated_allocation)": [ + "vkCmdPushDescriptorSetKHR": { + "(VK_KHR_push_descriptor)": [ { - "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994", - "text": " If dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363", + "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" }, { - "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV" - } - ] - }, - "VkExternalMemoryImageCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364", + "text": " set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + }, { - "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365", + "text": " set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" }, { - "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-requiredbitmask", - "text": " handleTypes must not be 0" - } - ] - }, - "VkExternalMemoryImageCreateInfoNV": { - "(VK_NV_external_memory)": [ + "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + }, { - "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - } - ] - }, - "VkExternalFormatANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter", + "text": " pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" + }, { - "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894", - "text": " externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkExternalFormatANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID" + "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + }, + { + "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength", + "text": " descriptorWriteCount must be greater than 0" + }, + { + "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent", + "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkImageSwapchainCreateInfoKHR": { - "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + "vkCmdPushDescriptorSetWithTemplateKHR": { + "(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995", - "text": " If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain" + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366", + "text": " The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family" }, { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686", + "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplateKHR" }, { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" - } - ] - }, - "VkImageFormatListCreateInfoKHR": { - "(VK_KHR_image_format_list)": [ + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, { - "vuid": "VUID-VkImageFormatListCreateInfoKHR-viewFormatCount-01578", - "text": " If viewFormatCount is not 0, all of the formats in the pViewFormats array must be compatible with the format specified in the format field of VkImageCreateInfo, as described in the compatibility table." + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter", + "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" }, { - "vuid": "VUID-VkImageFormatListCreateInfoKHR-flags-01579", - "text": " If VkImageCreateInfo::flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, viewFormatCount must be 0 or 1." + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-VkImageFormatListCreateInfoKHR-viewFormatCount-01580", - "text": " If viewFormatCount is not 0, VkImageCreateInfo::format must be in pViewFormats." + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageFormatListCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkImageFormatListCreateInfoKHR-pViewFormats-parameter", - "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" + "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent", + "text": " Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkImageDrmFormatModifierListCreateInfoEXT": { - "(VK_EXT_image_drm_format_modifier)": [ + "vkCmdPushConstants": { + "core": [ { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263", - "text": " Each modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT." + "vuid": "VUID-vkCmdPushConstants-offset-01795", + "text": " For each byte in the range specified by offset and size and for each shader stage in stageFlags, there must be a push constant range in layout that includes that byte and that stage" }, { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT" + "vuid": "VUID-vkCmdPushConstants-offset-01796", + "text": " For each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags" }, { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter", - "text": " pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values" + "vuid": "VUID-vkCmdPushConstants-offset-00368", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength", - "text": " drmFormatModifierCount must be greater than 0" - } - ] - }, - "VkImageDrmFormatModifierExplicitCreateInfoEXT": { - "(VK_EXT_image_drm_format_modifier)": [ + "vuid": "VUID-vkCmdPushConstants-size-00369", + "text": " size must be a multiple of 4" + }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264", - "text": " drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2KHR extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT." + "vuid": "VUID-vkCmdPushConstants-offset-00370", + "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265", - "text": " drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT." + "vuid": "VUID-vkCmdPushConstants-size-00371", + "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + }, + { + "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdPushConstants-layout-parameter", + "text": " layout must be a valid VkPipelineLayout handle" + }, + { + "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter", + "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + }, + { + "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask", + "text": " stageFlags must not be 0" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267", - "text": " For each element of pPlaneLayouts, size must be 0" + "vuid": "VUID-vkCmdPushConstants-pValues-parameter", + "text": " pValues must be a valid pointer to an array of size bytes" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268", - "text": " For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1." + "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269", - "text": " For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent::depth is 1." + "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT" + "vuid": "VUID-vkCmdPushConstants-size-arraylength", + "text": " size must be greater than 0" }, { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter", - "text": " If drmFormatModifierPlaneCount is not 0, pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures" + "vuid": "VUID-vkCmdPushConstants-commonparent", + "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkGetImageSubresourceLayout": { - "!(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-00996", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ + "vkGetBufferDeviceAddress": { + "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ { - "vuid": "VUID-vkGetImageSubresourceLayout-image-02270", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" + "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324", + "text": " The bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", - "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the drmFormatModifierPlaneCount associated with the image’s format and drmFormatModifier." - } - ], - "core": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997", - "text": " The aspectMask member of pSubresource must only have a single bit set" + "vuid": "VUID-vkGetBufferDeviceAddress-device-03325", + "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", - "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", - "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, + "vuid": "VUID-vkGetBufferDeviceAddress-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" + } + ] + }, + "VkBufferDeviceAddressInfo": { + "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ { - "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02600", + "text": " If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02601", + "text": " buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter", - "text": " pSubresource must be a valid pointer to a valid VkImageSubresource structure" + "vuid": "VUID-VkBufferDeviceAddressInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter", - "text": " pLayout must be a valid pointer to a VkSubresourceLayout structure" + "vuid": "VUID-VkBufferDeviceAddressInfo-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ] + }, + "vkGetBufferOpaqueCaptureAddress": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ { - "vuid": "VUID-vkGetImageSubresourceLayout-format-01581", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with two planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" + "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-None-03326", + "text": " The bufferDeviceAddress feature must be enabled" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-format-01582", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with three planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-03327", + "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + }, { - "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory." + "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" } ] }, - "VkImageSubresource": { + "vkCreateQueryPool": { "core": [ { - "vuid": "VUID-VkImageSubresource-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "vuid": "VUID-vkCreateQueryPool-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure" + }, + { + "vuid": "VUID-vkCreateQueryPool-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter", + "text": " pQueryPool must be a valid pointer to a VkQueryPool handle" } ] }, - "vkGetImageDrmFormatModifierPropertiesEXT": { - "(VK_EXT_image_drm_format_modifier)": [ + "VkQueryPoolCreateInfo": { + "core": [ { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT." + "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791", + "text": " If the pipeline statistics queries feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS" }, { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792", + "text": " If queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" }, { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763", + "text": " queryCount must be greater than 0" }, { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure" + "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO" }, { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - } - ] - }, - "VkImageDrmFormatModifierPropertiesEXT": { - "(VK_EXT_image_drm_format_modifier)": [ + "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext", + "text": " 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 VkQueryPoolPerformanceCreateInfoKHR or VkQueryPoolPerformanceQueryCreateInfoINTEL" + }, { - "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT" + "vuid": "VUID-VkQueryPoolCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask", + "text": " flags must be 0" + }, + { + "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter", + "text": " queryType must be a valid VkQueryType value" + } + ], + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222", + "text": " If queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a structure of type VkQueryPoolPerformanceCreateInfoKHR" } ] }, - "vkDestroyImage": { - "core": [ - { - "vuid": "VUID-vkDestroyImage-image-01000", - "text": " All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution" - }, + "VkQueryPoolPerformanceCreateInfoKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-vkDestroyImage-image-01001", - "text": " If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236", + "text": " queueFamilyIndex must be a valid queue family index of the device" }, { - "vuid": "VUID-vkDestroyImage-image-01002", - "text": " If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237", + "text": " The performanceCounterQueryPools feature must be enabled" }, { - "vuid": "VUID-vkDestroyImage-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321", + "text": " Each element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex" }, { - "vuid": "VUID-vkDestroyImage-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkDestroyImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter", + "text": " pCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values" }, { - "vuid": "VUID-vkDestroyImage-image-parent", - "text": " If image is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength", + "text": " counterIndexCount must be greater than 0" } ] }, - "vkCreateImageView": { - "core": [ - { - "vuid": "VUID-vkCreateImageView-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure" + "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCreateImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter", + "text": " pPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure" }, { - "vuid": "VUID-vkCreateImageView-pView-parameter", - "text": " pView must be a valid pointer to a VkImageView handle" + "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameter", + "text": " pNumPasses must be a valid pointer to a uint32_t value" } ] }, - "VkImageViewCreateInfo": { + "vkDestroyQueryPool": { "core": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01003", - "text": " If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkDestroyQueryPool-queryPool-00793", + "text": " All submitted commands that refer to queryPool must have completed execution" }, { - "vuid": "VUID-VkImageViewCreateInfo-viewType-01004", - "text": " If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkDestroyQueryPool-queryPool-00794", + "text": " If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-VkImageViewCreateInfo-None-02273", - "text": " The format features of the resultant image view must contain at least one bit." + "vuid": "VUID-vkDestroyQueryPool-queryPool-00795", + "text": " If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-02274", - "text": " If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT." + "vuid": "VUID-vkDestroyQueryPool-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-02275", - "text": " If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT." + "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter", + "text": " If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-02276", - "text": " If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT." + "vuid": "VUID-vkDestroyQueryPool-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-02277", - "text": " If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT." + "vuid": "VUID-vkDestroyQueryPool-queryPool-parent", + "text": " If queryPool is a valid handle, it must have been created, allocated, or retrieved from device" + } + ] + }, + "vkCmdResetQueryPool": { + "core": [ + { + "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", + "text": " firstQuery must be less than the number of queries in queryPool" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-02652", - "text": " If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view’s format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT." + "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", + "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkCmdResetQueryPool-None-02841", + "text": " All queries used by the command must not be active" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01018", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01020", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021", - "text": " subresourceRange and viewType must be compatible with the image, as described in the compatibility table" + "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkImageViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO" + "vuid": "VUID-vkCmdResetQueryPool-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext", - "text": " 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 VkImageViewASTCDecodeModeEXT, VkImageViewUsageCreateInfo, or VkSamplerYcbcrConversionInfo" + "vuid": "VUID-vkCmdResetQueryPool-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862", + "text": " If queryPool was created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [firstQuery, firstQuery + queryCount - 1]" + } + ] + }, + "vkResetQueryPool": { + "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [ + { + "vuid": "VUID-vkResetQueryPool-None-02665", + "text": " The hostQueryReset feature must be enabled" }, { - "vuid": "VUID-VkImageViewCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkResetQueryPool-firstQuery-02666", + "text": " firstQuery must be less than the number of queries in queryPool" }, { - "vuid": "VUID-VkImageViewCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageViewCreateFlagBits values" + "vuid": "VUID-vkResetQueryPool-firstQuery-02667", + "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkResetQueryPool-firstQuery-02741", + "text": " Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution" }, { - "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter", - "text": " viewType must be a valid VkImageViewType value" + "vuid": "VUID-vkResetQueryPool-firstQuery-02742", + "text": " The range of queries specified by firstQuery and queryCount in queryPool must not be in use by calls to vkGetQueryPoolResults or vkResetQueryPool in other threads" }, { - "vuid": "VUID-VkImageViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "vuid": "VUID-vkResetQueryPool-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" + "vuid": "VUID-vkResetQueryPool-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" + "vuid": "VUID-vkResetQueryPool-queryPool-parent", + "text": " queryPool must have been created, allocated, or retrieved from device" } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + ] + }, + "vkCmdBeginQuery": { + "core": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01005", - "text": " If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "vuid": "VUID-vkCmdBeginQuery-queryPool-01922", + "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01482", - "text": " If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" + "vuid": "VUID-vkCmdBeginQuery-None-00807", + "text": " All queries used by the command must be unavailable" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01483", - "text": " If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" + "vuid": "VUID-vkCmdBeginQuery-queryType-02804", + "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01484", - "text": " If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" + "vuid": "VUID-vkCmdBeginQuery-queryType-00800", + "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01485", - "text": " If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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" - } - ], - "!(VK_EXT_fragment_density_map)+!(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01007", - "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - } - ], - "!(VK_EXT_fragment_density_map)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02085", - "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_EXT_fragment_density_map)+!(VK_NV_shading_rate_image)": [ + "vuid": "VUID-vkCmdBeginQuery-query-00802", + "text": " query must be less than the number of queries in queryPool" + }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02569", - "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)+(VK_NV_shading_rate_image)": [ + "vuid": "VUID-vkCmdBeginQuery-queryType-00803", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02570", - "text": " image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, or VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ + "vuid": "VUID-vkCmdBeginQuery-queryType-00804", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02571", - "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1" + "vuid": "VUID-vkCmdBeginQuery-queryType-00805", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-VkImageViewCreateInfo-flags-02572", - "text": " If dynamic fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" + "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02573", - "text": " If dynamic fragment density map feature is not enabled and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" + }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01480", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkCmdBeginQuery-flags-parameter", + "text": " flags must be a valid combination of VkQueryControlFlagBits values" }, { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01719", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01759", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + }, + { + "vuid": "VUID-vkCmdBeginQuery-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01760", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885", + "text": " commandBuffer must not be a protected command buffer" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01761", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" + "vuid": "VUID-vkCmdBeginQuery-query-00808", + "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01583", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image." + "vuid": "VUID-vkCmdBeginQuery-queryType-02327", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01584", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the levelCount and layerCount members of subresourceRange must both be 1." - } - ], - "(VK_KHR_image_format_list)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-01585", - "text": " If a VkImageFormatListCreateInfoKHR structure was included in the pNext chain of the VkImageCreateInfo struct used when creating image and the viewFormatCount field of VkImageFormatListCreateInfoKHR is not zero then format must be one of the formats in VkImageFormatListCreateInfoKHR::pViewFormats." + "vuid": "VUID-vkCmdBeginQuery-queryType-02328", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" } ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01586", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats" + "vuid": "VUID-vkCmdBeginQuery-queryPool-03223", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01762", - "text": " If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image" + "vuid": "VUID-vkCmdBeginQuery-queryPool-03224", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" }, { - "vuid": "VUID-VkImageViewCreateInfo-pNext-01970", - "text": " If the pNext chain contains an instance of VkSamplerYcbcrConversionInfo with a conversion value other than VK_NULL_HANDLE, all members of components must have the value VK_COMPONENT_SWIZZLE_IDENTITY." - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01019", - "text": " 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" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02399", - "text": " If image has an external format, format must be VK_FORMAT_UNDEFINED." + "vuid": "VUID-vkCmdBeginQuery-queryPool-03225", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02400", - "text": " If image has an external format, the pNext chain must contain an instance of VkSamplerYcbcrConversionInfo with a conversion object created with the same external format as image." + "vuid": "VUID-vkCmdBeginQuery-queryPool-03226", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02401", - "text": " If image has an external format, all members of components must be VK_COMPONENT_SWIZZLE_IDENTITY." + "vuid": "VUID-vkCmdBeginQuery-None-02863", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" } - ], - "(VK_NV_shading_rate_image)": [ + ] + }, + "vkCmdBeginQueryIndexedEXT": { + "core": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-02086", - "text": " If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-01922", + "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-02087", - "text": " If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT" - } - ], - "!(VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02661", - "text": " If the pNext chain includes an instance of VkImageViewUsageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image." - } - ], - "(VK_EXT_separate_stencil_usage)": [ + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-00807", + "text": " All queries used by the command must be unavailable" + }, { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02662", - "text": " If the pNext chain includes an instance of VkImageViewUsageCreateInfo, and image was not created with an instance of VkImageStencilUsageCreateInfoEXT in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02804", + "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" }, { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02663", - "text": " If the pNext chain includes an instance of VkImageViewUsageCreateInfo, image was created with an instance of VkImageStencilUsageCreateInfoEXT in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo instance must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfoEXT structure used to create image" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00800", + "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" }, { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02664", - "text": " If the pNext chain includes an instance of VkImageViewUsageCreateInfo, image was created with an instance of VkImageStencilUsageCreateInfoEXT in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo instance must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" - } - ] - }, - "VkImageViewUsageCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00802", + "text": " query must be less than the number of queries in queryPool" + }, { - "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00803", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00804", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" - } - ] - }, - "VkImageSubresourceRange": { - "core": [ + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00805", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" + }, { - "vuid": "VUID-VkImageSubresourceRange-levelCount-01720", - "text": " If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageSubresourceRange-layerCount-01721", - "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" }, { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02340", + "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" }, { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" } ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885", + "text": " commandBuffer must not be a protected command buffer" } ], - "(VK_EXT_image_drm_format_modifier)": [ + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i." + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808", + "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" } - ] - }, - "VkComponentMapping": { - "core": [ + ], + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkComponentMapping-r-parameter", - "text": " r must be a valid VkComponentSwizzle value" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" }, { - "vuid": "VUID-VkComponentMapping-g-parameter", - "text": " g must be a valid VkComponentSwizzle value" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" }, { - "vuid": "VUID-VkComponentMapping-b-parameter", - "text": " b must be a valid VkComponentSwizzle value" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" }, { - "vuid": "VUID-VkComponentMapping-a-parameter", - "text": " a must be a valid VkComponentSwizzle value" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" + }, + { + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02863", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" } - ] - }, - "VkImageViewASTCDecodeModeEXT": { - "(VK_EXT_astc_decode_mode)": [ + ], + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230", - "text": " decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231", - "text": " If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232", - "text": " If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter", + "text": " flags must be a valid combination of VkQueryControlFlagBits values" }, { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-02233", - "text": " format of the image view must be one of VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, or VK_FORMAT_ASTC_12x12_SRGB_BLOCK" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter", - "text": " decodeMode must be a valid VkFormat value" + "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkDestroyImageView": { + "vkCmdEndQuery": { "core": [ { - "vuid": "VUID-vkDestroyImageView-imageView-01026", - "text": " All submitted commands that refer to imageView must have completed execution" + "vuid": "VUID-vkCmdEndQuery-None-01923", + "text": " All queries used by the command must be active" }, { - "vuid": "VUID-vkDestroyImageView-imageView-01027", - "text": " If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdEndQuery-query-00810", + "text": " query must be less than the number of queries in queryPool" }, { - "vuid": "VUID-vkDestroyImageView-imageView-01028", - "text": " If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkDestroyImageView-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdEndQuery-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-vkDestroyImageView-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" + "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkDestroyImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-vkDestroyImageView-imageView-parent", - "text": " If imageView is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdEndQuery-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "vkGetImageViewHandleNVX": { - "(VK_NVX_image_view_handle)": [ - { - "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure" + "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886", + "text": " commandBuffer must not be a protected command buffer" } - ] - }, - "VkImageViewHandleInfoNVX": { - "(VK_NVX_image_view_handle)": [ + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654", - "text": " descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" - }, + "vuid": "VUID-vkCmdEndQuery-query-00812", + "text": " If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + } + ], + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655", - "text": " sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" + "vuid": "VUID-vkCmdEndQuery-queryPool-03227", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the vkCmdEndQuery must be the last recorded command in commandBuffer" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set" - }, + "vuid": "VUID-vkCmdEndQuery-queryPool-03228", + "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the vkCmdEndQuery must not be recorded within a render pass instance" + } + ] + }, + "vkCmdEndQueryIndexedEXT": { + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342", + "text": " All queries used by the command must be active" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343", + "text": " query must be less than the number of queries in queryPool" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02346", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02347", + "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02723", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT index must equal the index used to begin the query" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent", - "text": " Both of imageView, and sampler that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetBufferMemoryRequirements": { - "core": [ - { - "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "vkGetImageMemoryRequirements": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ], + "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkGetImageMemoryRequirements-image-01588", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344", + "text": " commandBuffer must not be a protected command buffer" } ], - "core": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" - }, + "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkGetImageMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345", + "text": " If vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" } ] }, - "vkGetBufferMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + "vkGetQueryPoolResults": { + "core": [ { - "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", + "text": " firstQuery must be less than the number of queries in queryPool" }, { - "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure" + "vuid": "VUID-vkGetQueryPoolResults-flags-02827", + "text": " If VK_QUERY_RESULT_64_BIT is not set in flags, then pData and stride must be multiples of 4" }, { - "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" - } - ] - }, - "VkBufferMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2" + "vuid": "VUID-vkGetQueryPoolResults-flags-00815", + "text": " If VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8" }, { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", + "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" }, { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "vkGetImageMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", + "text": " dataSize must be large enough to contain the result of each query, as described here" }, { - "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure" + "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" }, { - "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" - } - ] - }, - "VkImageMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkGetQueryPoolResults-device-parameter", + "text": " device must be a valid VkDevice handle" + }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589", - "text": " If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590", - "text": " If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ + "vuid": "VUID-vkGetQueryPoolResults-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" + }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279", - "text": " If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "vuid": "VUID-vkGetQueryPoolResults-flags-parameter", + "text": " flags must be a valid combination of VkQueryResultFlagBits values" }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280", - "text": " If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)": [ + "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength", + "text": " dataSize must be greater than 0" + }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01591", - "text": " If image was created with a single-plane format, there must not be a VkImagePlaneMemoryRequirementsInfo in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" + "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent", + "text": " queryPool must have been created, allocated, or retrieved from device" } ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory." - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + "vuid": "VUID-vkGetQueryPoolResults-flags-02828", + "text": " If VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4" + }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2" + "vuid": "VUID-vkGetQueryPoolResults-queryType-03229", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR" }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo" + "vuid": "VUID-vkGetQueryPoolResults-queryType-03230", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT" }, { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkGetQueryPoolResults-queryType-03231", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" } ] }, - "VkImagePlaneMemoryRequirementsInfo": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vkCmdCopyQueryPoolResults": { + "core": [ { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image. (That is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)." + "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819", + "text": " dstOffset must be less than the size of dstBuffer" }, { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO" + "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", + "text": " firstQuery must be less than the number of queries in queryPool" }, { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image. (That is, aspectMask must specify a plane index that is less than the drmFormatModifierPlaneCount associated with the image’s format and drmFormatModifier.)" - } - ] - }, - "VkMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2" + "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", + "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" }, { - "vuid": "VUID-VkMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements" - } - ] - }, - "VkMemoryDedicatedRequirements": { - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS" - } - ] - }, - "vkBindBufferMemory": { - "core": [ + "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", + "text": " If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4" + }, { - "vuid": "VUID-vkBindBufferMemory-buffer-01029", - "text": " buffer must not already be backed by a memory object" + "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823", + "text": " If VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8" }, { - "vuid": "VUID-vkBindBufferMemory-buffer-01030", - "text": " buffer must not have been created with any sparse memory binding flags" + "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824", + "text": " dstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here" }, { - "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031", - "text": " memoryOffset must be less than the size of memory" + "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-vkBindBufferMemory-memory-01035", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" }, { - "vuid": "VUID-vkBindBufferMemory-size-01037", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkBindBufferMemory-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-vkBindBufferMemory-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkBindBufferMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter", + "text": " flags must be a valid combination of VkQueryResultFlagBits values" }, { - "vuid": "VUID-vkBindBufferMemory-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkBindBufferMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + }, { - "vuid": "VUID-vkBindBufferMemory-buffer-01444", - "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" + "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkBindBufferMemory-memory-01508", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero." + "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent", + "text": " Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1)": [ + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-vkBindBufferMemory-None-01898", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE" }, { - "vuid": "VUID-vkBindBufferMemory-None-01899", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_NV_dedicated_allocation)": [ + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT" + }, { - "vuid": "VUID-vkBindBufferMemory-buffer-01038", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234", + "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" } ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindBufferMemory-buffer-01039", - "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734", + "text": " vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL" } ] }, - "vkBindBufferMemory2": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-vkBindBufferMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vkCmdWriteTimestamp": { + "core": [ { - "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074", + "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" }, { - "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" - } - ] - }, - "VkBindBufferMemoryInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01593", - "text": " buffer must not already be backed by a memory object" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075", + "text": " If the geometry shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01594", - "text": " buffer must not have been created with any sparse memory binding flags" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076", + "text": " If the tessellation shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01595", - "text": " memoryOffset must be less than the size of memory" + "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416", + "text": " queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-01599", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "vuid": "VUID-vkCmdWriteTimestamp-queryPool-00828", + "text": " The query identified by queryPool and query must be unavailable" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01600", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" + "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829", + "text": " The command pool’s queue family must support a non-zero timestampValidBits" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-size-01601", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" + "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter", + "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo" + "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-VkBindBufferMemoryInfo-commonparent", - "text": " Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdWriteTimestamp-commonparent", + "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01602", - "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer and memoryOffset must be zero" - }, + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077", + "text": " If the conditional rendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-01900", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer and memoryOffset must be zero." + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078", + "text": " If the fragment density map feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [ + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01603", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to buffer and memoryOffset must be zero" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079", + "text": " If the transform feedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01604", - "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080", + "text": " If the mesh shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV or VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605", - "text": " If the pNext chain includes VkBindBufferMemoryDeviceGroupInfo, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04081", + "text": " If the shading rate image feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-None-00830", + "text": " All queries used by the command must be unavailable" + }, + { + "vuid": "VUID-vkCmdWriteTimestamp-query-00831", + "text": " If vkCmdWriteTimestamp is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" } ] }, - "VkBindBufferMemoryDeviceGroupInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vkAcquireProfilingLockKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + "vuid": "VUID-vkAcquireProfilingLockKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607", - "text": " All elements of pDeviceIndices must be valid device indices" + "vuid": "VUID-vkAcquireProfilingLockKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure" + } + ] + }, + "VkAcquireProfilingLockInfoKHR": { + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-VkAcquireProfilingLockInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR" }, { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO" + "vuid": "VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "vuid": "VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkBindImageMemory": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkBindImageMemory-image-01608", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set." - } - ], - "core": [ + "vkReleaseProfilingLockKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-image-01044", - "text": " image must not already be backed by a memory object" + "vuid": "VUID-vkReleaseProfilingLockKHR-device-03235", + "text": " The profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR" }, { - "vuid": "VUID-vkBindImageMemory-image-01045", - "text": " image must not have been created with any sparse memory binding flags" - }, + "vuid": "VUID-vkReleaseProfilingLockKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + } + ] + }, + "vkInitializePerformanceApiINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-memoryOffset-01046", - "text": " memoryOffset must be less than the size of memory" + "vuid": "VUID-vkInitializePerformanceApiINTEL-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkBindImageMemory-memory-01047", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" - }, + "vuid": "VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter", + "text": " pInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure" + } + ] + }, + "VkInitializePerformanceApiInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-memoryOffset-01048", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL" }, { - "vuid": "VUID-vkBindImageMemory-size-01049", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image must be less than or equal to the size of memory minus memoryOffset" - }, + "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkUninitializePerformanceApiINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-vkUninitializePerformanceApiINTEL-device-parameter", + "text": " device must be a valid VkDevice handle" + } + ] + }, + "vkGetPerformanceParameterINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkGetPerformanceParameterINTEL-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkBindImageMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkGetPerformanceParameterINTEL-parameter-parameter", + "text": " parameter must be a valid VkPerformanceParameterTypeINTEL value" }, { - "vuid": "VUID-vkBindImageMemory-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkGetPerformanceParameterINTEL-pValue-parameter", + "text": " pValue must be a valid pointer to a VkPerformanceValueINTEL structure" + } + ] + }, + "VkPerformanceValueINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ + { + "vuid": "VUID-VkPerformanceValueINTEL-type-parameter", + "text": " type must be a valid VkPerformanceValueTypeINTEL value" }, { - "vuid": "VUID-vkBindImageMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter", + "text": " If type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string" } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + ] + }, + "VkQueryPoolPerformanceQueryCreateInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-image-01445", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ + "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" + }, { - "vuid": "VUID-vkBindImageMemory-memory-01509", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero." + "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter", + "text": " performanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value" } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ + ] + }, + "vkCmdSetPerformanceMarkerINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-memory-02628", - "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero." + "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkBindImageMemory-memory-02629", - "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created." - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter", + "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure" + }, { - "vuid": "VUID-vkBindImageMemory-None-01901", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkBindImageMemory-None-01902", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" + "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" } - ], - "(VK_NV_dedicated_allocation)": [ + ] + }, + "VkPerformanceMarkerInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory-image-01050", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" - } - ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "vuid": "VUID-VkPerformanceMarkerInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL" + }, { - "vuid": "VUID-vkBindImageMemory-image-01051", - "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "vuid": "VUID-VkPerformanceMarkerInfoINTEL-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "vkBindImageMemory2": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + "vkCmdSetPerformanceStreamMarkerINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-vkBindImageMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures" + "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter", + "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure" }, { - "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" + "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" } ] }, - "VkBindImageMemoryInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ + "VkPerformanceStreamMarkerInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-image-01609", - "text": " image must not already be backed by a memory object" + "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735", + "text": " The value written by the application into marker must only used the valid bits as reported by vkGetPerformanceParameterINTEL with the VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-image-01610", - "text": " image must not have been created with any sparse memory binding flags" + "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01611", - "text": " memoryOffset must be less than the size of memory" - }, + "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkCmdSetPerformanceOverrideINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO" + "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736", + "text": " pOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext", - "text": " 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 VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo" + "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkBindImageMemoryInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter", + "text": " pOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure" }, { - "vuid": "VUID-VkBindImageMemoryInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkBindImageMemoryInfo-commonparent", - "text": " Both of image, and memory that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ] + }, + "VkPerformanceOverrideInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01612", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + "vuid": "VUID-VkPerformanceOverrideInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01613", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" + "vuid": "VUID-VkPerformanceOverrideInfoINTEL-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01614", - "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" + "vuid": "VUID-VkPerformanceOverrideInfoINTEL-type-parameter", + "text": " type must be a valid VkPerformanceOverrideTypeINTEL value" } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ] + }, + "vkAcquirePerformanceConfigurationINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615", - "text": " If the pNext chain does not include an instance of the VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" + "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616", - "text": " If the pNext chain does not include an instance of the VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" + "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameter", + "text": " pAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617", - "text": " If the pNext chain does not include an instance of the VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image" - }, + "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameter", + "text": " pConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle" + } + ] + }, + "VkPerformanceConfigurationAcquireInfoINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618", - "text": " If the pNext chain includes an instance of the VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set." + "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619", - "text": " If the pNext chain includes an instance of the VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and the correct planeAspect for this plane in the VkImagePlaneMemoryRequirementsInfo structure attached to the VkImageMemoryRequirementsInfo2’s pNext chain" + "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620", - "text": " If the pNext chain includes an instance of the VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and the correct planeAspect for this plane in the VkImagePlaneMemoryRequirementsInfo structure attached to the VkImageMemoryRequirementsInfo2’s pNext chain" + "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter", + "text": " type must be a valid VkPerformanceConfigurationTypeINTEL value" + } + ] + }, + "vkQueueSetPerformanceConfigurationINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ + { + "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter", + "text": " queue must be a valid VkQueue handle" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621", - "text": " If the pNext chain includes an instance of the VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and the correct planeAspect for this plane in the VkImagePlaneMemoryRequirementsInfo structure attached to the VkImageMemoryRequirementsInfo2’s pNext chain" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameter", + "text": " configuration must be a valid VkPerformanceConfigurationINTEL handle" + }, { - "vuid": "VUID-VkBindImageMemoryInfo-image-01622", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image and memoryOffset must be zero" + "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-commonparent", + "text": " Both of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice" } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ + ] + }, + "vkReleasePerformanceConfigurationINTEL": { + "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01903", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero." - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ + "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737", + "text": " configuration must not be released before all command buffers submitted while the configuration was set are in pending state" + }, { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02630", - "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero." + "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02631", - "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included an instance of VkMemoryDedicatedAllocateInfo in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created." - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [ + "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameter", + "text": " configuration must be a valid VkPerformanceConfigurationINTEL handle" + }, { - "vuid": "VUID-VkBindImageMemoryInfo-image-01623", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to image and memoryOffset must be zero" + "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parent", + "text": " configuration must have been created, allocated, or retrieved from device" } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ + ] + }, + "vkCmdClearColorImage": { + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkBindImageMemoryInfo-image-01624", - "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" + "vuid": "VUID-vkCmdClearColorImage-image-01993", + "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)": [ + "core": [ { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01625", - "text": " memory must be a valid VkDeviceMemory handle" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vuid": "VUID-vkCmdClearColorImage-image-00002", + "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01626", - "text": " If the pNext chain includes VkBindImageMemoryDeviceGroupInfo, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" + "vuid": "VUID-vkCmdClearColorImage-image-00003", + "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01627", - "text": " If the pNext chain includes VkBindImageMemoryDeviceGroupInfo, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set" + "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004", + "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628", - "text": " If the pNext chain includes VkBindImageMemoryDeviceGroupInfo, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image" + "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498", + "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629", - "text": " If the pNext chain includes VkBindImageMemoryDeviceGroupInfo, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image." - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470", + "text": " 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" + }, { - "vuid": "VUID-VkBindImageMemoryInfo-image-01630", - "text": " If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a valid instance of VkBindImageMemorySwapchainInfoKHR" + "vuid": "VUID-vkCmdClearColorImage-pRanges-01692", + "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631", - "text": " If the pNext chain includes an instance of VkBindImageMemorySwapchainInfoKHR, memory must be VK_NULL_HANDLE" + "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472", + "text": " 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" }, { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632", - "text": " If the pNext chain does not include an instance of VkBindImageMemorySwapchainInfoKHR, memory must be a valid VkDeviceMemory handle" - } - ] - }, - "VkBindImageMemoryDeviceGroupInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633", - "text": " At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero." + "vuid": "VUID-vkCmdClearColorImage-pRanges-01693", + "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" + "vuid": "VUID-vkCmdClearColorImage-image-00007", + "text": " image must not have a compressed or depth/stencil format" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635", - "text": " All elements of pDeviceIndices must be valid device indices." + "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636", - "text": " splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared" + "vuid": "VUID-vkCmdClearColorImage-image-parameter", + "text": " image must be a valid VkImage handle" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637", - "text": " Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap." + "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter", + "text": " imageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638", - "text": " The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image" + "vuid": "VUID-vkCmdClearColorImage-pColor-parameter", + "text": " pColor must be a valid pointer to a valid VkClearColorValue union" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639", - "text": " The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image" + "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter", + "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640", - "text": " The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource" + "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641", - "text": " The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height
offset.y must equal the width of the image subresource" + "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO" + "vuid": "VUID-vkCmdClearColorImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength", + "text": " rangeCount must be greater than 0" }, { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter", - "text": " If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures" + "vuid": "VUID-vkCmdClearColorImage-commonparent", + "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "VkBindImageMemorySwapchainInfoKHR": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644", - "text": " imageIndex must be less than the number of images in swapchain" - }, + "vuid": "VUID-vkCmdClearColorImage-image-01545", + "text": " image must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" + } + ], + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR" + "vuid": "VUID-vkCmdClearColorImage-imageLayout-00005", + "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + } + ], + "(VK_KHR_shared_presentable_image)": [ + { + "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394", + "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805", + "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" }, { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806", + "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" } ] }, - "VkBindImagePlaneMemoryInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vkCmdClearDepthStencilImage": { + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image. (That is, planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT for “_2PLANE” formats and planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT for “_3PLANE” formats.)" - }, + "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994", + "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + } + ], + "!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-None-01643", - "text": " A single call to vkBindImageMemory2 must bind all or none of the planes of an image (i.e. bindings to all planes of an image must be made in a single vkBindImageMemory2 call), as separate bindings" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-00009", + "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + } + ], + "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ + { + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658", + "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create image" }, { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO" + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659", + "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" }, { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660", + "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" } ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image. (That is, aspectMask must specify a plane index that is less than the drmFormatModifierPlaneCount associated with the image’s format and drmFormatModifier.)" - } - ] - }, - "vkCreateAccelerationStructureNV": { - "(VK_NV_ray_tracing)": [ + "core": [ { - "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010", + "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure" + "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011", + "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-vkCreateAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012", + "text": " imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" }, { - "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", - "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle" - } - ] - }, - "VkAccelerationStructureCreateInfoNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421", - "text": " If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0" + "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02824", + "text": " The VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-02825", + "text": " If the image’s format does not have a stencil component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_STENCIL_BIT bit" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-02826", + "text": " If the image’s format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter", - "text": " info must be a valid VkAccelerationStructureInfoNV structure" - } - ] - }, - "VkAccelerationStructureInfoNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" + "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474", + "text": " 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" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423", - "text": " instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount" + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694", + "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424", - "text": " The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount" + "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476", + "text": " 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" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0" + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695", + "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014", + "text": " image must have a depth/stencil format" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592", - "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set" + "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV" + "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter", + "text": " image must be a valid VkImage handle" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter", + "text": " imageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeNV value" + "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter", + "text": " pDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values" + "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter", + "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter", - "text": " If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures" - } - ] - }, - "VkGeometryNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV" + "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkGeometryNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkGeometryNV-geometryType-parameter", - "text": " geometryType must be a valid VkGeometryTypeNV value" + "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkGeometryNV-geometry-parameter", - "text": " geometry must be a valid VkGeometryDataNV structure" + "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength", + "text": " rangeCount must be greater than 0" }, { - "vuid": "VUID-VkGeometryNV-flags-parameter", - "text": " flags must be a valid combination of VkGeometryFlagBitsNV values" + "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent", + "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "VkGeometryDataNV": { - "(VK_NV_ray_tracing)": [ + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkGeometryDataNV-triangles-parameter", - "text": " triangles must be a valid VkGeometryTrianglesNV structure" + "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", + "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" }, { - "vuid": "VUID-VkGeometryDataNV-aabbs-parameter", - "text": " aabbs must be a valid VkGeometryAABBNV structure" + "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", + "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" } ] }, - "VkGeometryTrianglesNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428", - "text": " vertexOffset must be less than the size of vertexData" - }, + "vkCmdClearAttachments": { + "core": [ { - "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429", - "text": " vertexOffset must be a multiple of the component size of vertexFormat" + "vuid": "VUID-vkCmdClearAttachments-aspectMask-02501", + "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, then the colorAttachment member of that element must either refer to a color attachment which is VK_ATTACHMENT_UNUSED, or must be a valid color attachment" }, { - "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430", - "text": " vertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM" + "vuid": "VUID-vkCmdClearAttachments-aspectMask-02502", + "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a depth component" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431", - "text": " indexOffset must be less than the size of indexData" + "vuid": "VUID-vkCmdClearAttachments-aspectMask-02503", + "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a stencil component" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432", - "text": " indexOffset must be a multiple of the element size of indexType" + "vuid": "VUID-vkCmdClearAttachments-rect-02682", + "text": " The rect member of each element of pRects must have an extent.width greater than 0" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433", - "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV" + "vuid": "VUID-vkCmdClearAttachments-rect-02683", + "text": " The rect member of each element of pRects must have an extent.height greater than 0" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434", - "text": " indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV" + "vuid": "VUID-vkCmdClearAttachments-pRects-00016", + "text": " The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435", - "text": " indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV" + "vuid": "VUID-vkCmdClearAttachments-pRects-00017", + "text": " The layers specified by each element of pRects must be contained within every attachment that pAttachments refers to" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436", - "text": " indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV" + "vuid": "VUID-vkCmdClearAttachments-layerCount-01934", + "text": " The layerCount member of each element of pRects must not be 0" }, { - "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437", - "text": " transformOffset must be less than the size of transformData" + "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438", - "text": " transformOffset must be a multiple of 16" + "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter", + "text": " pAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures" }, { - "vuid": "VUID-VkGeometryTrianglesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV" + "vuid": "VUID-vkCmdClearAttachments-pRects-parameter", + "text": " pRects must be a valid pointer to an array of rectCount VkClearRect structures" }, { - "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter", - "text": " If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter", - "text": " vertexFormat must be a valid VkFormat value" + "vuid": "VUID-vkCmdClearAttachments-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter", - "text": " If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength", + "text": " attachmentCount must be greater than 0" }, { - "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" - }, + "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength", + "text": " rectCount must be greater than 0" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter", - "text": " If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504", + "text": " If commandBuffer is an unprotected command buffer, then each attachment to be cleared must not be a protected image" }, { - "vuid": "VUID-VkGeometryTrianglesNV-commonparent", - "text": " Each of indexData, transformData, and vertexData that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505", + "text": " If commandBuffer is a protected command buffer, then each attachment to be cleared must not be an unprotected image" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018", + "text": " If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one" } ] }, - "VkGeometryAABBNV": { - "(VK_NV_ray_tracing)": [ + "VkClearAttachment": { + "core": [ { - "vuid": "VUID-VkGeometryAABBNV-offset-02439", - "text": " offset must be less than the size of aabbData" + "vuid": "VUID-VkClearAttachment-aspectMask-00019", + "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" }, { - "vuid": "VUID-VkGeometryAABBNV-offset-02440", - "text": " offset must be a multiple of 8" + "vuid": "VUID-VkClearAttachment-aspectMask-00020", + "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" }, { - "vuid": "VUID-VkGeometryAABBNV-stride-02441", - "text": " stride must be a multiple of 8" + "vuid": "VUID-VkClearAttachment-clearValue-00021", + "text": " clearValue must be a valid VkClearValue union" }, { - "vuid": "VUID-VkGeometryAABBNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV" + "vuid": "VUID-VkClearAttachment-aspectMask-parameter", + "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" }, { - "vuid": "VUID-VkGeometryAABBNV-pNext-pNext", - "text": " pNext must be NULL" - }, + "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask", + "text": " aspectMask must not be 0" + } + ], + "(VK_EXT_image_drm_format_modifier)": [ { - "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter", - "text": " If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle" + "vuid": "VUID-VkClearAttachment-aspectMask-02246", + "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" } ] }, - "vkDestroyAccelerationStructureNV": { - "(VK_NV_ray_tracing)": [ + "VkClearDepthStencilValue": { + "(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02442", - "text": " All submitted commands that refer to accelerationStructure must have completed execution" - }, + "vuid": "VUID-VkClearDepthStencilValue-depth-00022", + "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive" + } + ], + "!(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02443", - "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkClearDepthStencilValue-depth-02506", + "text": " depth must be between 0.0 and 1.0, inclusive" + } + ] + }, + "vkCmdFillBuffer": { + "core": [ + { + "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024", + "text": " dstOffset must be less than the size of dstBuffer" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02444", - "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025", + "text": " dstOffset must be a multiple of 4" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdFillBuffer-size-00026", + "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkCmdFillBuffer-size-00027", + "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdFillBuffer-size-00028", + "text": " If size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent", - "text": " accelerationStructure must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetAccelerationStructureMemoryRequirementsNV": { - "(VK_NV_ray_tracing)": [ + "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + }, { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure" + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure" - } - ] - }, - "VkAccelerationStructureMemoryRequirementsInfoNV": { - "(VK_NV_ray_tracing)": [ + "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" + }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV" + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations" }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value" + "vuid": "VUID-vkCmdFillBuffer-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkCmdFillBuffer-commonparent", + "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "vkBindAccelerationStructureMemoryNV": { - "(VK_NV_ray_tracing)": [ + ], + "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics or compute operations" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures" + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811", + "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" }, { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" + "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812", + "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" } ] }, - "VkBindAccelerationStructureMemoryInfoNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-02450", - "text": " accelerationStructure must not already be backed by a memory object" - }, + "vkCmdUpdateBuffer": { + "core": [ { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-02451", - "text": " memoryOffset must be less than the size of memory" + "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032", + "text": " dstOffset must be less than the size of dstBuffer" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-02593", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" + "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033", + "text": " dataSize must be less than or equal to the size of dstBuffer minus dstOffset" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-02594", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" + "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-02595", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV must be less than or equal to the size of memory minus memoryOffset" + "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV" + "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036", + "text": " dstOffset must be a multiple of 4" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037", + "text": " dataSize must be less than or equal to 65536" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038", + "text": " dataSize must be a multiple of 4" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" + "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent", - "text": " Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetAccelerationStructureHandleNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240", - "text": " dataSize must be large enough to contain the result of the query, as described above" + "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "vuid": "VUID-vkCmdUpdateBuffer-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", + "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength", "text": " dataSize must be greater than 0" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent", - "text": " accelerationStructure must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdUpdateBuffer-commonparent", + "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" } - ] - }, - "vkCreateSampler": { - "core": [ - { - "vuid": "VUID-vkCreateSampler-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure" - }, + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCreateSampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813", + "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" }, { - "vuid": "VUID-vkCreateSampler-pSampler-parameter", - "text": " pSampler must be a valid pointer to a VkSampler handle" + "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814", + "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" } ] }, - "VkSamplerCreateInfo": { - "core": [ - { - "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069", - "text": " The absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973", - "text": " maxLod must be greater than or equal to minLod" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070", - "text": " If the anisotropic sampling feature is not enabled, anisotropyEnable must be VK_FALSE" - }, + "vkCmdCopyBuffer": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071", - "text": " If anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive" + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822", + "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" }, { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072", - "text": " If unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal" + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823", + "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" }, { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073", - "text": " If unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" - }, + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824", + "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" + } + ], + "core": [ { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074", - "text": " If unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero" + "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113", + "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" }, { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075", - "text": " If unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" + "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114", + "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" }, { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076", - "text": " If unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE" + "vuid": "VUID-vkCmdCopyBuffer-size-00115", + "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" }, { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077", - "text": " If unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE" + "vuid": "VUID-vkCmdCopyBuffer-size-00116", + "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078", - "text": " If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value" + "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117", + "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079", - "text": " If the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" + "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118", + "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" }, { - "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080", - "text": " If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value" + "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119", + "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO" + "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext", - "text": " 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 VkSamplerReductionModeCreateInfoEXT or VkSamplerYcbcrConversionInfo" + "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkSamplerCreateFlagBits values" + "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter", + "text": " srcBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter", - "text": " magFilter must be a valid VkFilter value" + "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter", - "text": " minFilter must be a valid VkFilter value" + "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures" }, { - "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter", - "text": " mipmapMode must be a valid VkSamplerMipmapMode value" + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter", - "text": " addressModeU must be a valid VkSamplerAddressMode value" + "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter", - "text": " addressModeV must be a valid VkSamplerAddressMode value" + "vuid": "VUID-vkCmdCopyBuffer-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter", - "text": " addressModeW must be a valid VkSamplerAddressMode value" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645", - "text": " If sampler Y’CBCR conversion is enabled and VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT is not set for the format, minFilter and magFilter must be equal to the sampler Y’CBCR conversion’s chromaFilter" + "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength", + "text": " regionCount must be greater than 0" }, { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646", - "text": " If sampler Y’CBCR conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE" + "vuid": "VUID-vkCmdCopyBuffer-commonparent", + "text": " Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_sampler_filter_minmax)": [ + ] + }, + "VkBufferCopy": { + "core": [ { - "vuid": "VUID-VkSamplerCreateInfo-None-01647", - "text": " The sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT if sampler Y’CBCR conversion is enabled" + "vuid": "VUID-VkBufferCopy-size-01988", + "text": " The size must be greater than 0" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + ] + }, + "vkCmdCopyImage": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081", - "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE" - } - ], - "(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)": [ + "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825", + "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" + }, { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-01422", - "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfoEXT must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT" - } - ], - "(VK_EXT_sampler_filter_minmax)": [ + "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826", + "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" + }, { - "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423", - "text": " If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfoEXT must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT" + "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827", + "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" } ], - "(VK_EXT_fragment_density_map)": [ + "core": [ { - "vuid": "VUID-VkSamplerCreateInfo-flags-02574", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal." + "vuid": "VUID-vkCmdCopyImage-pRegions-00124", + "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02575", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST." + "vuid": "VUID-vkCmdCopyImage-srcImage-00126", + "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02576", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero." + "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128", + "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02577", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER." + "vuid": "VUID-vkCmdCopyImage-dstImage-00131", + "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02578", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE." + "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133", + "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02579", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE." + "vuid": "VUID-vkCmdCopyImage-srcImage-00136", + "text": " The sample count of srcImage and dstImage must match" }, { - "vuid": "VUID-VkSamplerCreateInfo-flags-02580", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE." - } - ] - }, - "VkSamplerReductionModeCreateInfoEXT": { - "(VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkSamplerReductionModeCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT" + "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696", + "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkSamplerReductionModeCreateInfoEXT-reductionMode-parameter", - "text": " reductionMode must be a valid VkSamplerReductionModeEXT value" - } - ] - }, - "vkDestroySampler": { - "core": [ + "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697", + "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + }, { - "vuid": "VUID-vkDestroySampler-sampler-01082", - "text": " All submitted commands that refer to sampler must have completed execution" + "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698", + "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-vkDestroySampler-sampler-01083", - "text": " If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699", + "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-vkDestroySampler-sampler-01084", - "text": " If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdCopyImage-srcOffset-01783", + "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" }, { - "vuid": "VUID-vkDestroySampler-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdCopyImage-dstOffset-01784", + "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" }, { - "vuid": "VUID-vkDestroySampler-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" + "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkDestroySampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdCopyImage-srcImage-parameter", + "text": " srcImage must be a valid VkImage handle" }, { - "vuid": "VUID-vkDestroySampler-sampler-parent", - "text": " If sampler is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkSamplerYcbcrConversionInfo": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter", + "text": " srcImageLayout must be a valid VkImageLayout value" + }, { - "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO" + "vuid": "VUID-vkCmdCopyImage-dstImage-parameter", + "text": " dstImage must be a valid VkImage handle" }, { - "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter", - "text": " conversion must be a valid VkSamplerYcbcrConversion handle" - } - ] - }, - "vkCreateSamplerYcbcrConversion": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter", + "text": " dstImageLayout must be a valid VkImageLayout value" + }, { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648", - "text": " The sampler Y’CBCR conversion feature must be enabled" + "vuid": "VUID-vkCmdCopyImage-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures" }, { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure" + "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdCopyImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", - "text": " pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle" - } - ] - }, - "VkSamplerYcbcrConversionCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength", + "text": " regionCount must be greater than 0" + }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01649", - "text": " format must not be VK_FORMAT_UNDEFINED" + "vuid": "VUID-vkCmdCopyImage-commonparent", + "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904", - "text": " If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED, otherwise it must not be VK_FORMAT_UNDEFINED." + "vuid": "VUID-vkCmdCopyImage-srcImage-01995", + "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + }, + { + "vuid": "VUID-vkCmdCopyImage-dstImage-01996", + "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" } ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650", - "text": " format must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT" + "vuid": "VUID-vkCmdCopyImage-srcImage-00127", + "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651", - "text": " If the format does not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN" + "vuid": "VUID-vkCmdCopyImage-dstImage-00132", + "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652", - "text": " If the format does not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT" - }, + "vuid": "VUID-vkCmdCopyImage-srcImage-00135", + "text": " The VkFormat of each of srcImage and dstImage must be compatible, as defined above" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01653", - "text": " format must represent unsigned normalized values (i.e. the format must be a UNORM format)" + "vuid": "VUID-vkCmdCopyImage-srcImage-01546", + "text": " If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581", - "text": " If the format has a _422 or _420 suffix, then components.g must be VK_COMPONENT_SWIZZLE_IDENTITY" + "vuid": "VUID-vkCmdCopyImage-dstImage-01547", + "text": " If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582", - "text": " If the format has a _422 or _420 suffix, then components.a must be VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO" + "vuid": "VUID-vkCmdCopyImage-srcImage-01548", + "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583", - "text": " If the format has a _422 or _420 suffix, then components.r must be VK_COMPONENT_SWIZZLE_IDENTITY or VK_COMPONENT_SWIZZLE_B" - }, + "vuid": "VUID-vkCmdCopyImage-None-01549", + "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" + } + ], + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584", - "text": " If the format has a _422 or _420 suffix, then components.b must be VK_COMPONENT_SWIZZLE_IDENTITY or VK_COMPONENT_SWIZZLE_R" + "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585", - "text": " If the format has a _422 or _420 suffix, and if either components.r or components.b is VK_COMPONENT_SWIZZLE_IDENTITY, both values must be VK_COMPONENT_SWIZZLE_IDENTITY" - }, + "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + } + ], + "(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655", - "text": " If ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to channels of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a channel which contains zero or one as a consequence of conversion to RGBA" + "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656", - "text": " If the format does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, forceExplicitReconstruction must be FALSE" - }, + "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + } + ], + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657", - "text": " If the format does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must be VK_FILTER_NEAREST" - }, + "vuid": "VUID-vkCmdCopyImage-dstImage-02542", + "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + } + ] + }, + "VkImageCopy": { + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO" + "vuid": "VUID-VkImageCopy-aspectMask-00137", + "text": " The aspectMask member of srcSubresource and dstSubresource must match" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkExternalFormatANDROID" + "vuid": "VUID-VkImageCopy-srcOffset-00157", + "text": " If the calling command’s srcImage is a compressed image, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" + "vuid": "VUID-VkImageCopy-extent-00158", + "text": " If the calling command’s srcImage is a compressed image, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the source image subresource width" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter", - "text": " ycbcrModel must be a valid VkSamplerYcbcrModelConversion value" + "vuid": "VUID-VkImageCopy-extent-00159", + "text": " If the calling command’s srcImage is a compressed image, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the source image subresource height" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter", - "text": " ycbcrRange must be a valid VkSamplerYcbcrRange value" + "vuid": "VUID-VkImageCopy-extent-00160", + "text": " If the calling command’s srcImage is a compressed image, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the source image subresource depth" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" + "vuid": "VUID-VkImageCopy-dstOffset-00162", + "text": " If the calling command’s dstImage is a compressed format image, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter", - "text": " xChromaOffset must be a valid VkChromaLocation value" + "vuid": "VUID-VkImageCopy-extent-00163", + "text": " If the calling command’s dstImage is a compressed format image, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the destination image subresource width" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter", - "text": " yChromaOffset must be a valid VkChromaLocation value" + "vuid": "VUID-VkImageCopy-extent-00164", + "text": " If the calling command’s dstImage is a compressed format image, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the destination image subresource height" }, { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter", - "text": " chromaFilter must be a valid VkFilter value" + "vuid": "VUID-VkImageCopy-extent-00165", + "text": " If the calling command’s dstImage is a compressed format image, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the destination image subresource depth" } - ] - }, - "vkDestroySamplerYcbcrConversion": { + ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImageCopy-srcImage-01551", + "text": " If neither the calling command’s srcImage nor the calling command’s dstImage has a multi-planar image format then the aspectMask member of srcSubresource and dstSubresource must match" }, { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", - "text": " If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle" + "vuid": "VUID-VkImageCopy-srcImage-01552", + "text": " If the calling command’s srcImage has a VkFormat with two planes then the srcSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" }, { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkImageCopy-srcImage-01553", + "text": " If the calling command’s srcImage has a VkFormat with three planes then the srcSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" }, { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent", - "text": " If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateDescriptorSetLayout": { - "core": [ + "vuid": "VUID-VkImageCopy-dstImage-01554", + "text": " If the calling command’s dstImage has a VkFormat with two planes then the dstSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" + }, { - "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImageCopy-dstImage-01555", + "text": " If the calling command’s dstImage has a VkFormat with three planes then the dstSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" }, { - "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + "vuid": "VUID-VkImageCopy-srcImage-01556", + "text": " If the calling command’s srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, the dstSubresource aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" }, { - "vuid": "VUID-vkCreateDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkImageCopy-dstImage-01557", + "text": " If the calling command’s dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, the srcSubresource aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" }, { - "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter", - "text": " pSetLayout must be a valid pointer to a VkDescriptorSetLayout handle" - } - ] - }, - "VkDescriptorSetLayoutCreateInfo": { - "core": [ + "vuid": "VUID-VkImageCopy-srcImage-01727", + "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" + }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279", - "text": " The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values." + "vuid": "VUID-VkImageCopy-srcImage-01728", + "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the source image subresource width" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO" + "vuid": "VUID-VkImageCopy-srcImage-01729", + "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the source image subresource height" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" + "vuid": "VUID-VkImageCopy-srcImage-01730", + "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the source image subresource depth" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values" + "vuid": "VUID-VkImageCopy-dstImage-01731", + "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter", - "text": " If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures" - } - ], - "(VK_KHR_push_descriptor)": [ + "vuid": "VUID-VkImageCopy-dstImage-01732", + "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the destination image subresource width" + }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "vuid": "VUID-VkImageCopy-dstImage-01733", + "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the destination image subresource height" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors" + "vuid": "VUID-VkImageCopy-dstImage-01734", + "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the destination image subresource depth" } ], - "(VK_KHR_push_descriptor)+(VK_EXT_inline_uniform_block)": [ + "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" - } - ], - "(VK_EXT_descriptor_indexing)": [ + "vuid": "VUID-VkImageCopy-layerCount-00138", + "text": " The layerCount member of srcSubresource and dstSubresource must match" + }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcImage-00139", + "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" }, { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "vuid": "VUID-VkImageCopy-srcImage-01789", + "text": " If the calling command’s srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then extent.depth must be 1" } - ] - }, - "VkDescriptorSetLayoutBinding": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles" + "vuid": "VUID-VkImageCopy-extent-00140", + "text": " The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)" }, { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283", - "text": " If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values" + "vuid": "VUID-VkImageCopy-srcImage-00141", + "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of the corresponding subresource must be 0 and 1, respectively" }, { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT" + "vuid": "VUID-VkImageCopy-srcImage-01790", + "text": " If both srcImage and dstImage are of type VK_IMAGE_TYPE_2D then extent.depth must be 1" }, { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" + "vuid": "VUID-VkImageCopy-srcImage-01791", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_2D, and the dstImage is of type VK_IMAGE_TYPE_3D, then extent.depth must equal to the layerCount member of srcSubresource" }, { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize" + "vuid": "VUID-VkImageCopy-dstImage-01792", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_2D, and the srcImage is of type VK_IMAGE_TYPE_3D, then extent.depth must equal to the layerCount member of dstSubresource" } - ] - }, - "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT": { - "(VK_EXT_descriptor_indexing)": [ + ], + "core": [ { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-bindingCount-03002", - "text": " If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount" + "vuid": "VUID-VkImageCopy-aspectMask-00142", + "text": " The aspectMask member of srcSubresource must specify aspects present in the calling command’s srcImage" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-pBindingFlags-03004", - "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding" + "vuid": "VUID-VkImageCopy-aspectMask-00143", + "text": " The aspectMask member of dstSubresource must specify aspects present in the calling command’s dstImage" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingUniformBufferUpdateAfterBind-03005", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcOffset-00144", + "text": " srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the source image subresource width" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingSampledImageUpdateAfterBind-03006", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcOffset-00145", + "text": " srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the source image subresource height" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingStorageImageUpdateAfterBind-03007", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcImage-00146", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.y must be 0 and extent.height must be 1" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingStorageBufferUpdateAfterBind-03008", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcOffset-00147", + "text": " srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the source image subresource depth" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingUniformTexelBufferUpdateAfterBind-03009", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcImage-01785", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.z must be 0 and extent.depth must be 1" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingStorageTexelBufferUpdateAfterBind-03010", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-dstImage-01786", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.z must be 0 and extent.depth must be 1" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-None-03011", - "text": " All bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-srcImage-01787", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_2D, then srcOffset.z must be 0" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingUpdateUnusedWhilePending-03012", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT" + "vuid": "VUID-VkImageCopy-dstImage-01788", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_2D, then dstOffset.z must be 0" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingPartiallyBound-03013", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT" + "vuid": "VUID-VkImageCopy-dstOffset-00150", + "text": " dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingVariableDescriptorCount-03014", - "text": " If VkPhysicalDeviceDescriptorIndexingFeaturesEXT::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT" + "vuid": "VUID-VkImageCopy-dstOffset-00151", + "text": " dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the destination image subresource height" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-pBindingFlags-03015", - "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT, that element’s descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" + "vuid": "VUID-VkImageCopy-dstImage-00152", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.y must be 0 and extent.height must be 1" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT" + "vuid": "VUID-VkImageCopy-dstOffset-00153", + "text": " dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-pBindingFlags-parameter", - "text": " If bindingCount is not 0, and pBindingFlags is not NULL, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBitsEXT values" - } - ], - "(VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-flags-03003", - "text": " If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT" - } - ], - "(VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + "vuid": "VUID-VkImageCopy-srcSubresource-parameter", + "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + }, { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211", - "text": " If VkPhysicalDeviceInlineUniformBlockFeaturesEXT::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" + "vuid": "VUID-VkImageCopy-dstSubresource-parameter", + "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" } ] }, - "vkGetDescriptorSetLayoutSupport": { - "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ + "VkImageSubresourceLayers": { + "core": [ { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167", + "text": " If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" }, { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" + "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168", + "text": " aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT" }, { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter", - "text": " pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure" - } - ] - }, - "VkDescriptorSetLayoutSupport": { - "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ + "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700", + "text": " layerCount must be greater than 0" + }, { - "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT" + "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter", + "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" }, { - "vuid": "VUID-VkDescriptorSetLayoutSupport-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupportEXT" + "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask", + "text": " aspectMask must not be 0" } - ] - }, - "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT": { - "(VK_EXT_descriptor_indexing)": [ + ], + "(VK_EXT_image_drm_format_modifier)": [ { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupportEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT" + "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247", + "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" } ] }, - "vkDestroyDescriptorSetLayout": { - "core": [ - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284", - "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285", - "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vkCmdCopyBufferToImage": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter", - "text": " If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828", + "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" }, { - "vuid": "VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829", + "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" }, { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent", - "text": " If descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830", + "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" } - ] - }, - "vkCreatePipelineLayout": { + ], "core": [ { - "vuid": "VUID-vkCreatePipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171", + "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" }, { - "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure" + "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00172", + "text": " The image region specified by each element of pRegions must be a region that is contained within dstImage" }, { - "vuid": "VUID-vkCreatePipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173", + "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" }, { - "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter", - "text": " pPipelineLayout must be a valid pointer to a VkPipelineLayout handle" - } - ] - }, - "VkPipelineLayoutCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286", - "text": " setLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets" + "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174", + "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292", - "text": " Any two elements of pPushConstantRanges must not include the same stage in stageFlags" + "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176", + "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177", + "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178", + "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179", + "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter", - "text": " If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", + "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter", - "text": " If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures" - } - ], - "!(VK_EXT_descriptor_indexing)": [ + "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701", + "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" + "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702", + "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" + "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-01793", + "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04052", + "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-04053", + "text": " If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01676", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" + "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter", + "text": " srcBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01677", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter", + "text": " dstImage must be a valid VkImage handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", + "text": " dstImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" + "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" + "vuid": "VUID-vkCmdCopyBufferToImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" + "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength", + "text": " regionCount must be greater than 0" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" + "vuid": "VUID-vkCmdCopyBufferToImage-commonparent", + "text": " Each of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" } ], - "!(VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02212", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" - }, + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997", + "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" + } + ], + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02213", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" + "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00181", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" } ], - "(VK_EXT_descriptor_indexing)": [ + "(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" - }, + "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + } + ], + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" - }, + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543", + "text": " dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + } + ] + }, + "vkCmdCopyImageToBuffer": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", + "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03019", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", + "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", + "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" + } + ], + "core": [ + { + "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00182", + "text": " The image region specified by each element of pRegions must be a region that is contained within srcImage" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" + "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183", + "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindSamplers" + "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184", + "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindUniformBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186", + "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindStorageBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187", + "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindSampledImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188", + "text": " srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindStorageImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", + "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInputAttachments" + "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" + "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703", + "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" + "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704", + "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-01794", + "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-04054", + "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-04055", + "text": " If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter", + "text": " srcImage must be a valid VkImage handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindSamplers" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", + "text": " srcImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindUniformBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic" + "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageBuffers" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic" + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindSampledImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageImages" + "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength", + "text": " regionCount must be greater than 0" }, { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindInputAttachments" + "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent", + "text": " Each of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks" - }, + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" - }, + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998", + "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" + } + ], + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetUpdateAfterBindInlineUniformBlocks" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" } ], - "(VK_KHR_push_descriptor)": [ + "(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", - "text": " pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" } ], - "(VK_NV_ray_tracing)": [ + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures" + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544", + "text": " srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" } ] }, - "VkPushConstantRange": { - "core": [ + "VkBufferImageCopy": { + "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkPushConstantRange-offset-00294", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + "vuid": "VUID-VkBufferImageCopy-bufferOffset-00193", + "text": " If the calling command’s VkImage parameter’s format is not a depth/stencil format, then bufferOffset must be a multiple of the format’s texel block size" }, { - "vuid": "VUID-VkPushConstantRange-offset-00295", - "text": " offset must be a multiple of 4" + "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00203", + "text": " If the calling command’s VkImage parameter is a compressed image, bufferRowLength must be a multiple of the compressed texel block width" }, { - "vuid": "VUID-VkPushConstantRange-size-00296", - "text": " size must be greater than 0" + "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00204", + "text": " If the calling command’s VkImage parameter is a compressed image, bufferImageHeight must be a multiple of the compressed texel block height" }, { - "vuid": "VUID-VkPushConstantRange-size-00297", - "text": " size must be a multiple of 4" + "vuid": "VUID-VkBufferImageCopy-imageOffset-00205", + "text": " If the calling command’s VkImage parameter is a compressed image, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" }, { - "vuid": "VUID-VkPushConstantRange-size-00298", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + "vuid": "VUID-VkBufferImageCopy-bufferOffset-00206", + "text": " If the calling command’s VkImage parameter is a compressed image, bufferOffset must be a multiple of the compressed texel block size in bytes" }, { - "vuid": "VUID-VkPushConstantRange-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + "vuid": "VUID-VkBufferImageCopy-imageExtent-00207", + "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the image subresource width" }, { - "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" + "vuid": "VUID-VkBufferImageCopy-imageExtent-00208", + "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the image subresource height" + }, + { + "vuid": "VUID-VkBufferImageCopy-imageExtent-00209", + "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the image subresource depth" } - ] - }, - "vkDestroyPipelineLayout": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-VkBufferImageCopy-bufferOffset-01558", + "text": " If the calling command’s VkImage parameter’s format is not a depth/stencil format or a multi-planar format, then bufferOffset must be a multiple of the format’s texel block size" + }, + { + "vuid": "VUID-VkBufferImageCopy-bufferOffset-01559", + "text": " If the calling command’s VkImage parameter’s format is a multi-planar format, then bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + }, + { + "vuid": "VUID-VkBufferImageCopy-None-01735", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferRowLength must be a multiple of the compressed texel block width" + }, { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299", - "text": " If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-VkBufferImageCopy-None-01736", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferImageHeight must be a multiple of the compressed texel block height" }, { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300", - "text": " If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL" + "vuid": "VUID-VkBufferImageCopy-None-01737", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" }, { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004", - "text": " pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called" + "vuid": "VUID-VkBufferImageCopy-None-01738", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferOffset must be a multiple of the compressed texel block size in bytes" }, { - "vuid": "VUID-vkDestroyPipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkBufferImageCopy-None-01739", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the image subresource width" }, { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter", - "text": " If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle" + "vuid": "VUID-VkBufferImageCopy-None-01740", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the image subresource height" }, { - "vuid": "VUID-vkDestroyPipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkBufferImageCopy-None-01741", + "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the image subresource depth" }, { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent", - "text": " If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkBufferImageCopy-aspectMask-01560", + "text": " If the calling command’s VkImage parameter’s format is a multi-planar format, then the aspectMask member of imageSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" } - ] - }, - "vkCreateDescriptorPool": { + ], "core": [ { - "vuid": "VUID-vkCreateDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195", + "text": " bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" }, { - "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure" + "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00196", + "text": " bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" }, { - "vuid": "VUID-vkCreateDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkBufferImageCopy-imageOffset-00197", + "text": " imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the image subresource width" }, { - "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter", - "text": " pDescriptorPool must be a valid pointer to a VkDescriptorPool handle" - } - ] - }, - "VkDescriptorPoolCreateInfo": { - "core": [ + "vuid": "VUID-VkBufferImageCopy-imageOffset-00198", + "text": " imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the image subresource height" + }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301", - "text": " maxSets must be greater than 0" + "vuid": "VUID-VkBufferImageCopy-srcImage-00199", + "text": " If the calling command’s srcImage (vkCmdCopyImageToBuffer) or dstImage (vkCmdCopyBufferToImage) is of type VK_IMAGE_TYPE_1D, then imageOffset.y must be 0 and imageExtent.height must be 1" }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO" + "vuid": "VUID-VkBufferImageCopy-imageOffset-00200", + "text": " imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the image subresource depth" }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorPoolInlineUniformBlockCreateInfoEXT" + "vuid": "VUID-VkBufferImageCopy-srcImage-00201", + "text": " If the calling command’s srcImage (vkCmdCopyImageToBuffer) or dstImage (vkCmdCopyBufferToImage) is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then imageOffset.z must be 0 and imageExtent.depth must be 1" }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorPoolCreateFlagBits values" + "vuid": "VUID-VkBufferImageCopy-aspectMask-00211", + "text": " The aspectMask member of imageSubresource must specify aspects present in the calling command’s VkImage parameter" }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter", - "text": " pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures" + "vuid": "VUID-VkBufferImageCopy-aspectMask-00212", + "text": " The aspectMask member of imageSubresource must only have a single bit set" }, { - "vuid": "VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength", - "text": " poolSizeCount must be greater than 0" + "vuid": "VUID-VkBufferImageCopy-baseArrayLayer-00213", + "text": " If the calling command’s VkImage parameter is of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of imageSubresource must be 0 and 1, respectively" + }, + { + "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter", + "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" } - ] - }, - "VkDescriptorPoolInlineUniformBlockCreateInfoEXT": { - "(VK_EXT_inline_uniform_block)": [ + ], + "!(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT" + "vuid": "VUID-VkBufferImageCopy-None-00214", + "text": " When copying to the depth aspect of an image subresource, the data in the source buffer must be in the range [0,1]" } ] }, - "VkDescriptorPoolSize": { - "core": [ + "vkCmdBlitImage": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302", - "text": " descriptorCount must be greater than 0" + "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834", + "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" }, { - "vuid": "VUID-VkDescriptorPoolSize-type-parameter", - "text": " type must be a valid VkDescriptorType value" - } - ], - "(VK_EXT_inline_uniform_block)": [ + "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835", + "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" + }, { - "vuid": "VUID-VkDescriptorPoolSize-type-02218", - "text": " If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" + "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836", + "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" } - ] - }, - "vkDestroyDescriptorPool": { + ], "core": [ { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303", - "text": " All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution" + "vuid": "VUID-vkCmdBlitImage-pRegions-00215", + "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" }, { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304", - "text": " If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdBlitImage-pRegions-00216", + "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" }, { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305", - "text": " If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdBlitImage-pRegions-00217", + "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" }, { - "vuid": "VUID-vkDestroyDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBlitImage-srcImage-01999", + "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT" }, { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter", - "text": " If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle" + "vuid": "VUID-vkCmdBlitImage-srcImage-00219", + "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" }, { - "vuid": "VUID-vkDestroyDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdBlitImage-srcImage-00220", + "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent", - "text": " If descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkAllocateDescriptorSets": { - "core": [ - { - "vuid": "VUID-vkAllocateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221", + "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure" + "vuid": "VUID-vkCmdBlitImage-dstImage-02000", + "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT" }, { - "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of pAllocateInfo::descriptorSetCount VkDescriptorSet handles" - } - ] - }, - "VkDescriptorSetAllocateInfo": { - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306", - "text": " descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool" + "vuid": "VUID-vkCmdBlitImage-dstImage-00224", + "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307", - "text": " descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts" - } - ], - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308", - "text": " Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" - } - ], - "(VK_EXT_descriptor_indexing)": [ + "vuid": "VUID-vkCmdBlitImage-dstImage-00225", + "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044", - "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT flag set" - } - ], - "core": [ + "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226", + "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO" + "vuid": "VUID-vkCmdBlitImage-srcImage-00229", + "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" + "vuid": "VUID-vkCmdBlitImage-srcImage-00230", + "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "vuid": "VUID-vkCmdBlitImage-srcImage-00231", + "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", - "text": " pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles" + "vuid": "VUID-vkCmdBlitImage-srcImage-00232", + "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "vuid": "VUID-vkCmdBlitImage-srcImage-00233", + "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent", - "text": " Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT": { - "(VK_EXT_descriptor_indexing)": [ + "vuid": "VUID-vkCmdBlitImage-dstImage-00234", + "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + }, { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfoEXT-descriptorSetCount-03045", - "text": " If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount" + "vuid": "VUID-vkCmdBlitImage-filter-02001", + "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfoEXT-pSetLayouts-03046", - "text": " If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable descriptor count binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created." + "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705", + "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT" + "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706", + "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfoEXT-pDescriptorCounts-parameter", - "text": " If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values" - } - ] - }, - "vkFreeDescriptorSets": { - "core": [ + "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707", + "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + }, { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309", - "text": " All submitted commands that refer to any element of pDescriptorSets must have completed execution" + "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708", + "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE" + "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00311", - "text": " Each valid handle in pDescriptorSets must have been allocated from descriptorPool" + "vuid": "VUID-vkCmdBlitImage-srcImage-parameter", + "text": " srcImage must be a valid VkImage handle" }, { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312", - "text": " descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag" + "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter", + "text": " srcImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-vkFreeDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBlitImage-dstImage-parameter", + "text": " dstImage must be a valid VkImage handle" }, { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter", + "text": " dstImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "vuid": "VUID-vkCmdBlitImage-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures" }, { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdBlitImage-filter-parameter", + "text": " filter must be a valid VkFilter value" }, { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent", - "text": " Each element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool" - } - ] - }, - "vkResetDescriptorPool": { - "core": [ + "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313", - "text": " All uses of descriptorPool (via any allocated descriptor sets) must have completed execution" + "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkResetDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBlitImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" + "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength", + "text": " regionCount must be greater than 0" }, { - "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdBlitImage-commonparent", + "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + { + "vuid": "VUID-vkCmdBlitImage-srcImage-01561", + "text": " srcImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" }, { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdBlitImage-dstImage-01562", + "text": " dstImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" } - ] - }, - "vkUpdateDescriptorSets": { - "!(VK_EXT_descriptor_indexing)": [ + ], + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-vkUpdateDescriptorSets-dstSet-00314", - "text": " The dstSet member of each element of pDescriptorWrites or pDescriptorCopies must not be used by any command that was recorded to a command buffer which is in the pending state." + "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00222", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + }, + { + "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00227", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" } ], - "(VK_EXT_descriptor_indexing)": [ + "(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-vkUpdateDescriptorSets-None-03047", - "text": " Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT bits set must not be used by any command that was recorded to a command buffer which is in the pending state." + "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + }, + { + "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" } ], - "core": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkUpdateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBlitImage-filter-02002", + "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" }, { - "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter", - "text": " If descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" - }, + "vuid": "VUID-vkCmdBlitImage-filter-00237", + "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must have a VkImageType of VK_IMAGE_TYPE_2D" + } + ], + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter", - "text": " If descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures" + "vuid": "VUID-vkCmdBlitImage-dstImage-02545", + "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" } ] }, - "VkWriteDescriptorSet": { + "VkImageBlit": { "core": [ { - "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315", - "text": " dstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet’s descriptor set layout was created" + "vuid": "VUID-VkImageBlit-aspectMask-00238", + "text": " The aspectMask member of srcSubresource and dstSubresource must match" }, { - "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316", - "text": " dstBinding must be a binding with a non-zero descriptorCount" + "vuid": "VUID-VkImageBlit-layerCount-00239", + "text": " The layerCount member of srcSubresource and dstSubresource must match" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags." + "vuid": "VUID-VkImageBlit-srcImage-00240", + "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers." + "vuid": "VUID-VkImageBlit-aspectMask-00241", + "text": " The aspectMask member of srcSubresource must specify aspects present in the calling command’s srcImage" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319", - "text": " descriptorType must match the type of dstBinding within dstSet" + "vuid": "VUID-VkImageBlit-aspectMask-00242", + "text": " The aspectMask member of dstSubresource must specify aspects present in the calling command’s dstImage" }, { - "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320", - "text": " dstSet must be a valid VkDescriptorSet handle" + "vuid": "VUID-VkImageBlit-srcOffset-00243", + "text": " srcOffset[0].x and srcOffset[1].x must both be greater than or equal to 0 and less than or equal to the source image subresource width" }, { - "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "vuid": "VUID-VkImageBlit-srcOffset-00244", + "text": " srcOffset[0].y and srcOffset[1].y must both be greater than or equal to 0 and less than or equal to the source image subresource height" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00322", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pImageInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorImageInfo structures" + "vuid": "VUID-VkImageBlit-srcImage-00245", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset[0].y must be 0 and srcOffset[1].y must be 1" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00323", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pTexelBufferView must be a valid pointer to an array of descriptorCount valid VkBufferView handles" + "vuid": "VUID-VkImageBlit-srcOffset-00246", + "text": " srcOffset[0].z and srcOffset[1].z must both be greater than or equal to 0 and less than or equal to the source image subresource depth" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures" + "vuid": "VUID-VkImageBlit-srcImage-00247", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then srcOffset[0].z must be 0 and srcOffset[1].z must be 1" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object" + "vuid": "VUID-VkImageBlit-dstOffset-00248", + "text": " dstOffset[0].x and dstOffset[1].x must both be greater than or equal to 0 and less than or equal to the destination image subresource width" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00326", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView and imageLayout members of each element of pImageInfo must be a valid VkImageView and VkImageLayout, respectively" + "vuid": "VUID-VkImageBlit-dstOffset-00249", + "text": " dstOffset[0].y and dstOffset[1].y must both be greater than or equal to 0 and less than or equal to the destination image subresource height" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain" + "vuid": "VUID-VkImageBlit-dstImage-00250", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset[0].y must be 0 and dstOffset[1].y must be 1" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01947", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding" + "vuid": "VUID-VkImageBlit-dstOffset-00251", + "text": " dstOffset[0].z and dstOffset[1].z must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler Y’CBCR conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler" + "vuid": "VUID-VkImageBlit-dstImage-00252", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then dstOffset[0].z must be 0 and dstOffset[1].z must be 1" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01402", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, for each descriptor that will be accessed via load or store operations the imageLayout member for corresponding elements of pImageInfo must be VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-VkImageBlit-srcSubresource-parameter", + "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" - }, + "vuid": "VUID-VkImageBlit-dstSubresource-parameter", + "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + } + ] + }, + "vkCmdResolveImage": { + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" + "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837", + "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838", + "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set" - }, + "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839", + "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" + } + ], + "core": [ { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set" + "vuid": "VUID-vkCmdResolveImage-pRegions-00255", + "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange" + "vuid": "VUID-vkCmdResolveImage-srcImage-00256", + "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange" + "vuid": "VUID-vkCmdResolveImage-srcImage-00257", + "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00334", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT set" + "vuid": "VUID-vkCmdResolveImage-dstImage-00258", + "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00335", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set" + "vuid": "VUID-vkCmdResolveImage-dstImage-00259", + "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle" + "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260", + "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set" + "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262", + "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01403", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image or Combined Image Sampler, corresponding to its type" + "vuid": "VUID-vkCmdResolveImage-dstImage-02003", + "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" + "vuid": "VUID-vkCmdResolveImage-srcImage-01386", + "text": " srcImage and dstImage must have been created with the same image format" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set" + "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709", + "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkWriteDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET" + "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710", + "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext", - "text": " 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 VkWriteDescriptorSetAccelerationStructureNV or VkWriteDescriptorSetInlineUniformBlockEXT" + "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711", + "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" }, { - "vuid": "VUID-VkWriteDescriptorSet-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712", + "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" + "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength", - "text": " descriptorCount must be greater than 0" + "vuid": "VUID-vkCmdResolveImage-srcImage-parameter", + "text": " srcImage must be a valid VkImage handle" }, { - "vuid": "VUID-VkWriteDescriptorSet-commonparent", - "text": " Both of dstSet, and the elements of pTexelBufferView that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter", + "text": " srcImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" + "vuid": "VUID-vkCmdResolveImage-dstImage-parameter", + "text": " dstImage must be a valid VkImage handle" }, { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlockEXT structure whose dataSize member equals descriptorCount" - } - ], - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount" - } - ], - "(VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical VkDescriptorBindingFlagBitsEXT." - } - ] - }, - "VkDescriptorBufferInfo": { - "core": [ - { - "vuid": "VUID-VkDescriptorBufferInfo-offset-00340", - "text": " offset must be less than the size of buffer" + "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter", + "text": " dstImageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-VkDescriptorBufferInfo-range-00341", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" + "vuid": "VUID-vkCmdResolveImage-pRegions-parameter", + "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures" }, { - "vuid": "VUID-VkDescriptorBufferInfo-range-00342", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset" + "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "VkDescriptorImageInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDescriptorImageInfo-imageView-00343", - "text": " imageView must not be 2D or 2D array image view created from a 3D image" - } - ], - "core": [ + "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-VkDescriptorImageInfo-imageView-01976", - "text": " If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both." + "vuid": "VUID-vkCmdResolveImage-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344", - "text": " imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules" + "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength", + "text": " regionCount must be greater than 0" }, { - "vuid": "VUID-VkDescriptorImageInfo-commonparent", - "text": " Both of imageView, and sampler that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdResolveImage-commonparent", + "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkDescriptorImageInfo-sampler-01564", - "text": " If sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or (for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ] - }, - "VkWriteDescriptorSetInlineUniformBlockEXT": { - "(VK_EXT_inline_uniform_block)": [ + "!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222", - "text": " dataSize must be an integer multiple of 4" + "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00261", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" }, { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT" - }, + "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00263", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + } + ], + "(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400", + "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" }, { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401", + "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdResolveImage-dstImage-02546", + "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" } ] }, - "VkWriteDescriptorSetAccelerationStructureNV": { - "(VK_NV_ray_tracing)": [ + "VkImageResolve": { + "core": [ { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-02236", - "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" + "vuid": "VUID-VkImageResolve-aspectMask-00266", + "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" }, { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV" + "vuid": "VUID-VkImageResolve-layerCount-00267", + "text": " The layerCount member of srcSubresource and dstSubresource must match" }, { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles" + "vuid": "VUID-VkImageResolve-srcImage-00268", + "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" }, { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - } - ] - }, - "VkCopyDescriptorSet": { - "core": [ + "vuid": "VUID-VkImageResolve-srcOffset-00269", + "text": " srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the source image subresource width" + }, { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345", - "text": " srcBinding must be a valid binding within srcSet" + "vuid": "VUID-VkImageResolve-srcOffset-00270", + "text": " srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the source image subresource height" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346", - "text": " The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "vuid": "VUID-VkImageResolve-srcImage-00271", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.y must be 0 and extent.height must be 1" }, { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347", - "text": " dstBinding must be a valid binding within dstSet" + "vuid": "VUID-VkImageResolve-srcOffset-00272", + "text": " srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the source image subresource depth" }, { - "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" + "vuid": "VUID-VkImageResolve-srcImage-00273", + "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then srcOffset.z must be 0 and extent.depth must be 1" }, { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632", - "text": " The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet" + "vuid": "VUID-VkImageResolve-dstOffset-00274", + "text": " dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349", - "text": " If srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates" + "vuid": "VUID-VkImageResolve-dstOffset-00275", + "text": " dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the destination image subresource height" }, { - "vuid": "VUID-VkCopyDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET" + "vuid": "VUID-VkImageResolve-dstImage-00276", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.y must be 0 and extent.height must be 1" }, { - "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkImageResolve-dstOffset-00277", + "text": " dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter", - "text": " srcSet must be a valid VkDescriptorSet handle" + "vuid": "VUID-VkImageResolve-dstImage-00278", + "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then dstOffset.z must be 0 and extent.depth must be 1" }, { - "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter", - "text": " dstSet must be a valid VkDescriptorSet handle" + "vuid": "VUID-VkImageResolve-srcSubresource-parameter", + "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" }, { - "vuid": "VUID-VkCopyDescriptorSet-commonparent", - "text": " Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkImageResolve-dstSubresource-parameter", + "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" } - ], - "(VK_EXT_inline_uniform_block)": [ + ] + }, + "vkCmdWriteBufferMarkerAMD": { + "core": [ { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223", - "text": " If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, srcArrayElement must be an integer multiple of 4" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074", + "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" }, { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224", - "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075", + "text": " If the geometry shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225", - "text": " If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" - } - ], - "(VK_EXT_descriptor_indexing)": [ + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076", + "text": " If the tessellation shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918", - "text": " If srcSet’s layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT flag set, then dstSet’s layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT flag set" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798", + "text": " dstOffset must be less than or equal to the size of dstBuffer minus 4" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01919", - "text": " If srcSet’s layout was created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT flag set, then dstSet’s layout must also have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT flag set" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799", + "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920", - "text": " If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT flag set" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800", + "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01921", - "text": " If the descriptor pool from which srcSet was allocated was created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT flag set, then the descriptor pool from which dstSet was allocated must also have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT flag set" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801", + "text": " dstOffset must be a multiple of 4" } - ] - }, - "vkCreateDescriptorUpdateTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + ], + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077", + "text": " If the conditional rendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" + } + ], + "(VK_EXT_fragment_density_map)": [ { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure" - }, + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078", + "text": " If the fragment density map feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" + } + ], + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079", + "text": " If the transform feedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" + } + ], + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter", - "text": " pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080", + "text": " If the mesh shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV or VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" } - ] - }, - "VkDescriptorUpdateTemplateCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + ], + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081", + "text": " If the shading rate image feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" + } + ], + "(VK_AMD_buffer_marker)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter", + "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter", + "text": " dstBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter", - "text": " pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter", - "text": " templateType must be a valid VkDescriptorUpdateTemplateType value" + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent", + "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkPipelineInputAssemblyStateCreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428", + "text": " If topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorSetLayout-parameter", - "text": " If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", + "text": " If the geometry shaders feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength", - "text": " descriptorUpdateEntryCount must be greater than 0" + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", + "text": " If the tessellation shaders feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent", - "text": " Both of descriptorSetLayout, and pipelineLayout that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [ + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO" + }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value" + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle" + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" + "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter", + "text": " topology must be a valid VkPrimitiveTopology value" } ] }, - "VkDescriptorUpdateTemplateEntry": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + "vkCmdSetPrimitiveTopologyEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354", - "text": " dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors." + "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-None-03347", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355", - "text": " dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates" + "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - } - ], - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block)": [ + "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-primitiveTopology-parameter", + "text": " primitiveTopology must be a valid VkPrimitiveTopology value" + }, { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" + "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" + "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } ] }, - "vkDestroyDescriptorUpdateTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + "vkCmdBindIndexBuffer": { + "core": [ { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", - "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdBindIndexBuffer-offset-00431", + "text": " offset must be less than the size of buffer" }, { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357", - "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdBindIndexBuffer-offset-00432", + "text": " The sum of offset and the address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the type indicated by indexType" }, { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00433", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag" }, { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", - "text": " If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00434", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent", - "text": " If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkUpdateDescriptorSetWithTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685", - "text": " pData must be a valid pointer to a memory that contains one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate" + "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter", + "text": " indexType must be a valid VkIndexType value" }, { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", - "text": " descriptorSet must be a valid VkDescriptorSet handle" + "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent", - "text": " descriptorUpdateTemplate must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdBindIndexBuffer-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02507", + "text": " indexType must not be VK_INDEX_TYPE_NONE_KHR" + } + ], + "(VK_EXT_index_type_uint8)": [ + { + "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02765", + "text": " If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled" } ] }, - "vkCmdBindDescriptorSets": { + "vkCmdDraw": { "core": [ { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358", - "text": " Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359", - "text": " dynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets" + "vuid": "VUID-vkCmdDraw-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360", - "text": " The sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "vuid": "VUID-vkCmdDraw-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "vuid": "VUID-vkCmdDraw-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" + "vuid": "VUID-vkCmdDraw-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" + "vuid": "VUID-vkCmdDraw-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", - "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset, as defined above, and the range of the binding must be less than or equal to the size of the buffer" + "vuid": "VUID-vkCmdDraw-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDraw-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "vuid": "VUID-vkCmdDraw-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkCmdDraw-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSet handles" + "vuid": "VUID-vkCmdDraw-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter", - "text": " If dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values" + "vuid": "VUID-vkCmdDraw-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDraw-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDraw-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" + "vuid": "VUID-vkCmdDraw-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdBindDescriptorSets-commonparent", - "text": " Each of commandBuffer, layout, and the elements of pDescriptorSets must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdPushDescriptorSetKHR": { - "(VK_KHR_push_descriptor)": [ + "vuid": "VUID-vkCmdDraw-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "vuid": "VUID-vkCmdDraw-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364", - "text": " set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" + "vuid": "VUID-vkCmdDraw-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365", - "text": " set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" + "vuid": "VUID-vkCmdDraw-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDraw-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + "vuid": "VUID-vkCmdDraw-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkCmdDraw-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter", - "text": " pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" + "vuid": "VUID-vkCmdDraw-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording", + "vuid": "VUID-vkCmdDraw-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength", - "text": " descriptorWriteCount must be greater than 0" + "vuid": "VUID-vkCmdDraw-renderpass", + "text": " This command must only be called inside of a render pass instance" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDraw-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDraw-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDraw-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } - ] - }, - "vkCmdPushDescriptorSetWithTemplateKHR": { - "(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366", - "text": " The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family" + "vuid": "VUID-vkCmdDraw-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDraw-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686", - "text": " pData must be a valid pointer to a memory that contains one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplateKHR" + "vuid": "VUID-vkCmdDraw-commandBuffer-02712", + "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDraw-commandBuffer-02713", + "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdDraw-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" + "vuid": "VUID-vkCmdDraw-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkCmdDraw-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDraw-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ + { + "vuid": "VUID-vkCmdDraw-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDraw-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdDraw-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent", - "text": " Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDraw-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ + { + "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ] }, - "vkCmdPushConstants": { + "vkCmdDrawIndexed": { "core": [ { - "vuid": "VUID-vkCmdPushConstants-offset-01795", - "text": " For each byte in the range specified by offset and size and for each shader stage in stageFlags, there must be a push constant range in layout that includes that byte and that stage" + "vuid": "VUID-vkCmdDrawIndexed-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdPushConstants-offset-01796", - "text": " For each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags" + "vuid": "VUID-vkCmdDrawIndexed-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdPushConstants-offset-00368", - "text": " offset must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexed-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdPushConstants-size-00369", - "text": " size must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexed-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdPushConstants-offset-00370", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" + "vuid": "VUID-vkCmdDrawIndexed-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdPushConstants-size-00371", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" + "vuid": "VUID-vkCmdDrawIndexed-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdPushConstants-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkCmdDrawIndexed-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + "vuid": "VUID-vkCmdDrawIndexed-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" + "vuid": "VUID-vkCmdDrawIndexed-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdPushConstants-pValues-parameter", - "text": " pValues must be a valid pointer to an array of size bytes" + "vuid": "VUID-vkCmdDrawIndexed-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexed-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndexed-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdPushConstants-size-arraylength", - "text": " size must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexed-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdPushConstants-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetBufferDeviceAddressEXT": { - "(VK_EXT_buffer_device_address)": [ + "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + }, { - "vuid": "VUID-vkGetBufferDeviceAddressEXT-None-02598", - "text": " The bufferDeviceAddress feature must be enabled" + "vuid": "VUID-vkCmdDrawIndexed-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkGetBufferDeviceAddressEXT-device-02599", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" + "vuid": "VUID-vkCmdDrawIndexed-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkGetBufferDeviceAddressEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdDrawIndexed-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkGetBufferDeviceAddressEXT-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfoEXT structure" - } - ] - }, - "VkBufferDeviceAddressInfoEXT": { - "(VK_EXT_buffer_device_address)": [ + "vuid": "VUID-vkCmdDrawIndexed-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + }, { - "vuid": "VUID-VkBufferDeviceAddressInfoEXT-buffer-02600", - "text": " If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndexed-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkBufferDeviceAddressInfoEXT-buffer-02601", - "text": " buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT" + "vuid": "VUID-vkCmdDrawIndexed-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-VkBufferDeviceAddressInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT" + "vuid": "VUID-vkCmdDrawIndexed-indexSize-00463", + "text": " (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" }, { - "vuid": "VUID-VkBufferDeviceAddressInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkBufferDeviceAddressInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndexed-renderpass", + "text": " This command must only be called inside of a render pass instance" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } - ] - }, - "vkCreateQueryPool": { - "core": [ + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCreateQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdDrawIndexed-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure" + "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCreateQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712", + "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" }, { - "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter", - "text": " pQueryPool must be a valid pointer to a VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713", + "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" } - ] - }, - "VkQueryPoolCreateInfo": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791", - "text": " If the pipeline statistics queries feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS" + "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792", - "text": " If queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" + "vuid": "VUID-vkCmdDrawIndexed-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO" + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdDrawIndexed-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ] }, - "vkDestroyQueryPool": { + "vkCmdDrawIndirect": { "core": [ { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00793", - "text": " All submitted commands that refer to queryPool must have completed execution" + "vuid": "VUID-vkCmdDrawIndirect-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00794", - "text": " If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdDrawIndirect-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00795", - "text": " If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkDestroyQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdDrawIndirect-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter", - "text": " If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirect-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkDestroyQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdDrawIndirect-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkDestroyQueryPool-queryPool-parent", - "text": " If queryPool is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdResetQueryPool": { - "core": [ + "vuid": "VUID-vkCmdDrawIndirect-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + }, { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", - "text": " firstQuery must be less than the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirect-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirect-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirect-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndirect-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirect-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdResetQueryPool-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndirect-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdResetQueryPool-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdBeginQuery": { - "core": [ + "vuid": "VUID-vkCmdDrawIndirect-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + }, { - "vuid": "VUID-vkCmdBeginQuery-queryPool-01922", - "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" + "vuid": "VUID-vkCmdDrawIndirect-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdBeginQuery-None-00807", - "text": " All queries used by the command must be unavailable" + "vuid": "VUID-vkCmdDrawIndirect-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdBeginQuery-queryType-00800", - "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" + "vuid": "VUID-vkCmdDrawIndirect-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdBeginQuery-query-00802", - "text": " query must be less than the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirect-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdBeginQuery-queryType-00803", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndirect-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdBeginQuery-queryType-00804", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718", + "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" }, { - "vuid": "VUID-vkCmdBeginQuery-queryType-00805", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719", + "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirect-firstInstance-00478", + "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndirectCommand structures accessed by this command must be 0" }, { - "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476", + "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" }, { - "vuid": "VUID-vkCmdBeginQuery-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" + "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487", + "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording", + "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488", + "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdBeginQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawIndirect-renderpass", + "text": " This command must only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_VERSION_1_1)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdDrawIndirect-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdBeginQuery-query-00808", - "text": " If vkCmdBeginQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirect-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_EXT_transform_feedback)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdBeginQuery-queryType-02327", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdBeginQuery-queryType-02328", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" + "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } - ] - }, - "vkCmdBeginQueryIndexedEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-02329", - "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02330", - "text": " All queries used by the command must be unavailable" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02331", - "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-02332", - "text": " query must be less than the number of queries in queryPool" - }, + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02333", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, + "vuid": "VUID-vkCmdDrawIndirect-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02334", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02335", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" - }, + "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, + "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" - }, + "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02340", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" + "vuid": "VUID-vkCmdDrawIndirect-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, + "vuid": "VUID-vkCmdDrawIndirect-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [ + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-02336", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-02337", - "text": " If vkCmdBeginQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ] }, - "vkCmdEndQuery": { + "VkDrawIndirectCommand": { "core": [ { - "vuid": "VUID-vkCmdEndQuery-None-01923", - "text": " All queries used by the command must be active" + "vuid": "VUID-VkDrawIndirectCommand-None-00500", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdEndQuery-query-00810", - "text": " query must be less than the number of queries in queryPool" + "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501", + "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + } + ] + }, + "vkCmdDrawIndirectCount": { + "core": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdEndQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdEndQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdDrawIndirectCount-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" + }, { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" + }, { - "vuid": "VUID-vkCmdEndQuery-query-00812", - "text": " If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ] - }, - "vkCmdEndQueryIndexedEXT": { - "(VK_EXT_transform_feedback)": [ + "vuid": "VUID-vkCmdDrawIndirectCount-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342", - "text": " All queries used by the command must be active" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343", - "text": " query must be less than the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02346", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02347", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectCount-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirectCount-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdDrawIndirectCount-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdDrawIndirectCount-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" + }, { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345", - "text": " If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ] - }, - "vkGetQueryPoolResults": { - "core": [ + "vuid": "VUID-vkCmdDrawIndirectCount-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + }, { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", - "text": " firstQuery must be less than the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetQueryPoolResults-flags-00814", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags then pData and stride must be multiples of 4" + "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkGetQueryPoolResults-flags-00815", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8" + "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714", + "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", - "text": " dataSize must be large enough to contain the result of each query, as described here" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715", + "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" + "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716", + "text": " countBufferOffset must be a multiple of 4" }, { - "vuid": "VUID-vkGetQueryPoolResults-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717", + "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129", + "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" }, { - "vuid": "VUID-vkGetQueryPoolResults-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" + "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110", + "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" }, { - "vuid": "VUID-vkGetQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" + "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", + "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121", + "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent", - "text": " queryPool must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122", + "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" } - ] - }, - "vkCmdCopyQueryPoolResults": { - "core": [ + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819", - "text": " dstOffset must be less than the size of dstBuffer" - }, + "vuid": "VUID-vkCmdDrawIndirectCount-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", - "text": " firstQuery must be less than the number of queries in queryPool" - }, + "vuid": "VUID-vkCmdDrawIndirectCount-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" + "vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4" - }, + "vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8" + "vuid": "VUID-vkCmdDrawIndirectCount-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824", - "text": " dstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here" + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndirectCount-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" + "vuid": "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_VERSION_1_2)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-02836", + "text": " If drawIndirectCount is not enabled this function must not be used" + } + ], + "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" + "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter", + "text": " countBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording", + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndirectCount-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent", - "text": " Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawIndirectCount-commonparent", + "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkCmdWriteTimestamp": { + "vkCmdDrawIndexedIndirect": { "core": [ { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416", - "text": " queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-00828", - "text": " The query identified by queryPool and query must be unavailable" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829", - "text": " The command pool’s queue family must support a non-zero timestampValidBits" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter", - "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdWriteTimestamp-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + }, { - "vuid": "VUID-vkCmdWriteTimestamp-None-00830", - "text": " All queries used by the command must be unavailable" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdWriteTimestamp-query-00831", - "text": " If vkCmdWriteTimestamp is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ] - }, - "vkCmdClearColorImage": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + }, { - "vuid": "VUID-vkCmdClearColorImage-image-01993", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT." - } - ], - "core": [ + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + }, { - "vuid": "VUID-vkCmdClearColorImage-image-00002", - "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdClearColorImage-image-00003", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498", - "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470", - "text": " 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" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdClearColorImage-pRanges-01692", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472", - "text": " 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" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" }, { - "vuid": "VUID-vkCmdClearColorImage-pRanges-01693", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdClearColorImage-image-00007", - "text": " image must not have a compressed or depth/stencil format" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdClearColorImage-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdClearColorImage-pColor-parameter", - "text": " pColor must be a valid pointer to a valid VkClearColorValue union" + "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718", + "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" }, { - "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" + "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719", + "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", + "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" }, { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndexedIndirect-firstInstance-00530", + "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndexedIndirectCommand structures accessed by this command must be 0" }, { - "vuid": "VUID-vkCmdClearColorImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539", + "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", + "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdClearColorImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, { - "vuid": "VUID-vkCmdClearColorImage-image-01545", - "text": " image must not use a format listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" + "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass", + "text": " This command must only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" } ], - "!(VK_KHR_shared_presentable_image)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-00005", - "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_KHR_shared_presentable_image)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394", - "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_VERSION_1_1)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805", - "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" + "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806", - "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" - } - ] - }, - "vkCmdClearDepthStencilImage": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT." + "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "!(VK_EXT_separate_stencil_usage)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00009", - "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], - "(VK_EXT_separate_stencil_usage)": [ + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658", - "text": " If any element of pRanges.aspect includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfoEXT::stencilUsage used to create image" + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659", - "text": " If any element of pRanges.aspect includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660", - "text": " If any element of pRanges.aspect includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" + "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" } ], - "core": [ + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012", - "text": " imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02499", - "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_DEPTH_BIT if the image format has a depth component" + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02500", - "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_STENCIL_BIT if the image format has a stencil component" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474", - "text": " 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" + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476", - "text": " 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" + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014", - "text": " image must have a depth/stencil format" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_VERSION_1_2)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter", - "text": " image must be a valid VkImage handle" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02837", + "text": " If drawIndirectCount is not enabled this function must not be used" + } + ] + }, + "VkDrawIndexedIndirectCommand": { + "core": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter", - "text": " pDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure" + "vuid": "VUID-VkDrawIndexedIndirectCommand-indexSize-00553", + "text": " (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" - }, + "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", + "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + } + ] + }, + "vkCmdDrawIndexedIndirectCount": { + "core": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", - "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", - "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" - } - ] - }, - "vkCmdClearAttachments": { - "core": [ - { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02501", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, then the colorAttachment member of that element must either refer to a color attachment which is VK_ATTACHMENT_UNUSED, or must be a valid color attachment." + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02502", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a depth component" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02503", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a stencil component" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdClearAttachments-pRects-00016", - "text": " The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdClearAttachments-pRects-00017", - "text": " The layers specified by each element of pRects must be contained within every attachment that pAttachments refers to" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdClearAttachments-layerCount-01934", - "text": " The layerCount member of each element of pRects must not be 0" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter", - "text": " pAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdClearAttachments-pRects-parameter", - "text": " pRects must be a valid pointer to an array of rectCount VkClearRect structures" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdClearAttachments-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength", - "text": " rectCount must be greater than 0" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504", - "text": " If commandBuffer is an unprotected command buffer, then each attachment to be cleared must not be a protected image." + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" }, { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505", - "text": " If commandBuffer is a protected command buffer, then each attachment to be cleared must not be an unprotected image." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018", - "text": " If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one." - } - ] - }, - "VkClearAttachment": { - "core": [ - { - "vuid": "VUID-VkClearAttachment-aspectMask-00019", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkClearAttachment-aspectMask-00020", - "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-VkClearAttachment-clearValue-00021", - "text": " clearValue must be a valid VkClearValue union" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkClearAttachment-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkClearAttachment-aspectMask-02246", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i." - } - ] - }, - "VkClearDepthStencilValue": { - "(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkClearDepthStencilValue-depth-00022", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkClearDepthStencilValue-depth-02506", - "text": " depth must be between 0.0 and 1.0, inclusive" - } - ] - }, - "vkCmdFillBuffer": { - "core": [ - { - "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024", - "text": " dstOffset must be less than the size of dstBuffer" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025", - "text": " dstOffset must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714", + "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdFillBuffer-size-00026", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", + "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdFillBuffer-size-00027", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716", + "text": " countBufferOffset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdFillBuffer-size-00028", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717", + "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129", + "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" }, { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", + "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" }, { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", + "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153", + "text": " If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154", + "text": " If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdFillBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdFillBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics or compute operations" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" } - ] - }, - "vkCmdUpdateBuffer": { - "core": [ + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032", - "text": " dstOffset must be less than the size of dstBuffer" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033", - "text": " dataSize must be less than or equal to the size of dstBuffer minus dstOffset" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036", - "text": " dstOffset must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037", - "text": " dataSize must be less than or equal to 65536" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038", - "text": " dataSize must be a multiple of 4" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdUpdateBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter", + "text": " countBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength", - "text": " dataSize must be greater than 0" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdUpdateBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent", + "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkCmdCopyBuffer": { + "vkCmdDrawIndirectByteCountEXT": { "core": [ { - "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113", - "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114", - "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdCopyBuffer-size-00115", - "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyBuffer-size-00116", - "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117", - "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdCopyBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdCopyBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" }, { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ] - }, - "VkBufferCopy": { - "core": [ - { - "vuid": "VUID-VkBufferCopy-size-01988", - "text": " The size must be greater than 0" - } - ] - }, - "vkCmdCopyImage": { - "core": [ - { - "vuid": "VUID-vkCmdCopyImage-pRegions-00122", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdCopyImage-pRegions-00123", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdCopyImage-pRegions-00124", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287", + "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" }, { - "vuid": "VUID-vkCmdCopyImage-srcImage-00126", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288", + "text": " The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw" }, { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289", + "text": " vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTransformFeedbackBufferDataStride" }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-00131", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290", + "text": " counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImage-00136", - "text": " The sample count of srcImage and dstImage must match" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdCopyImage-srcOffset-01783", - "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkCmdCopyImage-dstOffset-01784", - "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdCopyImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdCopyImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImage-01995", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT." + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-01996", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT." - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter", + "text": " counterBuffer must be a valid VkBuffer handle" + }, { - "vuid": "VUID-vkCmdCopyImage-srcImage-00127", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-00132", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdCopyImage-srcImage-00135", - "text": " The VkFormat of each of srcImage and dstImage must be compatible, as defined above" + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass", + "text": " This command must only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent", + "text": " Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice" } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + ] + }, + "vkCmdBeginConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImage-01546", - "text": " If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", + "text": " Conditional rendering must not already be active" }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-01547", - "text": " If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01548", - "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above" + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", + "text": " pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure" }, { - "vuid": "VUID-vkCmdCopyImage-None-01549", - "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdCopyImage-aspectMask-01550", - "text": " When a copy is performed to or from an image with a multi-planar format, the aspectMask of the srcSubresource and/or dstSubresource that refers to the multi-planar image must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for a VkFormat with three planes)" + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" } - ], - "!(VK_KHR_shared_presentable_image)": [ + ] + }, + "VkConditionalRenderingBeginInfoEXT": { + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", + "text": " buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set" + }, { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983", + "text": " offset must be less than the size of buffer by at least 32 bits" }, { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", + "text": " offset must be a multiple of 4" + }, { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT" }, { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_EXT_fragment_density_map)": [ + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, { - "vuid": "VUID-vkCmdCopyImage-dstImage-02542", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter", + "text": " flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values" } ] }, - "VkImageCopy": { - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vkCmdEndConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ { - "vuid": "VUID-VkImageCopy-aspectMask-00137", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", + "text": " Conditional rendering must be active" }, { - "vuid": "VUID-VkImageCopy-srcOffset-00157", - "text": " If the calling command’s srcImage is a compressed image, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986", + "text": " If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance" }, { - "vuid": "VUID-VkImageCopy-extent-00158", - "text": " If the calling command’s srcImage is a compressed image, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the source image subresource width" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", + "text": " If conditional rendering was made active within a subpass it must be ended in the same subpass" }, { - "vuid": "VUID-VkImageCopy-extent-00159", - "text": " If the calling command’s srcImage is a compressed image, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the source image subresource height" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageCopy-extent-00160", - "text": " If the calling command’s srcImage is a compressed image, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the source image subresource depth" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageCopy-dstOffset-00162", - "text": " If the calling command’s dstImage is a compressed format image, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + } + ] + }, + "vkCmdDrawMeshTasksNV": { + "core": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-VkImageCopy-extent-00163", - "text": " If the calling command’s dstImage is a compressed format image, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the destination image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-VkImageCopy-extent-00164", - "text": " If the calling command’s dstImage is a compressed format image, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the destination image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-VkImageCopy-extent-00165", - "text": " If the calling command’s dstImage is a compressed format image, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the destination image subresource depth" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + }, { - "vuid": "VUID-VkImageCopy-srcImage-01551", - "text": " If neither the calling command’s srcImage nor the calling command’s dstImage has a multi-planar image format then the aspectMask member of srcSubresource and dstSubresource must match" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-VkImageCopy-srcImage-01552", - "text": " If the calling command’s srcImage has a VkFormat with two planes then the srcSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-VkImageCopy-srcImage-01553", - "text": " If the calling command’s srcImage has a VkFormat with three planes then the srcSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-VkImageCopy-dstImage-01554", - "text": " If the calling command’s dstImage has a VkFormat with two planes then the dstSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-VkImageCopy-dstImage-01555", - "text": " If the calling command’s dstImage has a VkFormat with three planes then the dstSubresource aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-VkImageCopy-srcImage-01556", - "text": " If the calling command’s srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, the dstSubresource aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-VkImageCopy-dstImage-01557", - "text": " If the calling command’s dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, the srcSubresource aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-VkImageCopy-srcImage-01727", - "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-VkImageCopy-srcImage-01728", - "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the source image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-VkImageCopy-srcImage-01729", - "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the source image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-VkImageCopy-srcImage-01730", - "text": " If the calling command’s srcImage is a compressed image, or a single-plane, “_422” image format, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the source image subresource depth" + "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkImageCopy-dstImage-01731", - "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkImageCopy-dstImage-01732", - "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the destination image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-VkImageCopy-dstImage-01733", - "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the destination image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-VkImageCopy-dstImage-01734", - "text": " If the calling command’s dstImage is a compressed format image, or a single-plane, “_422” image format, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the destination image subresource depth" + "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119", + "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" } ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCopy-layerCount-00138", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageCopy-srcImage-00139", - "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" - }, + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkImageCopy-srcImage-01789", - "text": " If the calling command’s srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then extent.depth must be 1." + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkImageCopy-extent-00140", - "text": " The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkImageCopy-srcImage-00141", - "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of the corresponding subresource must be 0 and 1, respectively" + "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-VkImageCopy-srcImage-01790", - "text": " If both srcImage and dstImage are of type VK_IMAGE_TYPE_2D then extent.depth must be 1." - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-VkImageCopy-srcImage-01791", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_2D, and the dstImage is of type VK_IMAGE_TYPE_3D, then extent.depth must equal to the layerCount member of srcSubresource." - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkImageCopy-dstImage-01792", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_2D, and the srcImage is of type VK_IMAGE_TYPE_3D, then extent.depth must equal to the layerCount member of dstSubresource." + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" } ], - "core": [ + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkImageCopy-aspectMask-00142", - "text": " The aspectMask member of srcSubresource must specify aspects present in the calling command’s srcImage" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-VkImageCopy-aspectMask-00143", - "text": " The aspectMask member of dstSubresource must specify aspects present in the calling command’s dstImage" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-VkImageCopy-srcOffset-00144", - "text": " srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the source image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-VkImageCopy-srcOffset-00145", - "text": " srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the source image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-VkImageCopy-srcImage-00146", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.y must be 0 and extent.height must be 1." + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-VkImageCopy-srcOffset-00147", - "text": " srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the source image subresource depth" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-VkImageCopy-srcImage-01785", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.z must be 0 and extent.depth must be 1." + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-VkImageCopy-dstImage-01786", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.z must be 0 and extent.depth must be 1." - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkImageCopy-srcImage-01787", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_2D, then srcOffset.z must be 0." + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-VkImageCopy-dstImage-01788", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_2D, then dstOffset.z must be 0." - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-VkImageCopy-dstOffset-00150", - "text": " dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-VkImageCopy-dstOffset-00151", - "text": " dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the destination image subresource height" - }, + "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-VkImageCopy-dstImage-00152", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.y must be 0 and extent.height must be 1." + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageCopy-dstOffset-00153", - "text": " dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageCopy-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageCopy-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass", + "text": " This command must only be called inside of a render pass instance" } ] }, - "VkImageSubresourceLayers": { + "vkCmdDrawMeshTasksIndirectNV": { "core": [ { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167", - "text": " If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168", - "text": " aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700", - "text": " layerCount must be greater than 0" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i." - } - ] - }, - "vkCmdCopyBufferToImage": { - "core": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171", - "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00172", - "text": " The image region specified by each element of pRegions must be a region that is contained within dstImage" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-01793", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718", + "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719", + "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146", + "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156", + "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", + "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT." + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "!(VK_KHR_shared_presentable_image)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00181", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_KHR_shared_presentable_image)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" } ], - "(VK_EXT_fragment_density_map)": [ + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543", - "text": " dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" } - ] - }, - "vkCmdCopyImageToBuffer": { - "core": [ + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00182", - "text": " The image region specified by each element of pRegions must be a region that is contained within srcImage" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183", - "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188", - "text": " srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-01794", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkDrawMeshTasksIndirectCommandNV": { + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" + "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175", + "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" + } + ] + }, + "vkCmdDrawMeshTasksIndirectCountNV": { + "core": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" + }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT." - } - ], - "!(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" + }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ], - "(VK_EXT_fragment_density_map)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544", - "text": " srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ] - }, - "VkBufferImageCopy": { - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" + }, { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-00193", - "text": " If the calling command’s VkImage parameter’s format is not a depth/stencil format, then bufferOffset must be a multiple of the format’s texel block size." + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00203", - "text": " If the calling command’s VkImage parameter is a compressed image, bufferRowLength must be a multiple of the compressed texel block width" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00204", - "text": " If the calling command’s VkImage parameter is a compressed image, bufferImageHeight must be a multiple of the compressed texel block height" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkBufferImageCopy-imageOffset-00205", - "text": " If the calling command’s VkImage parameter is a compressed image, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-00206", - "text": " If the calling command’s VkImage parameter is a compressed image, bufferOffset must be a multiple of the compressed texel block size in bytes" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-VkBufferImageCopy-imageExtent-00207", - "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkBufferImageCopy-imageExtent-00208", - "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkBufferImageCopy-imageExtent-00209", - "text": " If the calling command’s VkImage parameter is a compressed image, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the image subresource depth" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710", + "text": " offset must be a multiple of 4" + }, { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-01558", - "text": " If the calling command’s VkImage parameter’s format is not a depth/stencil format or a multi-planar format, then bufferOffset must be a multiple of the format’s texel block size." + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714", + "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-01559", - "text": " If the calling command’s VkImage parameter’s format is a multi-planar format, then bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715", + "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkBufferImageCopy-None-01735", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferRowLength must be a multiple of the compressed texel block width" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716", + "text": " countBufferOffset must be a multiple of 4" }, { - "vuid": "VUID-VkBufferImageCopy-None-01736", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferImageHeight must be a multiple of the compressed texel block height" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717", + "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" }, { - "vuid": "VUID-VkBufferImageCopy-None-01737", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129", + "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" }, { - "vuid": "VUID-VkBufferImageCopy-None-01738", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, bufferOffset must be a multiple of the compressed texel block size in bytes" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", + "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" }, { - "vuid": "VUID-VkBufferImageCopy-None-01739", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the image subresource width" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", + "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-VkBufferImageCopy-None-01740", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191", + "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-VkBufferImageCopy-None-01741", - "text": " If the calling command’s VkImage parameter is a compressed image, or a single-plane, “_422” image format, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the image subresource depth" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192", + "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkBufferImageCopy-aspectMask-01560", - "text": " If the calling command’s VkImage parameter’s format is a multi-planar format, then the aspectMask member of imageSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "core": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-00194", - "text": " bufferOffset must be a multiple of 4" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195", - "text": " bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00196", - "text": " bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-VkBufferImageCopy-imageOffset-00197", - "text": " imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the image subresource width" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkBufferImageCopy-imageOffset-00198", - "text": " imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the image subresource height" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-VkBufferImageCopy-srcImage-00199", - "text": " If the calling command’s srcImage (vkCmdCopyImageToBuffer) or dstImage (vkCmdCopyBufferToImage) is of type VK_IMAGE_TYPE_1D, then imageOffset.y must be 0 and imageExtent.height must be 1." - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" + } + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkBufferImageCopy-imageOffset-00200", - "text": " imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the image subresource depth" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-VkBufferImageCopy-srcImage-00201", - "text": " If the calling command’s srcImage (vkCmdCopyImageToBuffer) or dstImage (vkCmdCopyBufferToImage) is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then imageOffset.z must be 0 and imageExtent.depth must be 1" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-VkBufferImageCopy-aspectMask-00211", - "text": " The aspectMask member of imageSubresource must specify aspects present in the calling command’s VkImage parameter" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-VkBufferImageCopy-aspectMask-00212", - "text": " The aspectMask member of imageSubresource must only have a single bit set" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-VkBufferImageCopy-baseArrayLayer-00213", - "text": " If the calling command’s VkImage parameter is of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of imageSubresource must be 0 and 1, respectively" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" } ], - "!(VK_EXT_depth_range_unrestricted)": [ + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-VkBufferImageCopy-None-00214", - "text": " When copying to the depth aspect of an image subresource, the data in the source buffer must be in the range [0,1]" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } - ] - }, - "vkCmdBlitImage": { - "core": [ + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdBlitImage-pRegions-00215", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdBlitImage-pRegions-00216", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdBlitImage-pRegions-00217", - "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdBlitImage-srcImage-01999", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT." - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_NV_mesh_shader)": [ { - "vuid": "VUID-vkCmdBlitImage-srcImage-00219", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00220", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", + "text": " countBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-02000", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT." + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-00224", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-00225", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent", + "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "VkPipelineVertexInputStateCreateInfo": { + "core": [ { - "vuid": "VUID-vkCmdBlitImage-srcImage-00228", - "text": " The sample count of srcImage and dstImage must both be equal to VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613", + "text": " vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00229", - "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614", + "text": " vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00230", - "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615", + "text": " For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00231", - "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616", + "text": " All elements of pVertexBindingDescriptions must describe distinct binding numbers" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00232", - "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617", + "text": " All elements of pVertexAttributeDescriptions must describe distinct attribute locations" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-00233", - "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-00234", - "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT" }, { - "vuid": "VUID-vkCmdBlitImage-filter-02001", - "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter", + "text": " If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures" }, { - "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, + "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter", + "text": " If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures" + } + ] + }, + "VkVertexInputBindingDescription": { + "core": [ { - "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" + "vuid": "VUID-VkVertexInputBindingDescription-binding-00618", + "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkVertexInputBindingDescription-stride-00619", + "text": " stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" }, { - "vuid": "VUID-vkCmdBlitImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, + "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter", + "text": " inputRate must be a valid VkVertexInputRate value" + } + ] + }, + "VkVertexInputAttributeDescription": { + "core": [ { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-VkVertexInputAttributeDescription-location-00620", + "text": " location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621", + "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622", + "text": " offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset" }, { - "vuid": "VUID-vkCmdBlitImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures" + "vuid": "VUID-VkVertexInputAttributeDescription-format-00623", + "text": " format must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" }, { - "vuid": "VUID-vkCmdBlitImage-filter-parameter", - "text": " filter must be a valid VkFilter value" - }, + "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter", + "text": " format must be a valid VkFormat value" + } + ] + }, + "vkCmdBindVertexBuffers": { + "core": [ { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624", + "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625", + "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdBlitImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626", + "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" }, { - "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627", + "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" }, { - "vuid": "VUID-vkCmdBlitImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImage-01561", - "text": " srcImage must not use a format listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" + "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628", + "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdBlitImage-dstImage-01562", - "text": " dstImage must not use a format listed in Formats requiring sampler Y’CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00222", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04001", + "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00227", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter", + "text": " pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles" }, { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdBlitImage-filter-02002", - "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT." + "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter", + "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" }, { - "vuid": "VUID-vkCmdBlitImage-filter-00237", - "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must have a VkImageType of VK_IMAGE_TYPE_2D" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" + "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" + "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength", + "text": " bindingCount must be greater than 0" }, { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" + "vuid": "VUID-vkCmdBindVertexBuffers-commonparent", + "text": " Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_EXT_fragment_density_map)": [ + "(VK_EXT_robustness2)": [ { - "vuid": "VUID-vkCmdBlitImage-dstImage-02545", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002", + "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" } ] }, - "VkImageBlit": { - "core": [ + "vkCmdBindVertexBuffers2EXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-VkImageBlit-aspectMask-00238", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03355", + "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-VkImageBlit-layerCount-00239", - "text": " The layerCount member of srcSubresource and dstSubresource must match" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03356", + "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-VkImageBlit-srcImage-00240", - "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pOffsets-03357", + "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" }, { - "vuid": "VUID-VkImageBlit-aspectMask-00241", - "text": " The aspectMask member of srcSubresource must specify aspects present in the calling command’s srcImage" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pSizes-03358", + "text": " If pSizes is not NULL, all elements of pOffsets plus pSizes must be less than or equal to the size of the corresponding element in pBuffers" }, { - "vuid": "VUID-VkImageBlit-aspectMask-00242", - "text": " The aspectMask member of dstSubresource must specify aspects present in the calling command’s dstImage" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03359", + "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" }, { - "vuid": "VUID-VkImageBlit-srcOffset-00243", - "text": " srcOffset[0].x and srcOffset[1].x must both be greater than or equal to 0 and less than or equal to the source image subresource width" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03360", + "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkImageBlit-srcOffset-00244", - "text": " srcOffset[0].y and srcOffset[1].y must both be greater than or equal to 0 and less than or equal to the source image subresource height" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04111", + "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkImageBlit-srcImage-00245", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset[0].y must be 0 and srcOffset[1].y must be 1." + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03361", + "text": " If the bound pipeline state object was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled then pStrides must not be NULL, otherwise pStrides must be NULL" }, { - "vuid": "VUID-VkImageBlit-srcOffset-00246", - "text": " srcOffset[0].z and srcOffset[1].z must both be greater than or equal to 0 and less than or equal to the source image subresource depth" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362", + "text": " If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" }, { - "vuid": "VUID-VkImageBlit-srcImage-00247", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then srcOffset[0].z must be 0 and srcOffset[1].z must be 1." + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363", + "text": " If pStrides is not NULL each element of pStrides must be greater than or equal to the maximum extent of of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size" }, { - "vuid": "VUID-VkImageBlit-dstOffset-00248", - "text": " dstOffset[0].x and dstOffset[1].x must both be greater than or equal to 0 and less than or equal to the destination image subresource width" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageBlit-dstOffset-00249", - "text": " dstOffset[0].y and dstOffset[1].y must both be greater than or equal to 0 and less than or equal to the destination image subresource height" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter", + "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" }, { - "vuid": "VUID-VkImageBlit-dstImage-00250", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset[0].y must be 0 and dstOffset[1].y must be 1." + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pOffsets-parameter", + "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" }, { - "vuid": "VUID-VkImageBlit-dstOffset-00251", - "text": " dstOffset[0].z and dstOffset[1].z must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pSizes-parameter", + "text": " If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values" }, { - "vuid": "VUID-VkImageBlit-dstImage-00252", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then dstOffset[0].z must be 0 and dstOffset[1].z must be 1." + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-parameter", + "text": " If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values" }, { - "vuid": "VUID-VkImageBlit-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageBlit-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-bindingCount-arraylength", + "text": " If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0" + }, + { + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commonparent", + "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_EXT_robustness2)": [ + { + "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04112", + "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" } ] }, - "vkCmdResolveImage": { - "core": [ + "VkPipelineVertexInputDivisorStateCreateInfoEXT": { + "(VK_EXT_vertex_attribute_divisor)": [ { - "vuid": "VUID-vkCmdResolveImage-pRegions-00253", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" + "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdResolveImage-pRegions-00254", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" + "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter", + "text": " pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures" }, { - "vuid": "VUID-vkCmdResolveImage-pRegions-00255", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, + "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", + "text": " vertexBindingDivisorCount must be greater than 0" + } + ] + }, + "VkVertexInputBindingDivisorDescriptionEXT": { + "(VK_EXT_vertex_attribute_divisor)": [ { - "vuid": "VUID-vkCmdResolveImage-srcImage-00256", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", + "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" }, { - "vuid": "VUID-vkCmdResolveImage-srcImage-00257", - "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", + "text": " If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0" }, { - "vuid": "VUID-vkCmdResolveImage-dstImage-00258", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", + "text": " If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1" }, { - "vuid": "VUID-vkCmdResolveImage-dstImage-00259", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" + "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", + "text": " divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive" }, { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, + "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", + "text": " VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding" + } + ] + }, + "VkPipelineTessellationStateCreateInfo": { + "core": [ { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" + "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214", + "text": " patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" }, { - "vuid": "VUID-vkCmdResolveImage-dstImage-02003", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT." + "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdResolveImage-srcImage-01386", - "text": " srcImage and dstImage must have been created with the same image format" + "vuid": "VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo" }, { - "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, + "vuid": "VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" + } + ] + }, + "VkPipelineTessellationDomainOriginStateCreateInfo": { + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { - "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" + "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, + "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter", + "text": " domainOrigin must be a valid VkTessellationDomainOrigin value" + } + ] + }, + "vkCmdBindTransformFeedbackBuffersEXT": { + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355", + "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" }, { - "vuid": "VUID-vkCmdResolveImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356", + "text": " firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357", + "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-vkCmdResolveImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358", + "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" }, { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359", + "text": " All elements of pOffsets must be a multiple of 4" }, { - "vuid": "VUID-vkCmdResolveImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360", + "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag" }, { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361", + "text": " If the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize" }, { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362", + "text": " All elements of pSizes must be less than or equal to the size of the corresponding buffer in pBuffers" }, { - "vuid": "VUID-vkCmdResolveImage-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363", + "text": " All elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding element in pBuffers" }, { - "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364", + "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdResolveImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00261", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365", + "text": " Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded" }, { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00263", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter", + "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" }, { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter", + "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + }, { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_EXT_fragment_density_map)": [ + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength", + "text": " bindingCount must be greater than 0" + }, { - "vuid": "VUID-vkCmdResolveImage-dstImage-02546", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" + "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent", + "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkImageResolve": { - "core": [ + "vkCmdBeginTransformFeedbackEXT": { + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-VkImageResolve-aspectMask-00266", - "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366", + "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" }, { - "vuid": "VUID-VkImageResolve-layerCount-00267", - "text": " The layerCount member of srcSubresource and dstSubresource must match" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367", + "text": " Transform feedback must not be active" }, { - "vuid": "VUID-VkImageResolve-srcImage-00268", - "text": " If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368", + "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-VkImageResolve-srcOffset-00269", - "text": " srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the source image subresource width" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369", + "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-VkImageResolve-srcOffset-00270", - "text": " srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the source image subresource height" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607", + "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" }, { - "vuid": "VUID-VkImageResolve-srcImage-00271", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D, then srcOffset.y must be 0 and extent.height must be 1." + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370", + "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" }, { - "vuid": "VUID-VkImageResolve-srcOffset-00272", - "text": " srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the source image subresource depth" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371", + "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" }, { - "vuid": "VUID-VkImageResolve-srcImage-00273", - "text": " If the calling command’s srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then srcOffset.z must be 0 and extent.depth must be 1." + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372", + "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" }, { - "vuid": "VUID-VkImageResolve-dstOffset-00274", - "text": " dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-04128", + "text": " The last vertex processing stage of the bound graphics pipeline must have been declared with the Xfb execution mode" }, { - "vuid": "VUID-VkImageResolve-dstOffset-00275", - "text": " dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the destination image subresource height" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkImageResolve-dstImage-00276", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D, then dstOffset.y must be 0 and extent.height must be 1." + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter", + "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" }, { - "vuid": "VUID-VkImageResolve-dstOffset-00277", - "text": " dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the destination image subresource depth" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkImageResolve-dstImage-00278", - "text": " If the calling command’s dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then dstOffset.z must be 0 and extent.depth must be 1." + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkImageResolve-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-VkImageResolve-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent", + "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373", + "text": " Transform feedback must not be made active in a render pass instance with multiview enabled" } ] }, - "vkCmdWriteBufferMarkerAMD": { - "(VK_AMD_buffer_marker)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798", - "text": " dstOffset must be less than or equal to the size of dstBuffer minus 4." - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, + "vkCmdEndTransformFeedbackEXT": { + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374", + "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801", - "text": " dstOffset must be a multiple of 4" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375", + "text": " Transform feedback must be active" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376", + "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter", - "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377", + "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608", + "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378", + "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379", + "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" }, { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkPipelineInputAssemblyStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428", - "text": " If topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380", + "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", - "text": " If the geometry shaders feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", - "text": " If the tessellation shaders feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter", + "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass", + "text": " This command must only be called inside of a render pass instance" }, { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter", - "text": " topology must be a valid VkPrimitiveTopology value" + "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent", + "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkCmdBindIndexBuffer": { - "core": [ - { - "vuid": "VUID-vkCmdBindIndexBuffer-offset-00431", - "text": " offset must be less than the size of buffer" - }, + "VkPipelineViewportSwizzleStateCreateInfoNV": { + "(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdBindIndexBuffer-offset-00432", - "text": " The sum of offset and the address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the type indicated by indexType" + "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215", + "text": " viewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00433", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag" + "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00434", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter", + "text": " pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, + "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + } + ] + }, + "VkViewportSwizzleNV": { + "(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "vuid": "VUID-VkViewportSwizzleNV-x-parameter", + "text": " x must be a valid VkViewportCoordinateSwizzleNV value" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkViewportSwizzleNV-y-parameter", + "text": " y must be a valid VkViewportCoordinateSwizzleNV value" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkViewportSwizzleNV-z-parameter", + "text": " z must be a valid VkViewportCoordinateSwizzleNV value" }, { - "vuid": "VUID-vkCmdBindIndexBuffer-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02507", - "text": " indexType must not be VK_INDEX_TYPE_NONE_NV." + "vuid": "VUID-VkViewportSwizzleNV-w-parameter", + "text": " w must be a valid VkViewportCoordinateSwizzleNV value" } ] }, - "vkCmdDraw": { - "core": [ - { - "vuid": "VUID-vkCmdDraw-renderPass-00435", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "VkPipelineViewportWScalingStateCreateInfoNV": { + "(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdDraw-subpass-00436", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDraw-None-00437", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + } + ] + }, + "vkCmdSetViewportWScalingNV": { + "(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdDraw-None-00438", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01323", + "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDraw-None-00439", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324", + "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDraw-None-00440", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDraw-None-00441", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter", + "text": " pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures" }, { - "vuid": "VUID-vkCmdDraw-None-00442", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDraw-None-00443", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDraw-None-00444", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, + "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + } + ] + }, + "VkPipelineViewportStateCreateInfo": { + "core": [ { - "vuid": "VUID-vkCmdDraw-None-00445", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216", + "text": " If the multiple viewports feature is not enabled, viewportCount must not be greater than 1" }, { - "vuid": "VUID-vkCmdDraw-None-00446", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217", + "text": " If the multiple viewports feature is not enabled, scissorCount must not be greater than 1" }, { - "vuid": "VUID-vkCmdDraw-None-00447", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218", + "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDraw-None-00448", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219", + "text": " scissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDraw-None-00449", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-x-02821", + "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" }, { - "vuid": "VUID-vkCmdDraw-None-01499", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02822", + "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDraw-None-02009", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02823", + "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDraw-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdDraw-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext", + "text": " 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 VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV" }, { - "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdDraw-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDraw-None-02010", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDraw-None-00452", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" } ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + "!(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDraw-filterCubic-02613", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220", + "text": " scissorCount and viewportCount must be identical" }, { - "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02614", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + }, { - "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-00453", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength", + "text": " scissorCount must be greater than 0" } ], - "(VK_VERSION_1_1)": [ + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDraw-commandBuffer-01850", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134", + "text": " If the graphics pipeline is being created without VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount and viewportCount must be identical" }, { - "vuid": "VUID-vkCmdDraw-commandBuffer-01851", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135", + "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT set then viewportCount must be 0, otherwise it must be greater than 0" }, { - "vuid": "VUID-vkCmdDraw-commandBuffer-01852", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, the image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-01512", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136", + "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount must be 0, otherwise it must be greater than 0" } ], - "(VK_NV_corner_sampled_image)": [ + "(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-vkCmdDraw-flags-02042", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726", + "text": " If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount" } ] }, - "vkCmdDrawIndexed": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndexed-renderPass-00454", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-subpass-00455", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-00456", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-00457", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vkCmdSetViewportWithCountEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexed-None-00458", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-None-03393", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00459", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-03394", + "text": " viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00460", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-03395", + "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00461", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00462", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-pViewports-parameter", + "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" }, { - "vuid": "VUID-vkCmdDrawIndexed-indexSize-00463", - "text": " (indexSize * (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00464", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00465", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + } + ] + }, + "vkCmdSetScissorWithCountEXT": { + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdSetScissorWithCountEXT-None-03396", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00466", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-03397", + "text": " scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00467", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-03398", + "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00468", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-x-03399", + "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-00469", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-offset-03400", + "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-02011", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkCmdSetScissorWithCountEXT-offset-03401", + "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-01500", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-pScissors-parameter", + "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording", + "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDrawIndexed-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-None-02012", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-arraylength", + "text": " scissorCount must be greater than 0" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + ] + }, + "vkCmdSetViewport": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexed-None-00472", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + "vuid": "VUID-vkCmdSetViewport-firstViewport-01222", + "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" + }, { - "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02615", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-vkCmdSetViewport-firstViewport-01223", + "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02616", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdSetViewport-firstViewport-01224", + "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" + }, { - "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-00473", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-vkCmdSetViewport-viewportCount-01225", + "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" + }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-01853", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-01854", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-vkCmdSetViewport-pViewports-parameter", + "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" }, { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-01855", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, the image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_EXT_sample_locations)": [ + "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-01513", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-vkCmdDrawIndexed-flags-02043", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" } ] }, - "vkCmdDrawIndirect": { + "VkViewport": { "core": [ { - "vuid": "VUID-vkCmdDrawIndirect-buffer-00474", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkViewport-width-01770", + "text": " width must be greater than 0.0" }, { - "vuid": "VUID-vkCmdDrawIndirect-buffer-01660", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkViewport-width-01771", + "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]" }, { - "vuid": "VUID-vkCmdDrawIndirect-offset-00475", - "text": " offset must be a multiple of 4" + "vuid": "VUID-VkViewport-height-01773", + "text": " The absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]" }, { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" + "vuid": "VUID-VkViewport-x-01774", + "text": " x must be greater than or equal to viewportBoundsRange[0]" }, { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00477", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" + "vuid": "VUID-VkViewport-x-01232", + "text": " (x + width) must be less than or equal to viewportBoundsRange[1]" }, { - "vuid": "VUID-vkCmdDrawIndirect-firstInstance-00478", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndirectCommand structures accessed by this command must be 0" + "vuid": "VUID-VkViewport-y-01775", + "text": " y must be greater than or equal to viewportBoundsRange[0]" }, { - "vuid": "VUID-vkCmdDrawIndirect-renderPass-00479", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "vuid": "VUID-VkViewport-y-01233", + "text": " (y + height) must be less than or equal to viewportBoundsRange[1]" + } + ], + "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ { - "vuid": "VUID-vkCmdDrawIndirect-subpass-00480", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "vuid": "VUID-VkViewport-height-01772", + "text": " height must be greater than 0.0" + } + ], + "(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ { - "vuid": "VUID-vkCmdDrawIndirect-None-00481", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkViewport-y-01776", + "text": " y must be less than or equal to viewportBoundsRange[1]" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00482", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-VkViewport-y-01777", + "text": " (y + height) must be greater than or equal to viewportBoundsRange[0]" + } + ], + "(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkCmdDrawIndirect-None-00483", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkViewport-minDepth-01234", + "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00484", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" - }, + "vuid": "VUID-VkViewport-maxDepth-01235", + "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.0, inclusive" + } + ], + "!(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkCmdDrawIndirect-None-00485", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-VkViewport-minDepth-02540", + "text": " minDepth must be between 0.0 and 1.0, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00486", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" - }, + "vuid": "VUID-VkViewport-maxDepth-02541", + "text": " maxDepth must be between 0.0 and 1.0, inclusive" + } + ] + }, + "VkPipelineRasterizationStateCreateInfo": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782", + "text": " If the depth clamping feature is not enabled, depthClampEnable must be VK_FALSE" }, { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00489", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext", + "text": " 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 VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00490", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00491", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00492", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter", + "text": " polygonMode must be a valid VkPolygonMode value" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00493", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter", + "text": " cullMode must be a valid combination of VkCullModeFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00494", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter", + "text": " frontFace must be a valid VkFrontFace value" + } + ], + "!(VK_NV_fill_rectangle)": [ + { + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413", + "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL" + } + ], + "(VK_NV_fill_rectangle)": [ + { + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507", + "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-00495", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414", + "text": " If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV" + } + ] + }, + "VkPipelineRasterizationDepthClipStateCreateInfoEXT": { + "(VK_EXT_depth_clip_enable)": [ + { + "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-02013", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" + } + ] + }, + "VkPipelineMultisampleStateCreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784", + "text": " If the sample rate shading feature is not enabled, sampleShadingEnable must be VK_FALSE" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-01501", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785", + "text": " If the alpha to one feature is not enabled, alphaToOneEnable must be VK_FALSE" }, { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786", + "text": " minSampleShading must be in the range [0,1]" }, { - "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext", + "text": " 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, VkPipelineCoverageReductionStateCreateInfoNV, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT" }, { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdDrawIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter", + "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" + }, { - "vuid": "VUID-vkCmdDrawIndirect-None-02014", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter", + "text": " If pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) VkSampleMask values" } ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + "(VK_NV_framebuffer_mixed_samples)": [ { - "vuid": "VUID-vkCmdDrawIndirect-None-00498", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415", + "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + ] + }, + "VkPipelineRasterizationStateStreamCreateInfoEXT": { + "(VK_EXT_transform_feedback)": [ { - "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02617", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324", + "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02618", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325", + "text": " rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + }, { - "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-00499", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." - } - ], - "(VK_VERSION_1_1)": [ + "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326", + "text": " rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE" + }, { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02640", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-01856", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" } - ], - "(VK_EXT_sample_locations)": [ + ] + }, + "VkPipelineRasterizationStateRasterizationOrderAMD": { + "(VK_AMD_rasterization_order)": [ { - "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-01514", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD" + }, { - "vuid": "VUID-vkCmdDrawIndirect-flags-02044", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter", + "text": " rasterizationOrder must be a valid VkRasterizationOrderAMD value" } ] }, - "VkDrawIndirectCommand": { - "core": [ + "VkPipelineSampleLocationsStateCreateInfoEXT": { + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-VkDrawIndirectCommand-None-00500", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter", + "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" } ] }, - "vkCmdDrawIndirectCountKHR": { - "(VK_KHR_draw_indirect_count)": [ + "VkSampleLocationsInfoEXT": { + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-buffer-03104", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526", + "text": " sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-buffer-03105", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527", + "text": " sampleLocationsCount must equal sampleLocationsPerPixel {times} sampleLocationGridSize.width {times} sampleLocationGridSize.height" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-03106", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-03107", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter", + "text": " If sampleLocationsPerPixel is not 0, sampleLocationsPerPixel must be a valid VkSampleCountFlagBits value" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-offset-03108", - "text": " offset must be a multiple of 4" - }, + "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter", + "text": " If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures" + } + ] + }, + "vkCmdSetSampleLocationsEXT": { + "(VK_EXT_sample_locations)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBufferOffset-03109", - "text": " countBufferOffset must be a multiple of 4" + "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529", + "text": " The sampleLocationsPerPixel member of pSampleLocationsInfo must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-stride-03110", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" + "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530", + "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-maxDrawCount-03111", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-firstInstance-03112", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndirectCommand structures accessed by this command must be 0" + "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter", + "text": " pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-renderPass-03113", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-subpass-03114", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "VkPipelineViewportShadingRateImageStateCreateInfoNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03115", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054", + "text": " If the multiple viewports feature is not enabled, viewportCount must be 0 or 1" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03116", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055", + "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03117", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056", + "text": " If shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03118", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03119", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" - }, + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" + } + ] + }, + "vkCmdBindShadingRateImageNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03120", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058", + "text": " The shading rate image feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-03121", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059", + "text": " If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-03122", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060", + "text": " If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-03123", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061", + "text": " If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03124", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062", + "text": " If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03125", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063", + "text": " If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03126", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03127", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", + "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03128", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter", + "text": " imageLayout must be a valid VkImageLayout value" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03129", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-02015", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03131", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." - }, + "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent", + "text": " Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkCmdSetViewportShadingRatePaletteNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064", + "text": " The shading rate image feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02066", + "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067", + "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068", + "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069", + "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-02016", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03170", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-filterCubic-02619", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter", + "text": " pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-filterCubicMinmax-02620", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-maxMultiviewInstanceIndex-03132", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." - } - ], - "(VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-02641", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-03133", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-sampleLocationsEnable-03171", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-flags-02045", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength", + "text": " viewportCount must be greater than 0" } ] }, - "vkCmdDrawIndirectCountAMD": { - "(VK_AMD_draw_indirect_count)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-buffer-01661", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, + "VkShadingRatePaletteNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-buffer-01662", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071", + "text": " shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-01663", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter", + "text": " pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-01664", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, + "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength", + "text": " shadingRatePaletteEntryCount must be greater than 0" + } + ] + }, + "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-offset-00502", - "text": " offset must be a multiple of 4" + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072", + "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBufferOffset-00503", - "text": " countBufferOffset must be a multiple of 4" + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234", + "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-stride-00504", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-maxDrawCount-00505", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", + "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-firstInstance-00506", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndirectCommand structures accessed by this command must be 0" - }, + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter", + "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" + } + ] + }, + "VkCoarseSampleOrderCustomNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-renderPass-00507", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073", + "text": " shadingRate must be a shading rate that generates fragments with more than one pixel" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-subpass-00508", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074", + "text": " sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00509", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075", + "text": " sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00510", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076", + "text": " sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00511", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077", + "text": " The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00512", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter", + "text": " shadingRate must be a valid VkShadingRatePaletteEntryNV value" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00513", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter", + "text": " pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00514", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" - }, + "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength", + "text": " sampleLocationCount must be greater than 0" + } + ] + }, + "VkCoarseSampleLocationNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-00515", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078", + "text": " pixelX must be less than the width (in pixels) of the fragment" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-00516", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079", + "text": " pixelY must be less than the height (in pixels) of the fragment" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-00517", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, + "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080", + "text": " sample must be less than the number of coverage samples in each pixel belonging to the fragment" + } + ] + }, + "vkCmdSetCoarseSampleOrderNV": { + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00518", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081", + "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00519", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235", + "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00520", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00521", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter", + "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00522", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter", + "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00523", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-02017", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." - }, + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "VkPipelineRasterizationLineStateCreateInfoEXT": { + "(VK_EXT_line_rasterization)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-01502", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768", + "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769", + "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770", + "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771", + "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772", + "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773", + "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774", + "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-maxMultiviewInstanceIndex-00525", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." - } - ], - "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-02642", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-01859", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_AMD_draw_indirect_count)+(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-sampleLocationsEnable-01515", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-flags-02046", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter", + "text": " lineRasterizationMode must be a valid VkLineRasterizationModeEXT value" } ] }, - "vkCmdDrawIndexedIndirect": { + "vkCmdSetLineWidth": { "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-00526", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-01665", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-00527", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00529", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-firstInstance-00530", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndexedIndirectCommand structures accessed by this command must be 0" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-00531", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-00532", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788", + "text": " If the wide lines feature is not enabled, lineWidth must be 1.0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00533", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00534", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00535", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" - }, + "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetLineStippleEXT": { + "(VK_EXT_line_rasterization)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00536", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776", + "text": " lineStippleFactor must be in the range [1,256]" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00537", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00538", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, + "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetFrontFaceEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetFrontFaceEXT-None-03383", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00541", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00542", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdSetFrontFaceEXT-frontFace-parameter", + "text": " frontFace must be a valid VkFrontFace value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00543", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00544", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, + "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetCullModeEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00545", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdSetCullModeEXT-None-03384", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00546", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00547", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetCullModeEXT-cullMode-parameter", + "text": " cullMode must be a valid combination of VkCullModeFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02018", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-01503", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." - }, + "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetDepthBias": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790", + "text": " If the depth bias clamping feature is not enabled, depthBiasClamp must be 0.0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", + "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "VkPipelineRasterizationConservativeStateCreateInfoEXT": { + "(VK_EXT_conservative_rasterization)": [ + { + "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769", + "text": " extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02019", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter", + "text": " conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + ] + }, + "VkPipelineDiscardRectangleStateCreateInfoEXT": { + "(VK_EXT_discard_rectangles)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00550", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582", + "text": " discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02621", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02622", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-00551", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter", + "text": " discardRectangleMode must be a valid VkDiscardRectangleModeEXT value" } - ], - "(VK_VERSION_1_1)": [ + ] + }, + "vkCmdSetDiscardRectangleEXT": { + "(VK_EXT_discard_rectangles)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02643", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585", + "text": " The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-01862", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_EXT_sample_locations)": [ + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587", + "text": " The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-01516", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588", + "text": " Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02047", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." - } - ] - }, - "VkDrawIndexedIndirectCommand": { - "core": [ + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589", + "text": " Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" + }, { - "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDrawIndexedIndirectCommand-indexSize-00553", - "text": " (indexSize * (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter", + "text": " pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures" }, { - "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength", + "text": " discardRectangleCount must be greater than 0" } ] }, - "vkCmdDrawIndexedIndirectCountKHR": { - "(VK_KHR_draw_indirect_count)": [ + "vkCmdSetScissor": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-buffer-03136", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdSetScissor-firstScissor-00591", + "text": " firstScissor must be less than VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-buffer-03137", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-vkCmdSetScissor-firstScissor-00592", + "text": " The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-03138", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdSetScissor-firstScissor-00593", + "text": " If the multiple viewports feature is not enabled, firstScissor must be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-03139", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-vkCmdSetScissor-scissorCount-00594", + "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-offset-03140", - "text": " offset must be a multiple of 4" + "vuid": "VUID-vkCmdSetScissor-x-00595", + "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBufferOffset-03141", - "text": " countBufferOffset must be a multiple of 4" + "vuid": "VUID-vkCmdSetScissor-offset-00596", + "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-stride-03142", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" + "vuid": "VUID-vkCmdSetScissor-offset-00597", + "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-maxDrawCount-03143", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-firstInstance-03144", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndexedIndirectCommand structures accessed by this command must be 0" + "vuid": "VUID-vkCmdSetScissor-pScissors-parameter", + "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-renderPass-03145", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-subpass-03146", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03147", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength", + "text": " scissorCount must be greater than 0" + } + ] + }, + "VkPipelineViewportExclusiveScissorStateCreateInfoNV": { + "(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03148", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027", + "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 0 or 1" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03149", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028", + "text": " exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03150", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029", + "text": " exclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03151", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" - }, + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV" + } + ] + }, + "vkCmdSetExclusiveScissorNV": { + "(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03152", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031", + "text": " The exclusive scissor feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-03153", - "text": " If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02033", + "text": " firstExclusiveScissor must be less than VkPhysicalDeviceLimits::maxViewports" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-03154", - "text": " If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034", + "text": " The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-drawCount-03155", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035", + "text": " If the multiple viewports feature is not enabled, firstExclusiveScissor must be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03156", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036", + "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 1" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03157", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037", + "text": " The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03158", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038", + "text": " Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03159", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039", + "text": " Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03160", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03161", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter", + "text": " pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-02020", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03163", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength", + "text": " exclusiveScissorCount must be greater than 0" + } + ] + }, + "VkPipelineDepthStencilStateCreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598", + "text": " If the depth bounds testing feature is not enabled, depthBoundsTestEnable must be VK_FALSE" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter", + "text": " depthCompareOp must be a valid VkCompareOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter", + "text": " front must be a valid VkStencilOpState structure" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter", + "text": " back must be a valid VkStencilOpState structure" } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + ] + }, + "vkCmdSetDepthBoundsTestEnableEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-02021", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-None-03349", + "text": " The extendedDynamicState feature must be enabled" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03173", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } - ], - "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + ] + }, + "vkCmdSetDepthBounds": { + "(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-filterCubic-02623", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600", + "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled minDepthBounds must be between 0.0 and 1.0, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-filterCubicMinmax-02624", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-maxMultiviewInstanceIndex-03164", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601", + "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled maxDepthBounds must be between 0.0 and 1.0, inclusive" } ], - "(VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [ + "!(VK_EXT_depth_range_unrestricted)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-02644", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-02508", + "text": " minDepthBounds must be between 0.0 and 1.0, inclusive" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-03165", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-02509", + "text": " maxDepthBounds must be between 0.0 and 1.0, inclusive" } ], - "(VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [ + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-sampleLocationsEnable-03174", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-flags-02048", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } ] }, - "vkCmdDrawIndexedIndirectCountAMD": { - "(VK_AMD_draw_indirect_count)": [ + "vkCmdSetStencilTestEnableEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-buffer-01666", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdSetStencilTestEnableEXT-None-03350", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-buffer-01667", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBuffer-01668", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBuffer-01669", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, + "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetStencilOpEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-offset-00555", - "text": " offset must be a multiple of 4" + "vuid": "VUID-vkCmdSetStencilOpEXT-None-03351", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBufferOffset-00556", - "text": " countBufferOffset must be a multiple of 4" + "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-stride-00557", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" + "vuid": "VUID-vkCmdSetStencilOpEXT-faceMask-parameter", + "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-maxDrawCount-00558", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetStencilOpEXT-faceMask-requiredbitmask", + "text": " faceMask must not be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-firstInstance-00559", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndexedIndirectCommand structures accessed by this command must be 0" + "vuid": "VUID-vkCmdSetStencilOpEXT-failOp-parameter", + "text": " failOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-renderPass-00560", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetStencilOpEXT-passOp-parameter", + "text": " passOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-subpass-00561", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdSetStencilOpEXT-depthFailOp-parameter", + "text": " depthFailOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00562", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdSetStencilOpEXT-compareOp-parameter", + "text": " compareOp must be a valid VkCompareOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00563", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00564", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" - }, + "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "VkStencilOpState": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00565", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-VkStencilOpState-failOp-parameter", + "text": " failOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00566", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-VkStencilOpState-passOp-parameter", + "text": " passOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00567", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-VkStencilOpState-depthFailOp-parameter", + "text": " depthFailOp must be a valid VkStencilOp value" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBuffer-00568", - "text": " If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, + "vuid": "VUID-VkStencilOpState-compareOp-parameter", + "text": " compareOp must be a valid VkCompareOp value" + } + ] + }, + "vkCmdSetStencilCompareMask": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBuffer-00569", - "text": " If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-drawCount-00570", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter", + "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00571", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask", + "text": " faceMask must not be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00572", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00573", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, + "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetStencilWriteMask": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00574", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00575", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter", + "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00576", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask", + "text": " faceMask must not be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-02022", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." - }, + "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetStencilReference": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter", + "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask", + "text": " faceMask must not be 0" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-recording", + "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-cmdpool", + "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool", "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "vkCmdSetDepthTestEnableEXT": { + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdSetDepthTestEnableEXT-None-03352", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-maxMultiviewInstanceIndex-00578", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } - ], - "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1)": [ + ] + }, + "vkCmdSetDepthCompareOpEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-02645", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-vkCmdSetDepthCompareOpEXT-None-03353", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-01865", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_AMD_draw_indirect_count)+(VK_EXT_sample_locations)": [ + "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-sampleLocationsEnable-01517", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-vkCmdSetDepthCompareOpEXT-depthCompareOp-parameter", + "text": " depthCompareOp must be a valid VkCompareOp value" + }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-flags-02049", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } ] }, - "vkCmdDrawIndirectByteCountEXT": { - "(VK_EXT_transform_feedback)": [ + "vkCmdSetDepthWriteEnableEXT": { + "(VK_EXT_extended_dynamic_state)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-None-03354", + "text": " The extendedDynamicState feature must be enabled" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288", - "text": " The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw" + "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289", - "text": " vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTransformFeedbackBufferDataStride" + "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290", - "text": " counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, + "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + } + ] + }, + "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": { + "(VK_NV_representative_fragment_test)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02291", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, + "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV" + } + ] + }, + "VkPipelineCoverageToColorStateCreateInfoNV": { + "(VK_NV_fragment_coverage_to_color)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02292", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404", + "text": " If coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02293", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02294", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask", + "text": " flags must be 0" + } + ] + }, + "VkPipelineCoverageReductionStateCreateInfoNV": { + "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02295", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02296", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02297", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, + "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter", + "text": " coverageReductionMode must be a valid VkCoverageReductionModeNV value" + } + ] + }, + "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV": { + "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02298", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02299", - "text": " If the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter", + "text": " pCombinationCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02300", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, + "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter", + "text": " If the value referenced by pCombinationCount is not 0, and pCombinations is not NULL, pCombinations must be a valid pointer to an array of pCombinationCount VkFramebufferMixedSamplesCombinationNV structures" + } + ] + }, + "VkFramebufferMixedSamplesCombinationNV": { + "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02301", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02302", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, + "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkPipelineCoverageModulationStateCreateInfoNV": { + "(VK_NV_framebuffer_mixed_samples)": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02303", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405", + "text": " If coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02304", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" + "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02305", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter", + "text": " coverageModulationMode must be a valid VkCoverageModulationModeNV value" + } + ] + }, + "VkPipelineColorBlendStateCreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", + "text": " If the independent blending feature is not enabled, all elements of pAttachments must be identical" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter", - "text": " counterBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", + "text": " If the logic operations feature is not enabled, logicOpEnable must be VK_FALSE" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", + "text": " If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent", - "text": " Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02306", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-flags-zerobitmask", + "text": " flags must be 0" + }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02307", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter", + "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures" } - ], - "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + ] + }, + "VkPipelineColorBlendAttachmentState": { + "core": [ { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02625", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608", + "text": " If the dual source blending feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02626", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609", + "text": " If the dual source blending feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02308", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [ + "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610", + "text": " If the dual source blending feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611", + "text": " If the dual source blending feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02309", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer" - } - ], - "(VK_EXT_transform_feedback)+(VK_EXT_sample_locations)": [ + "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter", + "text": " srcColorBlendFactor must be a valid VkBlendFactor value" + }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02312", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ] - }, - "vkCmdBeginConditionalRenderingEXT": { - "(VK_EXT_conditional_rendering)": [ + "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter", + "text": " dstColorBlendFactor must be a valid VkBlendFactor value" + }, { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", - "text": " Conditional rendering must not already be active" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter", + "text": " colorBlendOp must be a valid VkBlendOp value" }, { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter", + "text": " srcAlphaBlendFactor must be a valid VkBlendFactor value" }, { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", - "text": " pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter", + "text": " dstAlphaBlendFactor must be a valid VkBlendFactor value" }, { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter", + "text": " alphaBlendOp must be a valid VkBlendOp value" }, { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter", + "text": " colorWriteMask must be a valid combination of VkColorComponentFlagBits values" } - ] - }, - "VkConditionalRenderingBeginInfoEXT": { - "(VK_EXT_conditional_rendering)": [ + ], + "(VK_EXT_blend_operation_advanced)": [ { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406", + "text": " If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", - "text": " buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407", + "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983", - "text": " offset must be less than the size of buffer by at least 32 bits." + "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408", + "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", - "text": " offset must be a multiple of 4" + "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409", + "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT" - }, + "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410", + "text": " If colorBlendOp or alphaBlendOp is an advanced blend operation, then VkSubpassDescription::colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments" + } + ] + }, + "vkCmdSetBlendConstants": { + "core": [ { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values" + "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" } ] }, - "vkCmdEndConditionalRenderingEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", - "text": " Conditional rendering must be active" - }, + "VkPipelineColorBlendAdvancedStateCreateInfoEXT": { + "(VK_EXT_blend_operation_advanced)": [ { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986", - "text": " If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance" + "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424", + "text": " If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE" }, { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", - "text": " If conditional rendering was made active within a subpass it must be ended in the same subpass" + "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425", + "text": " If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE" }, { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426", + "text": " If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT" }, { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter", + "text": " blendOverlap must be a valid VkBlendOverlapEXT value" } ] }, - "vkCmdDrawMeshTasksNV": { - "(VK_NV_mesh_shader)": [ + "vkCmdDispatch": { + "core": [ { - "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" + "vuid": "VUID-vkCmdDispatch-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02120", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdDispatch-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02121", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdDispatch-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02122", - "text": " For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdDispatch-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02123", - "text": " For each push constant that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdDispatch-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02124", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCmdDispatch-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02125", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdDispatch-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02126", - "text": " If the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdDispatch-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02127", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdDispatch-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02128", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdDispatch-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02129", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdDispatch-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02130", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdDispatch-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02131", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatch-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02132", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatch-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-linearTilingFeatures-02133", - "text": " Any VkImageView being sampled with VK_FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in VkFormatProperties::linearTilingFeatures (for a linear image) or VkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-vkCmdDispatch-groupCountX-00386", + "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02134", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-vkCmdDispatch-groupCountY-00387", + "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDispatch-groupCountZ-00388", + "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", + "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdDispatch-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdDispatch-renderpass", + "text": " This command must only be called outside of a render pass instance" } ], - "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-linearTilingFeatures-02135", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in VkFormatProperties::linearTilingFeatures (for a linear image) or VkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned by vkGetPhysicalDeviceFormatProperties" - }, + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02136", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_IMG as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkCmdDispatch-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_NV_mesh_shader)+(VK_KHR_multiview)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02137", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-vkCmdDispatch-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02138", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - }, + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02139", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-vkCmdDispatch-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02140", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, the image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02141", - "text": " If the currently bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "vuid": "VUID-vkCmdDispatch-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], - "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02142", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." - } - ] - }, - "vkCmdDrawMeshTasksIndirectNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02143", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02144", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02145", - "text": " offset must be a multiple of 4" - }, + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" + "vuid": "VUID-vkCmdDispatch-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02147", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" + "vuid": "VUID-vkCmdDispatch-commandBuffer-02712", + "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02148", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "vuid": "VUID-vkCmdDispatch-commandBuffer-02713", + "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" + } + ] + }, + "vkCmdDispatchIndirect": { + "core": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02149", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-vkCmdDispatchIndirect-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02150", - "text": " For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdDispatchIndirect-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02151", - "text": " For each push constant that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCmdDispatchIndirect-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02152", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCmdDispatchIndirect-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02153", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have valid buffers bound" + "vuid": "VUID-vkCmdDispatchIndirect-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02154", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdDispatchIndirect-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02155", - "text": " If the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdDispatchIndirect-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdDispatchIndirect-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02158", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdDispatchIndirect-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02159", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdDispatchIndirect-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02160", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdDispatchIndirect-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02161", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdDispatchIndirect-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02162", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdDispatchIndirect-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02163", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02164", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-linearTilingFeatures-02165", - "text": " Any VkImageView being sampled with VK_FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in VkFormatProperties::linearTilingFeatures (for a linear image) or VkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-vkCmdDispatchIndirect-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02166", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-vkCmdDispatchIndirect-offset-00407", + "text": " The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording", + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdDispatchIndirect-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDispatchIndirect-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" } ], - "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-linearTilingFeatures-02167", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in VkFormatProperties::linearTilingFeatures (for a linear image) or VkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned by vkGetPhysicalDeviceFormatProperties" - }, + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02168", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_IMG as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkCmdDispatchIndirect-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_NV_mesh_shader)+(VK_KHR_multiview)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02169", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-vkCmdDispatchIndirect-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02170", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - }, + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02171", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02172", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, the image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02173", - "text": " If the currently bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "vuid": "VUID-vkCmdDispatchIndirect-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], - "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [ + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02174", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." - } - ] - }, - "VkDrawMeshTasksIndirectCommandNV": { - "(VK_NV_mesh_shader)": [ + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" + }, { - "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" + "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" } ] }, - "vkCmdDrawMeshTasksIndirectCountNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02176", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02177", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02178", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02179", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02180", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02181", - "text": " countBufferOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02184", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." - }, + "VkDispatchIndirectCommand": { + "core": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02185", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS." + "vuid": "VUID-VkDispatchIndirectCommand-x-00417", + "text": " x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02186", - "text": " For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkDispatchIndirectCommand-y-00418", + "text": " y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02187", - "text": " For each push constant that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-VkDispatchIndirectCommand-z-00419", + "text": " z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + } + ] + }, + "vkCmdDispatchBase": { + "core": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02188", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCmdDispatchBase-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02189", - "text": " A valid graphics pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_GRAPHICS" + "vuid": "VUID-vkCmdDispatchBase-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02190", - "text": " If the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must have been set on the current command buffer" + "vuid": "VUID-vkCmdDispatchBase-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdDispatchBase-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" + "vuid": "VUID-vkCmdDispatchBase-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02193", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" + "vuid": "VUID-vkCmdDispatchBase-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02194", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" + "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02195", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkCmdDispatchBase-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02196", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdDispatchBase-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02197", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdDispatchBase-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02198", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatchBase-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02199", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set" + "vuid": "VUID-vkCmdDispatchBase-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-linearTilingFeatures-02200", - "text": " Any VkImageView being sampled with VK_FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in VkFormatProperties::linearTilingFeatures (for a linear image) or VkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-vkCmdDispatchBase-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02201", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command." + "vuid": "VUID-vkCmdDispatchBase-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421", + "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422", + "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423", + "text": " baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424", + "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425", + "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426", + "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427", + "text": " If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag" } ], - "(VK_NV_mesh_shader)+(VK_KHR_multiview)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02202", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex." + "vuid": "VUID-vkCmdDispatchBase-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02203", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - }, + "vuid": "VUID-vkCmdDispatchBase-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02204", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-vkCmdDispatchBase-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02205", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the VkPipeline object currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, the image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02206", - "text": " If the currently bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + "vuid": "VUID-vkCmdDispatchBase-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } - ] - }, - "VkPipelineVertexInputStateCreateInfo": { - "core": [ + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613", - "text": " vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" - }, + "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" + } + ], + "(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614", - "text": " vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes" + "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615", - "text": " For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding" + "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616", - "text": " All elements of pVertexBindingDescriptions must describe distinct binding numbers" + "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617", - "text": " All elements of pVertexAttributeDescriptions must describe distinct attribute locations" - }, + "vuid": "VUID-vkCmdDispatchBase-renderpass", + "text": " This command must only be called outside of a render pass instance" + } + ] + }, + "vkCreateIndirectCommandsLayoutNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO" + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT" + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter", - "text": " If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures" + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter", - "text": " If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures" + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter", + "text": " pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle" } ] }, - "VkVertexInputBindingDescription": { - "core": [ + "VkIndirectCommandsLayoutCreateInfoNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkVertexInputBindingDescription-binding-00618", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930", + "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-VkVertexInputBindingDescription-stride-00619", - "text": " stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931", + "text": " tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount" }, { - "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter", - "text": " inputRate must be a valid VkVertexInputRate value" - } - ] - }, - "VkVertexInputAttributeDescription": { - "core": [ + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932", + "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type" + }, { - "vuid": "VUID-VkVertexInputAttributeDescription-location-00620", - "text": " location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933", + "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type" }, { - "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934", + "text": " All state tokens in pTokens must occur prior work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV)" }, { - "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622", - "text": " offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935", + "text": " The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint" }, { - "vuid": "VUID-VkVertexInputAttributeDescription-format-00623", - "text": " format must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936", + "text": " streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount" }, { - "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter", - "text": " format must be a valid VkFormat value" - } - ] - }, - "vkCmdBindVertexBuffers": { - "core": [ + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937", + "text": " each element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured" + }, { - "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624", - "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter", + "text": " flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-requiredbitmask", + "text": " flags must not be 0" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter", + "text": " pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter", + "text": " pStreamStrides must be a valid pointer to an array of streamCount uint32_t values" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength", + "text": " tokenCount must be greater than 0" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength", + "text": " streamCount must be greater than 0" + } + ] + }, + "vkDestroyIndirectCommandsLayoutNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938", + "text": " All submitted commands that refer to indirectCommandsLayout must have completed execution" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939", + "text": " If VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength", - "text": " bindingCount must be greater than 0" + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940", + "text": " If no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL" }, { - "vuid": "VUID-vkCmdBindVertexBuffers-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkPipelineVertexInputDivisorStateCreateInfoEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + }, { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT" + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter", - "text": " pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures" + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter", + "text": " If indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" }, { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", - "text": " vertexBindingDivisorCount must be greater than 0" + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent", + "text": " If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device" } ] }, - "VkVertexInputBindingDivisorDescriptionEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ + "VkIndirectCommandsStreamNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" + "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02942", + "text": " The buffer’s usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", - "text": " If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0" + "vuid": "VUID-VkIndirectCommandsStreamNV-offset-02943", + "text": " The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" }, { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", - "text": " If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1" + "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02975", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", - "text": " divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive." + "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + } + ] + }, + "VkBindShaderGroupIndirectCommandNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-None-02944", + "text": " The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" }, { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", - "text": " VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding." + "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-index-02945", + "text": " The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details" } ] }, - "VkPipelineTessellationStateCreateInfo": { - "core": [ + "VkBindIndexBufferIndirectCommandNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214", - "text": " patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" + "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02946", + "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO" + "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947", + "text": " The bufferAddress must be aligned to the indexType used" }, { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo" + "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948", + "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter", + "text": " indexType must be a valid VkIndexType value" } ] }, - "VkPipelineTessellationDomainOriginStateCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + "VkBindVertexBufferIndirectCommandNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO" + "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02949", + "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set" }, { - "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter", - "text": " domainOrigin must be a valid VkTessellationDomainOrigin value" + "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950", + "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" } ] }, - "vkCmdBindTransformFeedbackBuffersEXT": { - "(VK_EXT_transform_feedback)": [ + "VkIndirectCommandsLayoutTokenNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-stream-02951", + "text": " stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356", - "text": " firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-02952", + "text": " offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359", - "text": " All elements of pOffsets must be a multiple of 4" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361", - "text": " If the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362", - "text": " All elements of pSizes must be less than or equal to the size of the corresponding buffer in pBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363", - "text": " All elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding element in pBuffers" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range’s VkPushConstantRange::pushconstantShaderStageFlags" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365", - "text": " Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984", + "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be ´0´" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter", + "text": " tokenType must be a valid VkIndirectCommandsTokenTypeNV value" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-parameter", - "text": " If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter", + "text": " If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter", + "text": " pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter", + "text": " indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength", - "text": " If pSizes is not NULL, bindingCount must be greater than 0" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter", + "text": " If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values" }, { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter", + "text": " If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values" } ] }, - "vkCmdBeginTransformFeedbackEXT": { - "(VK_EXT_transform_feedback)": [ + "vkGetGeneratedCommandsMemoryRequirementsNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367", - "text": " Transform feedback must not be active" + "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter", + "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" + } + ] + }, + "VkGeneratedCommandsMemoryRequirementsInfoNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907", + "text": " maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + }, + { + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" + }, + { + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter", + "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" + }, + { + "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", + "text": " Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkCmdExecuteGeneratedCommandsNV": { + "core": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + }, { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373", - "text": " Transform feedback must not be made active in a render pass instance with multiview enabled" - } - ] - }, - "vkCmdEndTransformFeedbackEXT": { - "(VK_EXT_transform_feedback)": [ + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375", - "text": " Transform feedback must be active" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684", + "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685", + "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02686", + "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02687", + "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008", + "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721", + "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908", + "text": " If isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909", + "text": " VkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint" }, { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" } - ] - }, - "VkPipelineViewportSwizzleStateCreateInfoNV": { - "(VK_NV_viewport_swizzle)": [ + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215", - "text": " viewportCount must match the viewportCount set in VkPipelineViewportStateCreateInfo" - }, + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV" - }, + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter", - "text": " pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970", + "text": " commandBuffer must not be a protected command buffer" } - ] - }, - "VkViewportSwizzleNV": { - "(VK_NV_viewport_swizzle)": [ + ], + "(VK_VERSION_1_1,VK_KHR_multiview)": [ { - "vuid": "VUID-VkViewportSwizzleNV-x-parameter", - "text": " x must be a valid VkViewportCoordinateSwizzleNV value" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688", + "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" + } + ], + "(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689", + "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" + } + ], + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" }, { - "vuid": "VUID-VkViewportSwizzleNV-y-parameter", - "text": " y must be a valid VkViewportCoordinateSwizzleNV value" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" }, { - "vuid": "VUID-VkViewportSwizzleNV-z-parameter", - "text": " z must be a valid VkViewportCoordinateSwizzleNV value" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419", + "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" }, { - "vuid": "VUID-VkViewportSwizzleNV-w-parameter", - "text": " w must be a valid VkViewportCoordinateSwizzleNV value" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" } - ] - }, - "VkPipelineViewportWScalingStateCreateInfoNV": { - "(VK_NV_clip_space_w_scaling)": [ + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ { - "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" } - ] - }, - "vkCmdSetViewportWScalingNV": { - "(VK_NV_clip_space_w_scaling)": [ + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-vkCmdSetViewportWScalingNV-None-01322", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" }, { - "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01323", - "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" - }, + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ { - "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142", + "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" + } + ], + "(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910", + "text": " Transform feedback must not be active" + } + ], + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter", - "text": " pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", + "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" }, { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording", "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass", + "text": " This command must only be called inside of a render pass instance" } ] }, - "VkPipelineViewportStateCreateInfo": { - "core": [ + "VkGeneratedCommandsInfoNV": { + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" + "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-02912", + "text": " The provided pipeline must match the pipeline bound at execution time" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217", - "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" + "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913", + "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218", - "text": " viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914", + "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219", - "text": " scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915", + "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220", - "text": " scissorCount and viewportCount must be identical" + "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-02916", + "text": " streamCount must match the indirectCommandsLayout’s streamCount" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917", + "text": " sequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext", - "text": " 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 VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV" + "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918", + "text": " preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919", + "text": " preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971", + "text": " If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920", + "text": " preprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, …​) as within this structure" }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" - } - ], - "(VK_NV_clip_space_w_scaling)": [ + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921", + "text": " sequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound" + }, { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726", - "text": " If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure chained to the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be equal to viewportCount" - } - ] - }, - "vkCmdSetViewport": { - "core": [ + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922", + "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + }, { - "vuid": "VUID-vkCmdSetViewport-None-01221", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923", + "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment" }, { - "vuid": "VUID-vkCmdSetViewport-firstViewport-01222", - "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972", + "text": " If sequencesCountBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdSetViewport-firstViewport-01223", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924", + "text": " If indirectCommandsLayout’s VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV is set, sequencesIndexBuffer must be set otherwise it must be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkCmdSetViewport-firstViewport-01224", - "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925", + "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" }, { - "vuid": "VUID-vkCmdSetViewport-viewportCount-01225", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926", + "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment" }, { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973", + "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdSetViewport-pViewports-parameter", - "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV" }, { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkGeneratedCommandsInfoNV-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" }, { - "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "VkViewport": { - "core": [ + "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-parameter", + "text": " pipeline must be a valid VkPipeline handle" + }, { - "vuid": "VUID-VkViewport-width-01770", - "text": " width must be greater than 0.0" + "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter", + "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" }, { - "vuid": "VUID-VkViewport-width-01771", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-pStreams-parameter", + "text": " pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures" }, { - "vuid": "VUID-VkViewport-height-01773", - "text": " The absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter", + "text": " preprocessBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkViewport-x-01774", - "text": " x must be greater than or equal to viewportBoundsRange[0]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter", + "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkViewport-x-01232", - "text": " (x + width) must be less than or equal to viewportBoundsRange[1]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter", + "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkViewport-y-01775", - "text": " y must be greater than or equal to viewportBoundsRange[0]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength", + "text": " streamCount must be greater than 0" }, { - "vuid": "VUID-VkViewport-y-01233", - "text": " (y + height) must be less than or equal to viewportBoundsRange[1]" + "vuid": "VUID-VkGeneratedCommandsInfoNV-commonparent", + "text": " Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ + ] + }, + "vkCmdPreprocessGeneratedCommandsNV": { + "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkViewport-height-01772", - "text": " height must be greater than 0.0" + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974", + "text": " commandBuffer must not be a protected command buffer" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ + "(VK_NV_device_generated_commands)": [ { - "vuid": "VUID-VkViewport-y-01776", - "text": " y must be less than or equal to viewportBoundsRange[1]" + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927", + "text": " pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" }, { - "vuid": "VUID-VkViewport-y-01777", - "text": " (y + height) must be greater than or equal to viewportBoundsRange[0]" - } - ], - "(VK_EXT_depth_range_unrestricted)": [ + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928", + "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" + }, { - "vuid": "VUID-VkViewport-minDepth-01234", - "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkViewport-maxDepth-01235", - "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", + "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" + }, { - "vuid": "VUID-VkViewport-minDepth-02540", - "text": " minDepth must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" }, { - "vuid": "VUID-VkViewport-maxDepth-02541", - "text": " maxDepth must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass", + "text": " This command must only be called outside of a render pass instance" } ] }, - "VkPipelineRasterizationStateCreateInfo": { + "vkGetPhysicalDeviceSparseImageFormatProperties": { "core": [ { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782", - "text": " If the depth clamping feature is not enabled, depthClampEnable must be VK_FALSE" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094", + "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext", - "text": " 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 VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter", + "text": " format must be a valid VkFormat value" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter", + "text": " type must be a valid VkImageType value" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter", + "text": " samples must be a valid VkSampleCountFlagBits value" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter", - "text": " polygonMode must be a valid VkPolygonMode value" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter", + "text": " usage must be a valid combination of VkImageUsageFlagBits values" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter", - "text": " cullMode must be a valid combination of VkCullModeFlagBits values" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask", + "text": " usage must not be 0" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter", - "text": " frontFace must be a valid VkFrontFace value" - } - ], - "!(VK_NV_fill_rectangle)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413", - "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL" - } - ], - "(VK_NV_fill_rectangle)": [ + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter", + "text": " tiling must be a valid VkImageTiling value" + }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507", - "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414", - "text": " If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures" } ] }, - "VkPipelineRasterizationDepthClipStateCreateInfoEXT": { - "(VK_EXT_depth_clip_enable)": [ + "vkGetPhysicalDeviceSparseImageFormatProperties2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter", + "text": " pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures" } ] }, - "VkPipelineMultisampleStateCreateInfo": { - "core": [ + "VkPhysicalDeviceSparseImageFormatInfo2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784", - "text": " If the sample rate shading feature is not enabled, sampleShadingEnable must be VK_FALSE" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095", + "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785", - "text": " If the alpha to one feature is not enabled, alphaToOneEnable must be VK_FALSE" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786", - "text": " minSampleShading must be in the range [0,1]" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter", + "text": " format must be a valid VkFormat value" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext", - "text": " 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, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter", + "text": " type must be a valid VkImageType value" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter", + "text": " samples must be a valid VkSampleCountFlagBits value" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter", + "text": " usage must be a valid combination of VkImageUsageFlagBits values" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter", - "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask", + "text": " usage must not be 0" }, { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter", - "text": " If pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) VkSampleMask values" + "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter", + "text": " tiling must be a valid VkImageTiling value" } - ], - "(VK_NV_framebuffer_mixed_samples)": [ + ] + }, + "VkSparseImageFormatProperties2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE" + "vuid": "VUID-VkSparseImageFormatProperties2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2" + }, + { + "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "VkPipelineRasterizationStateStreamCreateInfoEXT": { - "(VK_EXT_transform_feedback)": [ + "vkGetImageSparseMemoryRequirements": { + "core": [ { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled" + "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325", - "text": " rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" + "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter", + "text": " image must be a valid VkImage handle" }, { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326", - "text": " rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE" + "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter", + "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" + "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter", + "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures" }, { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent", + "text": " image must have been created, allocated, or retrieved from device" } ] }, - "VkPipelineRasterizationStateRasterizationOrderAMD": { - "(VK_AMD_rasterization_order)": [ + "vkGetImageSparseMemoryRequirements2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ { - "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD" + "vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter", - "text": " rasterizationOrder must be a valid VkRasterizationOrderAMD value" + "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure" + }, + { + "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter", + "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + }, + { + "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter", + "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures" } ] }, - "VkPipelineSampleLocationsStateCreateInfoEXT": { - "(VK_EXT_sample_locations)": [ + "VkImageSparseMemoryRequirementsInfo2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ { - "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT" + "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2" }, { - "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" + "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", + "text": " image must be a valid VkImage handle" } ] }, - "VkSampleLocationsInfoEXT": { - "(VK_EXT_sample_locations)": [ + "VkSparseImageMemoryRequirements2": { + "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526", - "text": " sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts" + "vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2" }, { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527", - "text": " sampleLocationsCount must equal sampleLocationsPerPixel {times} sampleLocationGridSize.width {times} sampleLocationGridSize.height" + "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkSparseMemoryBind": { + "core": [ + { + "vuid": "VUID-VkSparseMemoryBind-memory-01096", + "text": " If memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association" }, { - "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" + "vuid": "VUID-VkSparseMemoryBind-memory-01097", + "text": " If memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set" }, { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter", - "text": " If sampleLocationsPerPixel is not 0, sampleLocationsPerPixel must be a valid VkSampleCountFlagBits value" + "vuid": "VUID-VkSparseMemoryBind-size-01098", + "text": " size must be greater than 0" }, { - "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter", - "text": " If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures" + "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099", + "text": " resourceOffset must be less than the size of the resource" + }, + { + "vuid": "VUID-VkSparseMemoryBind-size-01100", + "text": " size must be less than or equal to the size of the resource minus resourceOffset" + }, + { + "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101", + "text": " memoryOffset must be less than the size of memory" + }, + { + "vuid": "VUID-VkSparseMemoryBind-size-01102", + "text": " size must be less than or equal to the size of memory minus memoryOffset" + }, + { + "vuid": "VUID-VkSparseMemoryBind-memory-parameter", + "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + }, + { + "vuid": "VUID-VkSparseMemoryBind-flags-parameter", + "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkSparseMemoryBind-memory-02730", + "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" + }, + { + "vuid": "VUID-VkSparseMemoryBind-memory-02731", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" } ] }, - "vkCmdSetSampleLocationsEXT": { - "(VK_EXT_sample_locations)": [ + "VkSparseBufferMemoryBindInfo": { + "core": [ { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-None-01528", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled" + "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529", - "text": " The sampleLocationsPerPixel member of pSampleLocationsInfo must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" + "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter", + "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" }, { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530", - "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo" - }, + "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength", + "text": " bindCount must be greater than 0" + } + ] + }, + "VkSparseImageOpaqueMemoryBindInfo": { + "core": [ { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103", + "text": " If the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image" }, { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter", - "text": " pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure" + "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter", + "text": " image must be a valid VkImage handle" }, { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter", + "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" }, { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength", + "text": " bindCount must be greater than 0" } ] }, - "VkPipelineViewportShadingRateImageStateCreateInfoNV": { - "(VK_NV_shading_rate_image)": [ + "VkSparseImageMemoryBindInfo": { + "core": [ { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 0 or 1" + "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722", + "text": " The subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055", - "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723", + "text": " The subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056", - "text": " If shadingRateImageEnable is VK_TRUE, viewportCount must be equal to the viewportCount member of VkPipelineViewportStateCreateInfo" + "vuid": "VUID-VkSparseImageMemoryBindInfo-image-02901", + "text": " image must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pDynamicStates-02057", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, pShadingRatePalettes must be a valid pointer to an array of viewportCount VkShadingRatePaletteNV structures" + "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter", + "text": " image must be a valid VkImage handle" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV" + "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter", + "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pShadingRatePalettes-parameter", - "text": " If viewportCount is not 0, and pShadingRatePalettes is not NULL, pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" + "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength", + "text": " bindCount must be greater than 0" } ] }, - "vkCmdBindShadingRateImageNV": { - "(VK_NV_shading_rate_image)": [ + "VkSparseImageMemoryBind": { + "core": [ { - "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058", - "text": " The shading rate image feature must be enabled." + "vuid": "VUID-VkSparseImageMemoryBind-memory-01104", + "text": " If the sparse aliased residency feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059", - "text": " If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY." + "vuid": "VUID-VkSparseImageMemoryBind-memory-01105", + "text": " memory and memoryOffset must match the memory requirements of the calling command’s image, as described in section Resource Memory Association" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060", - "text": " If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT." + "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106", + "text": " subresource must be a valid image subresource for image (see Image Views)" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" + "vuid": "VUID-VkSparseImageMemoryBind-offset-01107", + "text": " offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed." + "vuid": "VUID-VkSparseImageMemoryBind-extent-01108", + "text": " extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL." + "vuid": "VUID-VkSparseImageMemoryBind-offset-01109", + "text": " offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkSparseImageMemoryBind-extent-01110", + "text": " extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" + "vuid": "VUID-VkSparseImageMemoryBind-offset-01111", + "text": " offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" + "vuid": "VUID-VkSparseImageMemoryBind-extent-01112", + "text": " extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter", + "text": " subresource must be a valid VkImageSubresource structure" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter", + "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" }, { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent", - "text": " Both of commandBuffer, and imageView must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter", + "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkSparseImageMemoryBind-memory-02732", + "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when the image was created" + }, + { + "vuid": "VUID-VkSparseImageMemoryBind-memory-02733", + "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" } ] }, - "vkCmdSetViewportShadingRatePaletteNV": { - "(VK_NV_shading_rate_image)": [ + "vkQueueBindSparse": { + "core": [ { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064", - "text": " The shading rate image feature must be enabled." + "vuid": "VUID-vkQueueBindSparse-fence-01113", + "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02065", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled" + "vuid": "VUID-vkQueueBindSparse-fence-01114", + "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02066", - "text": " firstViewport must be less than VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115", + "text": " Each element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116", + "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, there must be no other queues waiting on the same semaphore" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068", - "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" + "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117", + "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo member referring to a binary semaphore must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" + "vuid": "VUID-vkQueueBindSparse-queue-parameter", + "text": " queue must be a valid VkQueue handle" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter", + "text": " If bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter", - "text": " pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" + "vuid": "VUID-vkQueueBindSparse-fence-parameter", + "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkQueueBindSparse-queuetype", + "text": " The queue must support sparse binding operations" }, { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, + "vuid": "VUID-vkQueueBindSparse-commonparent", + "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" + "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245", + "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" } ] }, - "VkShadingRatePaletteNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071", - "text": " shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive" - }, + "VkBindSparseInfo": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter", - "text": " pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values" + "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03246", + "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" }, { - "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength", - "text": " shadingRatePaletteEntryCount must be greater than 0" - } - ] - }, - "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" + "vuid": "VUID-VkBindSparseInfo-pNext-03247", + "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount member must equal waitSemaphoreCount" }, { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members." + "vuid": "VUID-VkBindSparseInfo-pNext-03248", + "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount" }, { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV" + "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03249", + "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed" }, { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" + "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03250", + "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" }, { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" + "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03251", + "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" } - ] - }, - "VkCoarseSampleOrderCustomNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073", - "text": " shadingRate must be a shading rate that generates fragments with more than one pixel." - }, + ], + "core": [ { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074", - "text": " sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts." + "vuid": "VUID-VkBindSparseInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075", - "text": " sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate." + "vuid": "VUID-VkBindSparseInfo-pNext-pNext", + "text": " 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 VkDeviceGroupBindSparseInfo or VkTimelineSemaphoreSubmitInfo" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076", - "text": " sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples." + "vuid": "VUID-VkBindSparseInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077", - "text": " The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV." + "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-parameter", + "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkShadingRatePaletteEntryNV value" + "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter", + "text": " If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter", - "text": " pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures" + "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter", + "text": " If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures" }, { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength", - "text": " sampleLocationCount must be greater than 0" - } - ] - }, - "VkCoarseSampleLocationNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078", - "text": " pixelX must be less than the width (in pixels) of the fragment." + "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter", + "text": " If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures" }, { - "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079", - "text": " pixelY must be less than the height (in pixels) of the fragment." + "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter", + "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" }, { - "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080", - "text": " sample must be less than the number of coverage samples in each pixel belonging to the fragment." + "vuid": "VUID-VkBindSparseInfo-commonparent", + "text": " Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkCmdSetCoarseSampleOrderNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members." - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" - }, + "VkDeviceGroupBindSparseInfo": { + "(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" + "vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118", + "text": " resourceDeviceIndex and memoryDeviceIndex must both be valid device indices" }, { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119", + "text": " Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex" }, { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO" } ] }, - "vkCmdSetLineWidth": { - "core": [ - { - "vuid": "VUID-vkCmdSetLineWidth-None-00787", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled" - }, + "vkCreateAndroidSurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_android_surface)": [ { - "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788", - "text": " If the wide lines feature is not enabled, lineWidth must be 1.0" + "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "vkCmdSetDepthBias": { - "core": [ - { - "vuid": "VUID-vkCmdSetDepthBias-None-00789", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled" - }, + "VkAndroidSurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_android_surface)": [ { - "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790", - "text": " If the depth bias clamping feature is not enabled, depthBiasClamp must be 0.0" + "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248", + "text": " window must point to a valid Android ANativeWindow" }, { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "VkPipelineRasterizationConservativeStateCreateInfoEXT": { - "(VK_EXT_conservative_rasterization)": [ + "vkCreateWaylandSurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769", - "text": " extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive" + "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT" + "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter", - "text": " conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value" + "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkPipelineDiscardRectangleStateCreateInfoEXT": { - "(VK_EXT_discard_rectangles)": [ + "VkWaylandSurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582", - "text": " discardRectangleCount must be between 0 and VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles, inclusive" + "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304", + "text": " display must point to a valid Wayland wl_display" + }, + { + "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305", + "text": " surface must point to a valid Wayland wl_surface" }, { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT" + "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter", - "text": " discardRectangleMode must be a valid VkDiscardRectangleModeEXT value" + "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCmdSetDiscardRectangleEXT": { - "(VK_EXT_discard_rectangles)": [ - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-None-00583", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled" - }, + "vkCreateWin32SurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585", - "text": " The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" + "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587", - "text": " The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0" + "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588", - "text": " Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" + "vuid": "VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589", - "text": " Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" - }, + "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + } + ] + }, + "VkWin32SurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307", + "text": " hinstance must be a valid Win32 HINSTANCE" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter", - "text": " pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures" + "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308", + "text": " hwnd must be a valid Win32 HWND" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength", - "text": " discardRectangleCount must be greater than 0" + "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCmdSetScissor": { - "core": [ + "vkCreateXcbSurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ { - "vuid": "VUID-vkCmdSetScissor-None-00590", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled" + "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetScissor-firstScissor-00591", - "text": " firstScissor must be less than VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdSetScissor-firstScissor-00592", - "text": " The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetScissor-firstScissor-00593", - "text": " If the multiple viewports feature is not enabled, firstScissor must be 0" - }, + "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + } + ] + }, + "VkXcbSurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ { - "vuid": "VUID-vkCmdSetScissor-scissorCount-00594", - "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" + "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310", + "text": " connection must point to a valid X11 xcb_connection_t" }, { - "vuid": "VUID-vkCmdSetScissor-x-00595", - "text": " The x and y members of offset must be greater than or equal to 0" + "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311", + "text": " window must be a valid X11 xcb_window_t" }, { - "vuid": "VUID-vkCmdSetScissor-offset-00596", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow" + "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkCmdSetScissor-offset-00597", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow" + "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" + } + ] + }, + "vkCreateXlibSurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ { - "vuid": "VUID-vkCmdSetScissor-pScissors-parameter", - "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" + "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" + "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkPipelineViewportExclusiveScissorStateCreateInfoNV": { - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027", - "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 0 or 1" - }, + "VkXlibSurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028", - "text": " exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313", + "text": " dpy must point to a valid Xlib Display" }, { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029", - "text": " exclusiveScissorCount must be 0 or identical to the viewportCount member of VkPipelineViewportStateCreateInfo" + "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314", + "text": " window must be a valid Xlib Window" }, { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pDynamicStates-02030", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV and exclusiveScissorCount is not 0, pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV" + "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pExclusiveScissors-parameter", - "text": " If exclusiveScissorCount is not 0, and pExclusiveScissors is not NULL, pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCmdSetExclusiveScissorNV": { - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031", - "text": " The exclusive scissor feature must be enabled." - }, + "vkCreateDirectFBSurfaceEXT": { + "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02032", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled" + "vuid": "VUID-vkCreateDirectFBSurfaceEXT-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02033", - "text": " firstExclusiveScissor must be less than VkPhysicalDeviceLimits::maxViewports" + "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034", - "text": " The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" + "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035", - "text": " If the multiple viewports feature is not enabled, firstExclusiveScissor must be 0" - }, + "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + } + ] + }, + "VkDirectFBSurfaceCreateInfoEXT": { + "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036", - "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 1" + "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117", + "text": " dfb must point to a valid DirectFB IDirectFB" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037", - "text": " The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0" + "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118", + "text": " surface must point to a valid DirectFB IDirectFBSurface" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038", - "text": " Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow" + "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039", - "text": " Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow" + "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" + } + ] + }, + "vkCreateImagePipeSurfaceFUCHSIA": { + "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter", - "text": " pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength", - "text": " exclusiveScissorCount must be greater than 0" + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkPipelineDepthStencilStateCreateInfo": { - "core": [ + "VkImagePipeSurfaceCreateInfoFUCHSIA": { + "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598", - "text": " If the depth bounds testing feature is not enabled, depthBoundsTestEnable must be VK_FALSE" + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000", + "text": " imagePipeHandle must be a valid zx_handle_t" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO" + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext", + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext", "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-zerobitmask", + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask", "text": " flags must be 0" + } + ] + }, + "vkCreateStreamDescriptorSurfaceGGP": { + "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [ + { + "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter", - "text": " depthCompareOp must be a valid VkCompareOp value" + "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter", - "text": " front must be a valid VkStencilOpState structure" + "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter", - "text": " back must be a valid VkStencilOpState structure" + "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "vkCmdSetDepthBounds": { - "core": [ + "VkStreamDescriptorSurfaceCreateInfoGGP": { + "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [ { - "vuid": "VUID-vkCmdSetDepthBounds-None-00599", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled" + "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681", + "text": " streamDescriptor must be a valid GgpStreamDescriptor" }, { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP" }, { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask", + "text": " flags must be 0" } - ], - "(VK_EXT_depth_range_unrestricted)": [ + ] + }, + "vkCreateIOSSurfaceMVK": { + "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ { - "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled minDepthBounds must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled maxDepthBounds must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ + "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure" + }, { - "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-02508", - "text": " minDepthBounds must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-02509", - "text": " maxDepthBounds must be between 0.0 and 1.0, inclusive" + "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkStencilOpState": { - "core": [ + "VkIOSSurfaceCreateInfoMVK": { + "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ { - "vuid": "VUID-VkStencilOpState-failOp-parameter", - "text": " failOp must be a valid VkStencilOp value" + "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-04143", + "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer." }, { - "vuid": "VUID-VkStencilOpState-passOp-parameter", - "text": " passOp must be a valid VkStencilOp value" + "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316", + "text": " If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread." }, { - "vuid": "VUID-VkStencilOpState-depthFailOp-parameter", - "text": " depthFailOp must be a valid VkStencilOp value" + "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK" }, { - "vuid": "VUID-VkStencilOpState-compareOp-parameter", - "text": " compareOp must be a valid VkCompareOp value" + "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCmdSetStencilCompareMask": { - "core": [ - { - "vuid": "VUID-vkCmdSetStencilCompareMask-None-00602", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled" - }, - { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vkCreateMacOSSurfaceMVK": { + "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ { - "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure" }, { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "vkCmdSetStencilWriteMask": { - "core": [ - { - "vuid": "VUID-vkCmdSetStencilWriteMask-None-00603", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled" - }, + "VkMacOSSurfaceCreateInfoMVK": { + "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144", + "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer." }, { - "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317", + "text": " If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread." }, { - "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK" }, { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCmdSetStencilReference": { - "core": [ + "vkCreateViSurfaceNN": { + "(VK_KHR_surface)+(VK_NN_vi_surface)": [ { - "vuid": "VUID-vkCmdSetStencilReference-None-00604", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled" + "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure" }, { - "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" + "vuid": "VUID-vkCreateViSurfaceNN-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask", - "text": " faceMask must not be 0" + "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + } + ] + }, + "VkViSurfaceCreateInfoNN": { + "(VK_KHR_surface)+(VK_NN_vi_surface)": [ + { + "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318", + "text": " window must be a valid nn::vi::NativeWindowHandle" }, { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" }, { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": { - "(VK_NV_representative_fragment_test)": [ + "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext", + "text": " pNext must be NULL" + }, { - "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV" + "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "VkPipelineCoverageToColorStateCreateInfoNV": { - "(VK_NV_fragment_coverage_to_color)": [ + "vkCreateMetalSurfaceEXT": { + "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404", - "text": " If coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" + "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV" + "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure" }, { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkPipelineCoverageModulationStateCreateInfoNV": { - "(VK_NV_framebuffer_mixed_samples)": [ + "VkMetalSurfaceCreateInfoEXT": { + "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405", - "text": " If coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass." + "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV" + "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask", + "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask", "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter", - "text": " coverageModulationMode must be a valid VkCoverageModulationModeNV value" } ] }, - "VkPipelineColorBlendStateCreateInfo": { - "core": [ + "vkDestroySurfaceKHR": { + "(VK_KHR_surface)": [ { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", - "text": " If the independent blending feature is not enabled, all elements of pAttachments must be identical" + "vuid": "VUID-vkDestroySurfaceKHR-surface-01266", + "text": " All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", - "text": " If the logic operations feature is not enabled, logicOpEnable must be VK_FALSE" + "vuid": "VUID-vkDestroySurfaceKHR-surface-01267", + "text": " If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", - "text": " If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value" + "vuid": "VUID-vkDestroySurfaceKHR-surface-01268", + "text": " If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO" + "vuid": "VUID-vkDestroySurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT" + "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter", + "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkDestroySurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures" + "vuid": "VUID-vkDestroySurfaceKHR-surface-parent", + "text": " If surface is a valid handle, it must have been created, allocated, or retrieved from instance" } ] }, - "VkPipelineColorBlendAttachmentState": { - "core": [ + "vkGetPhysicalDeviceDisplayPropertiesKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608", - "text": " If the dual source blending feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609", - "text": " If the dual source blending feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610", - "text": " If the dual source blending feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" - }, + "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures" + } + ] + }, + "vkGetPhysicalDeviceDisplayProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611", - "text": " If the dual source blending feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" + "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter", - "text": " srcColorBlendFactor must be a valid VkBlendFactor value" + "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter", - "text": " dstColorBlendFactor must be a valid VkBlendFactor value" - }, + "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures" + } + ] + }, + "VkDisplayProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter", - "text": " colorBlendOp must be a valid VkBlendOp value" + "vuid": "VUID-VkDisplayProperties2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter", - "text": " srcAlphaBlendFactor must be a valid VkBlendFactor value" + "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkAcquireXlibDisplayEXT": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ + { + "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter", - "text": " dstAlphaBlendFactor must be a valid VkBlendFactor value" + "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter", + "text": " dpy must be a valid pointer to a Display value" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter", - "text": " alphaBlendOp must be a valid VkBlendOp value" + "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter", - "text": " colorWriteMask must be a valid combination of VkColorComponentFlagBits values" + "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parent", + "text": " display must have been created, allocated, or retrieved from physicalDevice" } - ], - "(VK_EXT_blend_operation_advanced)": [ + ] + }, + "vkGetRandROutputDisplayEXT": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406", - "text": " If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp" + "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments." + "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter", + "text": " dpy must be a valid pointer to a Display value" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments." + "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter", + "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" + } + ] + }, + "vkReleaseDisplayEXT": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)": [ + { + "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT" + "vuid": "VUID-vkReleaseDisplayEXT-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" }, { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410", - "text": " If colorBlendOp or alphaBlendOp is an advanced blend operation, then VkSubpassDescription::colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments" + "vuid": "VUID-vkReleaseDisplayEXT-display-parent", + "text": " display must have been created, allocated, or retrieved from physicalDevice" } ] }, - "vkCmdSetBlendConstants": { - "core": [ - { - "vuid": "VUID-vkCmdSetBlendConstants-None-00612", - "text": " The bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled" - }, + "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures" } ] }, - "VkPipelineColorBlendAdvancedStateCreateInfoEXT": { - "(VK_EXT_blend_operation_advanced)": [ + "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424", - "text": " If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425", - "text": " If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE" + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426", - "text": " If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT" - }, + "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures" + } + ] + }, + "VkDisplayPlaneProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT" + "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR" }, { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter", - "text": " blendOverlap must be a valid VkBlendOverlapEXT value" + "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "vkCmdDispatch": { - "core": [ - { - "vuid": "VUID-vkCmdDispatch-groupCountX-00386", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" - }, - { - "vuid": "VUID-vkCmdDispatch-groupCountY-00387", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" - }, - { - "vuid": "VUID-vkCmdDispatch-groupCountZ-00388", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" - }, + "vkGetDisplayPlaneSupportedDisplaysKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatch-None-00389", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_COMPUTE, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249", + "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" }, { - "vuid": "VUID-vkCmdDispatch-None-00390", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatch-None-00391", - "text": " A valid compute pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_COMPUTE" + "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter", + "text": " pDisplayCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdDispatch-None-00392", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE, a push constant value must have been set for VK_PIPELINE_BIND_POINT_COMPUTE, with a VkPipelineLayout that is compatible for push constants with the one used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, + "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter", + "text": " If the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles" + } + ] + }, + "vkGetDisplayModePropertiesKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatch-None-00393", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatch-None-00394", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" }, { - "vuid": "VUID-vkCmdDispatch-None-00395", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdDispatch-None-00396", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures" }, { - "vuid": "VUID-vkCmdDispatch-None-00397", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" - }, + "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parent", + "text": " display must have been created, allocated, or retrieved from physicalDevice" + } + ] + }, + "vkGetDisplayModeProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-vkCmdDispatch-None-02005", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" }, { - "vuid": "VUID-vkCmdDispatch-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter", + "text": " pPropertyCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter", + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures" }, { - "vuid": "VUID-vkCmdDispatch-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatch-None-02006", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT." - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatch-None-00400", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parent", + "text": " display must have been created, allocated, or retrieved from physicalDevice" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + ] + }, + "VkDisplayModeProperties2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-vkCmdDispatch-filterCubic-02609", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR" }, { - "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02610", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext", + "text": " pNext must be NULL" } - ], - "(VK_VERSION_1_1)": [ + ] + }, + "VkDisplayModeParametersKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatch-commandBuffer-01844", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." + "vuid": "VUID-VkDisplayModeParametersKHR-width-01990", + "text": " The width member of visibleRegion must be greater than 0" }, { - "vuid": "VUID-vkCmdDispatch-commandBuffer-01845", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer." + "vuid": "VUID-VkDisplayModeParametersKHR-height-01991", + "text": " The height member of visibleRegion must be greater than 0" }, { - "vuid": "VUID-vkCmdDispatch-commandBuffer-01846", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the compute pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE reads from any image or buffer, the image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDispatch-flags-02040", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992", + "text": " refreshRate must be greater than 0" } ] }, - "vkCmdDispatchIndirect": { - "core": [ + "vkCreateDisplayModeKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-00401", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00402", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_COMPUTE, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00403", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00404", - "text": " A valid compute pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_COMPUTE" + "vuid": "VUID-vkCreateDisplayModeKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-00405", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter", + "text": " pMode must be a valid pointer to a VkDisplayModeKHR handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-offset-00406", - "text": " offset must be a multiple of 4" - }, + "vuid": "VUID-vkCreateDisplayModeKHR-display-parent", + "text": " display must have been created, allocated, or retrieved from physicalDevice" + } + ] + }, + "VkDisplayModeCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-offset-00407", - "text": " The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer" + "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00408", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE, a push constant value must have been set for VK_PIPELINE_BIND_POINT_COMPUTE, with a VkPipelineLayout that is compatible for push constants with the one used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00409", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00410", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, + "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter", + "text": " parameters must be a valid VkDisplayModeParametersKHR structure" + } + ] + }, + "vkGetDisplayPlaneCapabilitiesKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-None-00411", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00412", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter", + "text": " mode must be a valid VkDisplayModeKHR handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00413", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" - }, + "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter", + "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure" + } + ] + }, + "vkGetDisplayPlaneCapabilities2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-None-02007", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT." + "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter", + "text": " pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure" }, { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, + "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter", + "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure" + } + ] + }, + "VkDisplayPlaneInfo2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR" }, { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdDispatchIndirect-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter", + "text": " mode must be a valid VkDisplayModeKHR handle" + } + ] + }, + "VkDisplayPlaneCapabilities2KHR": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + { + "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR" }, { - "vuid": "VUID-vkCmdDispatchIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext", + "text": " pNext must be NULL" } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + ] + }, + "vkDisplayPowerControlEXT": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-None-02008", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT." - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter", + "text": " device must be a valid VkDevice handle" + }, { - "vuid": "VUID-vkCmdDispatchIndirect-None-00416", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ + "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter", + "text": " display must be a valid VkDisplayKHR handle" + }, { - "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02611", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter", + "text": " pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure" }, { - "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02612", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN_EXT or VK_SAMPLER_REDUCTION_MODE_MAX_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + "vuid": "VUID-vkDisplayPowerControlEXT-commonparent", + "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" } - ], - "(VK_VERSION_1_1)": [ + ] + }, + "VkDisplayPowerInfoEXT": { + "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02639", - "text": " commandBuffer must not be a protected command buffer" + "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT" }, { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-01847", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_COMPUTE reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer." - } - ], - "(VK_NV_corner_sampled_image)": [ + "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext", + "text": " pNext must be NULL" + }, { - "vuid": "VUID-vkCmdDispatchIndirect-flags-02041", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE." + "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter", + "text": " powerState must be a valid VkDisplayPowerStateEXT value" } ] }, - "VkDispatchIndirectCommand": { - "core": [ + "vkCreateDisplayPlaneSurfaceKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-VkDispatchIndirectCommand-x-00417", - "text": " x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-VkDispatchIndirectCommand-y-00418", - "text": " y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure" }, { - "vuid": "VUID-VkDispatchIndirectCommand-z-00419", - "text": " z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "vkCmdDispatchBase": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdDispatchBase-None-00420", - "text": " All valid usage rules from vkCmdDispatch apply" - }, + "VkDisplaySurfaceCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421", - "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252", + "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" }, { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422", - "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253", + "text": " If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode" }, { - "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423", - "text": " baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254", + "text": " If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive" }, { - "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255", + "text": " alphaMode must be 0 or one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR returned by vkGetDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode" }, { - "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", + "text": " The width and height members of imageExtent must be less than the maxImageDimensions2D member of VkPhysicalDeviceLimits" }, { - "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427", - "text": " If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag." + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask", + "text": " flags must be 0" }, { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter", + "text": " displayMode must be a valid VkDisplayModeKHR handle" }, { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter", + "text": " transform must be a valid VkSurfaceTransformFlagBitsKHR value" }, { - "vuid": "VUID-vkCmdDispatchBase-renderpass", - "text": " This command must only be called outside of a render pass instance" + "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter", + "text": " alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value" } ] }, - "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkCreateHeadlessSurfaceEXT": { + "(VK_KHR_surface)+(VK_EXT_headless_surface)": [ { - "vuid": "VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter", + "text": " instance must be a valid VkInstance handle" }, { - "vuid": "VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkDeviceGeneratedCommandsFeaturesNVX structure" + "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure" }, { - "vuid": "VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pLimits-parameter", - "text": " pLimits must be a valid pointer to a VkDeviceGeneratedCommandsLimitsNVX structure" - } - ] - }, - "VkDeviceGeneratedCommandsFeaturesNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkDeviceGeneratedCommandsFeaturesNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX" + "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkDeviceGeneratedCommandsFeaturesNVX-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter", + "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" } ] }, - "VkDeviceGeneratedCommandsLimitsNVX": { - "(VK_NVX_device_generated_commands)": [ + "VkHeadlessSurfaceCreateInfoEXT": { + "(VK_KHR_surface)+(VK_EXT_headless_surface)": [ { - "vuid": "VUID-VkDeviceGeneratedCommandsLimitsNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX" + "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkDeviceGeneratedCommandsLimitsNVX-pNext-pNext", + "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext", "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask", + "text": " flags must be 0" } ] }, - "vkCreateObjectTableNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetPhysicalDeviceSurfaceSupportKHR": { + "(VK_KHR_surface)": [ + { + "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + }, { - "vuid": "VUID-vkCreateObjectTableNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkCreateObjectTableNVX-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkObjectTableCreateInfoNVX structure" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-vkCreateObjectTableNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter", + "text": " pSupported must be a valid pointer to a VkBool32 value" }, { - "vuid": "VUID-vkCreateObjectTableNVX-pObjectTable-parameter", - "text": " pObjectTable must be a valid pointer to a VkObjectTableNVX handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkObjectTableCreateInfoNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkObjectTableCreateInfoNVX-computeBindingPointSupport-01355", - "text": " If the VkDeviceGeneratedCommandsFeaturesNVX::computeBindingPointSupport feature is not enabled, pObjectEntryUsageFlags must not contain VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX" - }, - { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pObjectEntryCounts-01356", - "text": " Any value within pObjectEntryCounts must not exceed VkDeviceGeneratedCommandsLimitsNVX::maxObjectEntryCounts" - }, + "vkGetPhysicalDeviceWaylandPresentationSupportKHR": { + "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ { - "vuid": "VUID-VkObjectTableCreateInfoNVX-maxUniformBuffersPerDescriptor-01357", - "text": " maxUniformBuffersPerDescriptor must be within the limits supported by the device." + "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-maxStorageBuffersPerDescriptor-01358", - "text": " maxStorageBuffersPerDescriptor must be within the limits supported by the device." + "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-maxStorageImagesPerDescriptor-01359", - "text": " maxStorageImagesPerDescriptor must be within the limits supported by the device." - }, + "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter", + "text": " display must be a valid pointer to a wl_display value" + } + ] + }, + "vkGetPhysicalDeviceWin32PresentationSupportKHR": { + "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ { - "vuid": "VUID-VkObjectTableCreateInfoNVX-maxSampledImagesPerDescriptor-01360", - "text": " maxSampledImagesPerDescriptor must be within the limits supported by the device." + "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX" - }, + "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" + } + ] + }, + "vkGetPhysicalDeviceXcbPresentationSupportKHR": { + "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pObjectEntryTypes-parameter", - "text": " pObjectEntryTypes must be a valid pointer to an array of objectCount valid VkObjectEntryTypeNVX values" + "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pObjectEntryCounts-parameter", - "text": " pObjectEntryCounts must be a valid pointer to an array of objectCount uint32_t values" - }, + "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter", + "text": " connection must be a valid pointer to an xcb_connection_t value" + } + ] + }, + "vkGetPhysicalDeviceXlibPresentationSupportKHR": { + "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pObjectEntryUsageFlags-parameter", - "text": " pObjectEntryUsageFlags must be a valid pointer to an array of objectCount valid combinations of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-pObjectEntryUsageFlags-requiredbitmask", - "text": " Each element of pObjectEntryUsageFlags must not be 0" + "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTableCreateInfoNVX-objectCount-arraylength", - "text": " objectCount must be greater than 0" + "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter", + "text": " dpy must be a valid pointer to a Display value" } ] }, - "vkDestroyObjectTableNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetPhysicalDeviceDirectFBPresentationSupportEXT": { + "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ { - "vuid": "VUID-vkDestroyObjectTableNVX-objectTable-01361", - "text": " All submitted commands that refer to objectTable must have completed execution." + "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119", + "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" }, { - "vuid": "VUID-vkDestroyObjectTableNVX-objectTable-01362", - "text": " If VkAllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here." + "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkDestroyObjectTableNVX-objectTable-01363", - "text": " If no VkAllocationCallbacks were provided when objectTable was created, pAllocator must be NULL." - }, + "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter", + "text": " dfb must be a valid pointer to an IDirectFB value" + } + ] + }, + "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": { + "(VK_KHR_surface)": [ { - "vuid": "VUID-vkDestroyObjectTableNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkDestroyObjectTableNVX-objectTable-parameter", - "text": " objectTable must be a valid VkObjectTableNVX handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-vkDestroyObjectTableNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter", + "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure" }, { - "vuid": "VUID-vkDestroyObjectTableNVX-objectTable-parent", - "text": " objectTable must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkRegisterObjectsNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetPhysicalDeviceSurfaceCapabilities2KHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [ { - "vuid": "VUID-vkRegisterObjectsNVX-pObjectTableEntry-01364", - "text": " The contents of pObjectTableEntry must yield plausible bindings supported by the device." - }, + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671", + "text": " If a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo" + } + ], + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ { - "vuid": "VUID-vkRegisterObjectsNVX-pObjectIndices-01365", - "text": " At any pObjectIndices there must not be a registered resource already." + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkRegisterObjectsNVX-pObjectIndices-01366", - "text": " Any value inside pObjectIndices must be below the appropriate VkObjectTableCreateInfoNVX::pObjectEntryCounts limits provided at objectTable creation time." + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter", + "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" }, { - "vuid": "VUID-vkRegisterObjectsNVX-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter", + "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure" + } + ] + }, + "VkPhysicalDeviceSurfaceInfo2KHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-vkRegisterObjectsNVX-objectTable-parameter", - "text": " objectTable must be a valid VkObjectTableNVX handle" - }, + "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672", + "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" + } + ], + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ { - "vuid": "VUID-vkRegisterObjectsNVX-ppObjectTableEntries-parameter", - "text": " ppObjectTableEntries must be a valid pointer to an array of objectCount valid VkObjectTableEntryNVX structures" + "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR" }, { - "vuid": "VUID-vkRegisterObjectsNVX-pObjectIndices-parameter", - "text": " pObjectIndices must be a valid pointer to an array of objectCount uint32_t values" + "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext", + "text": " 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 VkSurfaceFullScreenExclusiveInfoEXT or VkSurfaceFullScreenExclusiveWin32InfoEXT" }, { - "vuid": "VUID-vkRegisterObjectsNVX-objectCount-arraylength", - "text": " objectCount must be greater than 0" + "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkRegisterObjectsNVX-objectTable-parent", - "text": " objectTable must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" } ] }, - "VkObjectTableEntryNVX": { - "(VK_NVX_device_generated_commands)": [ + "VkSurfaceFullScreenExclusiveInfoEXT": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-VkObjectTableEntryNVX-computeBindingPointSupport-01367", - "text": " If the VkDeviceGeneratedCommandsFeaturesNVX::computeBindingPointSupport feature is not enabled, flags must not contain VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX" + "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT" }, { - "vuid": "VUID-VkObjectTableEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" - }, + "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameter", + "text": " fullScreenExclusive must be a valid VkFullScreenExclusiveEXT value" + } + ] + }, + "VkSurfaceFullScreenExclusiveWin32InfoEXT": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)": [ { - "vuid": "VUID-VkObjectTableEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673", + "text": " hmonitor must be a valid HMONITOR" }, { - "vuid": "VUID-VkObjectTableEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT" } ] }, - "VkObjectTablePipelineEntryNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkObjectTablePipelineEntryNVX-type-01368", - "text": " type must be VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX" - }, + "VkSurfaceCapabilities2KHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ { - "vuid": "VUID-VkObjectTablePipelineEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" + "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR" }, { - "vuid": "VUID-VkObjectTablePipelineEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext", + "text": " 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 VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, or VkSurfaceProtectedCapabilitiesKHR" }, { - "vuid": "VUID-VkObjectTablePipelineEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" - }, + "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" + } + ] + }, + "VkSurfaceProtectedCapabilitiesKHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_surface_protected_capabilities)": [ { - "vuid": "VUID-VkObjectTablePipelineEntryNVX-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" + "vuid": "VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR" } ] }, - "VkObjectTableDescriptorSetEntryNVX": { - "(VK_NVX_device_generated_commands)": [ + "VkSharedPresentSurfaceCapabilitiesKHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-type-01369", - "text": " type must be VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX" - }, + "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR" + } + ] + }, + "VkDisplayNativeHdrSurfaceCapabilitiesAMD": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_AMD_display_native_hdr)": [ { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" - }, + "vuid": "VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD" + } + ] + }, + "VkSurfaceCapabilitiesFullScreenExclusiveEXT": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" - }, + "vuid": "VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT" + } + ] + }, + "vkGetPhysicalDeviceSurfaceCapabilities2EXT": { + "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-pipelineLayout-parameter", - "text": " pipelineLayout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-descriptorSet-parameter", - "text": " descriptorSet must be a valid VkDescriptorSet handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter", + "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure" }, { - "vuid": "VUID-VkObjectTableDescriptorSetEntryNVX-commonparent", - "text": " Both of descriptorSet, and pipelineLayout must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkObjectTableVertexBufferEntryNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkObjectTableVertexBufferEntryNVX-type-01370", - "text": " type must be VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX" - }, - { - "vuid": "VUID-VkObjectTableVertexBufferEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" - }, + "VkSurfaceCapabilities2EXT": { + "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ { - "vuid": "VUID-VkObjectTableVertexBufferEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246", + "text": " supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_EXT unless the surface queried is a display surface" }, { - "vuid": "VUID-VkObjectTableVertexBufferEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" }, { - "vuid": "VUID-VkObjectTableVertexBufferEntryNVX-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext", + "text": " pNext must be NULL" } ] }, - "VkObjectTableIndexBufferEntryNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetPhysicalDeviceSurfaceFormatsKHR": { + "(VK_KHR_surface)": [ { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-type-01371", - "text": " type must be VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-02739", + "text": " surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" }, { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter", + "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter", + "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures" }, { - "vuid": "VUID-VkObjectTableIndexBufferEntryNVX-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkObjectTablePushConstantEntryNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-type-01372", - "text": " type must be VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX" - }, - { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-type-parameter", - "text": " type must be a valid VkObjectEntryTypeNVX value" - }, + "vkGetPhysicalDeviceSurfaceFormats2KHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-flags-parameter", - "text": " flags must be a valid combination of VkObjectEntryUsageFlagBitsNVX values" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-02740", + "text": " pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" }, { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-pipelineLayout-parameter", - "text": " pipelineLayout must be a valid VkPipelineLayout handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter", + "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" }, { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter", + "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkObjectTablePushConstantEntryNVX-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" + "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter", + "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures" } ] }, - "vkUnregisterObjectsNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-vkUnregisterObjectsNVX-pObjectIndices-01373", - "text": " At any pObjectIndices there must be a registered resource already." - }, - { - "vuid": "VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-01374", - "text": " The pObjectEntryTypes of the resource at pObjectIndices must match." - }, + "VkSurfaceFormat2KHR": { + "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ { - "vuid": "VUID-vkUnregisterObjectsNVX-None-01375", - "text": " All operations on the device using the registered resource must have been completed." + "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" }, { - "vuid": "VUID-vkUnregisterObjectsNVX-device-parameter", - "text": " device must be a valid VkDevice handle" - }, + "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "vkGetPhysicalDeviceSurfacePresentModesKHR": { + "(VK_KHR_surface)": [ { - "vuid": "VUID-vkUnregisterObjectsNVX-objectTable-parameter", - "text": " objectTable must be a valid VkObjectTableNVX handle" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-parameter", - "text": " pObjectEntryTypes must be a valid pointer to an array of objectCount valid VkObjectEntryTypeNVX values" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-vkUnregisterObjectsNVX-pObjectIndices-parameter", - "text": " pObjectIndices must be a valid pointer to an array of objectCount uint32_t values" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter", + "text": " pPresentModeCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkUnregisterObjectsNVX-objectCount-arraylength", - "text": " objectCount must be greater than 0" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter", + "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" }, { - "vuid": "VUID-vkUnregisterObjectsNVX-objectTable-parent", - "text": " objectTable must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkIndirectCommandsLayoutTokenNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetPhysicalDeviceSurfacePresentModes2EXT": { + "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNVX-bindingUnit-01342", - "text": " bindingUnit must stay within device supported limits for the appropriate commands." + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNVX-dynamicCount-01343", - "text": " dynamicCount must stay within device supported limits for the appropriate commands." + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter", + "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" }, { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNVX-divisor-01344", - "text": " divisor must be greater than 0 and a power of two." + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter", + "text": " pPresentModeCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNVX-tokenType-parameter", - "text": " tokenType must be a valid VkIndirectCommandsTokenTypeNVX value" + "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter", + "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" } ] }, - "VkIndirectCommandsTokenNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkIndirectCommandsTokenNVX-buffer-01345", - "text": " The buffer’s usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set." - }, + "vkAcquireFullScreenExclusiveModeEXT": { + "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-VkIndirectCommandsTokenNVX-offset-01346", - "text": " The offset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minCommandsTokenBufferOffsetAlignment." + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674", + "text": " swapchain must not be in the retired state" }, { - "vuid": "VUID-VkIndirectCommandsTokenNVX-tokenType-parameter", - "text": " tokenType must be a valid VkIndirectCommandsTokenTypeNVX value" + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675", + "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" }, { - "vuid": "VUID-VkIndirectCommandsTokenNVX-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "vkCreateIndirectCommandsLayoutNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676", + "text": " swapchain must not currently have exclusive full-screen access" }, { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNVX-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNVX structure" + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNVX-pIndirectCommandsLayout-parameter", - "text": " pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNVX handle" + "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkIndirectCommandsLayoutCreateInfoNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-tokenCount-01347", - "text": " tokenCount must be greater than 0 and below VkDeviceGeneratedCommandsLimitsNVX::maxIndirectCommandsLayoutTokenCount" - }, + "vkReleaseFullScreenExclusiveModeEXT": { + "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-computeBindingPointSupport-01348", - "text": " If the VkDeviceGeneratedCommandsFeaturesNVX::computeBindingPointSupport feature is not enabled, then pipelineBindPoint must not be VK_PIPELINE_BIND_POINT_COMPUTE" + "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677", + "text": " swapchain must not be in the retired state" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-01349", - "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX it must be the first element of the array and there must be only a single element of such token type." - }, + "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678", + "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" + } + ] + }, + "vkGetDeviceGroupPresentCapabilitiesKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-01350", - "text": " All state binding tokens in pTokens must occur prior work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX)." + "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-01351", - "text": " The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint." - }, + "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter", + "text": " pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure" + } + ] + }, + "VkDeviceGroupPresentCapabilitiesKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX" + "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pNext-pNext", + "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext", "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, + } + ] + }, + "vkGetDeviceGroupSurfacePresentModesKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-flags-parameter", - "text": " flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNVX values" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-flags-requiredbitmask", - "text": " flags must not be 0" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-parameter", - "text": " pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNVX structures" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter", + "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" }, { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNVX-tokenCount-arraylength", - "text": " tokenCount must be greater than 0" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent", + "text": " Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkDestroyIndirectCommandsLayoutNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetDeviceGroupSurfacePresentModes2EXT": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)": [ { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-01352", - "text": " All submitted commands that refer to indirectCommandsLayout must have completed execution" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01353", - "text": " If VkAllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter", + "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01354", - "text": " If no VkAllocationCallbacks were provided when objectTable was created, pAllocator must be NULL" + "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameter", + "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" + } + ] + }, + "vkGetPhysicalDevicePresentRectanglesKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + { + "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle" + "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter", + "text": " pRectCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter", + "text": " If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures" }, { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent", - "text": " indirectCommandsLayout must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent", + "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkCmdReserveSpaceForCommandsNVX": { - "(VK_NVX_device_generated_commands)": [ + "vkGetRefreshCycleDurationGOOGLE": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01329", - "text": " The provided commandBuffer must not have had a prior space reservation since its creation or the last reset." + "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01330", - "text": " The state of the commandBuffer must be legal to execute all commands within the sequence provided by the indirectCommandsLayout member of pProcessCommandsInfo." + "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter", + "text": " pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-pReserveSpaceInfo-parameter", - "text": " pReserveSpaceInfo must be a valid pointer to a valid VkCmdReserveSpaceForCommandsInfoNVX structure" + "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" + } + ] + }, + "vkGetPastPresentationTimingGOOGLE": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ + { + "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter", + "text": " pPresentationTimingCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter", + "text": " If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures" }, { - "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-bufferlevel", - "text": " commandBuffer must be a secondary VkCommandBuffer" + "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkCmdReserveSpaceForCommandsInfoNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkCmdReserveSpaceForCommandsInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX" - }, - { - "vuid": "VUID-VkCmdReserveSpaceForCommandsInfoNVX-pNext-pNext", - "text": " pNext must be NULL" - }, + "vkGetSwapchainStatusKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter", - "text": " objectTable must be a valid VkObjectTableNVX handle" + "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle" + "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent", - "text": " Both of indirectCommandsLayout, and objectTable must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkGetSwapchainStatusKHR-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkCmdProcessCommandsNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vkCreateSwapchainKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-vkCmdProcessCommandsNVX-pProcessCommandsInfo-parameter", - "text": " pProcessCommandsInfo must be a valid pointer to a valid VkCmdProcessCommandsInfoNVX structure" + "vuid": "VUID-vkCreateSwapchainKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdProcessCommandsNVX-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure" }, { - "vuid": "VUID-vkCmdProcessCommandsNVX-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + "vuid": "VUID-vkCreateSwapchainKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCmdProcessCommandsNVX-renderpass", - "text": " This command must only be called inside of a render pass instance" + "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter", + "text": " pSwapchain must be a valid pointer to a VkSwapchainKHR handle" } ] }, - "VkCmdProcessCommandsInfoNVX": { - "(VK_NVX_device_generated_commands)": [ - { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-objectTable-01331", - "text": " The provided objectTable must include all objects referenced by the generation process" - }, + "VkSwapchainCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-01332", - "text": " indirectCommandsTokenCount must match the indirectCommandsLayout’s tokenCount" + "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270", + "text": " surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-tokenType-01333", - "text": " The tokenType member of each entry in the pIndirectCommandsTokens array must match the values used at creation time of indirectCommandsLayout" + "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272", + "text": " minImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-01334", - "text": " If targetCommandBuffer is provided, it must have reserved command space" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273", + "text": " imageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-01335", - "text": " If targetCommandBuffer is provided, the objectTable must match the reservation’s objectTable and must have had all referenced objects registered at reservation time" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01274", + "text": " imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-01336", - "text": " If targetCommandBuffer is provided, the indirectCommandsLayout must match the reservation’s indirectCommandsLayout" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689", + "text": " imageExtent members width and height must both be non-zero" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-01337", - "text": " If targetCommandBuffer is provided, the maxSequencesCount must not exceed the reservation’s maxSequencesCount" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275", + "text": " imageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-01338", - "text": " If sequencesCountBuffer is used, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277", + "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-01339", - "text": " If sequencesCountBuffer is used, sequencesCountOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceCountBufferOffsetAlignment" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278", + "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01340", - "text": " If sequencesIndexBuffer is used, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279", + "text": " preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01341", - "text": " If sequencesIndexBuffer is used, sequencesIndexOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceIndexBufferOffsetAlignment" + "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280", + "text": " compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX" + "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281", + "text": " presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933", + "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter", - "text": " objectTable must be a valid VkObjectTableNVX handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778", + "text": " The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-pIndirectCommandsTokens-parameter", - "text": " pIndirectCommandsTokens must be a valid pointer to an array of indirectCommandsTokenCount valid VkIndirectCommandsTokenNVX structures" + "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext", + "text": " 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 VkDeviceGroupSwapchainCreateInfoKHR, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, or VkSwapchainDisplayNativeHdrCreateInfoAMD" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter", - "text": " If targetCommandBuffer is not NULL, targetCommandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter", + "text": " flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter", + "text": " surface must be a valid VkSurfaceKHR handle" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-arraylength", - "text": " indirectCommandsTokenCount must be greater than 0" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter", + "text": " imageFormat must be a valid VkFormat value" }, { - "vuid": "VUID-VkCmdProcessCommandsInfoNVX-commonparent", - "text": " Each of indirectCommandsLayout, objectTable, sequencesCountBuffer, sequencesIndexBuffer, and targetCommandBuffer that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetPhysicalDeviceSparseImageFormatProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter", + "text": " imageColorSpace must be a valid VkColorSpaceKHR value" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter", + "text": " imageUsage must be a valid combination of VkImageUsageFlagBits values" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask", + "text": " imageUsage must not be 0" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter", - "text": " type must be a valid VkImageType value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter", + "text": " imageSharingMode must be a valid VkSharingMode value" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter", + "text": " preTransform must be a valid VkSurfaceTransformFlagBitsKHR value" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter", + "text": " compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask", - "text": " usage must not be 0" + "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter", + "text": " presentMode must be a valid VkPresentModeKHR value" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", + "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent", + "text": " If oldSwapchain is a valid handle, it must have been created, allocated, or retrieved from surface" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures" + "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent", + "text": " Both of oldSwapchain, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" } - ] - }, - "vkGetPhysicalDeviceSparseImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter", - "text": " pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure" - }, + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01271", + "text": " minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures" + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01276", + "text": " imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" } - ] - }, - "VkPhysicalDeviceSparseImageFormatInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" + "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839", + "text": " If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" }, { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2" + "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383", + "text": " minImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR" }, { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427", + "text": " If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface" }, { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter", - "text": " format must be a valid VkFormat value" - }, + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384", + "text": " If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter", - "text": " type must be a valid VkImageType value" - }, + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393", + "text": " If imageSharingMode 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" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, + "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428", + "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429", + "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)": [ + { + "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168", + "text": " If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat" }, { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask", - "text": " usage must not be 0" + "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-04099", + "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table" }, { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" + "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-04100", + "text": " If flags does not contain VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" } - ] - }, - "VkSparseImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_surface_protected_capabilities)": [ { - "vuid": "VUID-VkSparseImageFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2" - }, + "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03187", + "text": " If flags contains VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, then VkSurfaceProtectedCapabilitiesKHR::supportsProtected must be VK_TRUE in the VkSurfaceProtectedCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [ { - "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-02679", + "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" } ] }, - "vkGetImageSparseMemoryRequirements": { - "core": [ - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" - }, + "VkDeviceGroupSwapchainCreateInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR" }, { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures" + "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter", + "text": " modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values" }, { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" + "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask", + "text": " modes must not be 0" } ] }, - "vkGetImageSparseMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure" - }, + "VkSwapchainDisplayNativeHdrCreateInfoAMD": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [ { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD" }, { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures" + "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-XXXXX", + "text": " It is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported" } ] }, - "VkImageSparseMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ + "vkSetLocalDimmingAMD": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [ { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2" + "vuid": "VUID-vkSetLocalDimmingAMD-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parameter", + "text": " swapChain must be a valid VkSwapchainKHR handle" }, - { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" - } - ] - }, - "VkSparseImageMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2" + { + "vuid": "VUID-vkSetLocalDimmingAMD-commonparent", + "text": " Both of device, and swapChain must have been created, allocated, or retrieved from the same VkInstance" }, { - "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkSetLocalDimmingAMD-XXXXX", + "text": " It is only valid to call vkSetLocalDimmingAMD if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported" } ] }, - "VkSparseMemoryBind": { - "core": [ + "VkSwapchainCounterCreateInfoEXT": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ { - "vuid": "VUID-VkSparseMemoryBind-memory-01096", - "text": " If memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association" + "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244", + "text": " The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT" }, { - "vuid": "VUID-VkSparseMemoryBind-memory-01097", - "text": " If memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set" + "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkSparseMemoryBind-size-01098", - "text": " size must be greater than 0" - }, + "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter", + "text": " surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values" + } + ] + }, + "vkGetSwapchainCounterEXT": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ { - "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099", - "text": " resourceOffset must be less than the size of the resource" + "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245", + "text": " One or more present commands on swapchain must have been processed by the presentation engine" }, { - "vuid": "VUID-VkSparseMemoryBind-size-01100", - "text": " size must be less than or equal to the size of the resource minus resourceOffset" + "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101", - "text": " memoryOffset must be less than the size of memory" + "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-VkSparseMemoryBind-size-01102", - "text": " size must be less than or equal to the size of memory minus memoryOffset" + "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter", + "text": " counter must be a valid VkSurfaceCounterFlagBitsEXT value" }, { - "vuid": "VUID-VkSparseMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter", + "text": " pCounterValue must be a valid pointer to a uint64_t value" }, { - "vuid": "VUID-VkSparseMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + "vuid": "VUID-vkGetSwapchainCounterEXT-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkSparseBufferMemoryBindInfo": { - "core": [ + "vkDestroySwapchainKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" + "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282", + "text": " All uses of presentable images acquired from swapchain must have completed execution" }, { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" + "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283", + "text": " If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284", + "text": " If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL" + }, + { + "vuid": "VUID-vkDestroySwapchainKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter", + "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" + }, + { + "vuid": "VUID-vkDestroySwapchainKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroySwapchainKHR-commonparent", + "text": " Both of device, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkSparseImageOpaqueMemoryBindInfo": { - "core": [ + "vkCreateSharedSwapchainsKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103", - "text": " If the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image" + "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter", + "text": " pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures" }, { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" + "vuid": "VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter", + "text": " pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles" + }, + { + "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength", + "text": " swapchainCount must be greater than 0" } ] }, - "VkSparseImageMemoryBindInfo": { - "core": [ + "vkGetSwapchainImagesKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722", - "text": " The subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723", - "text": " The subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created" + "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" + "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter", + "text": " pSwapchainImageCount must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures" + "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter", + "text": " If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles" }, { - "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" + "vuid": "VUID-vkGetSwapchainImagesKHR-commonparent", + "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "VkSparseImageMemoryBind": { - "core": [ + "vkAcquireNextImageKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-VkSparseImageMemoryBind-memory-01104", - "text": " If the sparse aliased residency feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges" + "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285", + "text": " swapchain must not be in the retired state" }, { - "vuid": "VUID-VkSparseImageMemoryBind-memory-01105", - "text": " memory and memoryOffset must match the memory requirements of the calling command’s image, as described in section Resource Memory Association" + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286", + "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" }, { - "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106", - "text": " subresource must be a valid image subresource for image (see Image Views)" + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779", + "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" }, { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01107", - "text": " offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image" + "vuid": "VUID-vkAcquireNextImageKHR-fence-01287", + "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" }, { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01108", - "text": " extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource" + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780", + "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" }, { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01109", - "text": " offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image" + "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01802", + "text": " If the number of currently acquired images is greater than the difference between the number of images in swapchain and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, timeout must not be UINT64_MAX" }, { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01110", - "text": " extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource" + "vuid": "VUID-vkAcquireNextImageKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01111", - "text": " offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image" + "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01112", - "text": " extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource" + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter", + "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" }, { - "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter", - "text": " subresource must be a valid VkImageSubresource structure" + "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter", + "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" }, { - "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" + "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter", + "text": " pImageIndex must be a valid pointer to a uint32_t value" }, { - "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent", + "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" + }, + { + "vuid": "VUID-vkAcquireNextImageKHR-fence-parent", + "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" + }, + { + "vuid": "VUID-vkAcquireNextImageKHR-commonparent", + "text": " Both of device, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265", + "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" } ] }, - "vkQueueBindSparse": { - "core": [ + "vkAcquireNextImage2KHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-vkQueueBindSparse-fence-01113", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" + "vuid": "VUID-vkAcquireNextImage2KHR-swapchain-01803", + "text": " If the number of currently acquired images is greater than the difference between the number of images in the swapchain member of pAcquireInfo and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX" }, { - "vuid": "VUID-vkQueueBindSparse-fence-01114", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" + "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115", - "text": " Each element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device" + "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter", + "text": " pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure" }, { - "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116", - "text": " When a semaphore unsignal operation defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, no other queue must be waiting on the same semaphore." - }, + "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter", + "text": " pImageIndex must be a valid pointer to a uint32_t value" + } + ] + }, + "VkAcquireNextImageInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117", - "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution." + "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675", + "text": " swapchain must not be in the retired state" }, { - "vuid": "VUID-vkQueueBindSparse-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288", + "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" }, { - "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter", - "text": " If bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures" + "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781", + "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" }, { - "vuid": "VUID-vkQueueBindSparse-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289", + "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" }, { - "vuid": "VUID-vkQueueBindSparse-queuetype", - "text": " The queue must support sparse binding operations" + "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782", + "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" }, { - "vuid": "VUID-vkQueueBindSparse-commonparent", - "text": " Both of fence, and queue that are valid handles must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBindSparseInfo": { - "core": [ - { - "vuid": "VUID-VkBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO" + "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290", + "text": " deviceMask must be a valid device mask" }, { - "vuid": "VUID-VkBindSparseInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceGroupBindSparseInfo" + "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291", + "text": " deviceMask must not be zero" }, { - "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR" }, { - "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter", - "text": " If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures" + "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter", - "text": " If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures" + "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter", + "text": " swapchain must be a valid VkSwapchainKHR handle" }, { - "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter", - "text": " If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures" + "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter", + "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" }, { - "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" + "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter", + "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" }, { - "vuid": "VUID-VkBindSparseInfo-commonparent", - "text": " Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent", + "text": " Each of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266", + "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" } ] }, - "VkDeviceGroupBindSparseInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vkQueuePresentKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118", - "text": " resourceDeviceIndex and memoryDeviceIndex must both be valid device indices." + "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292", + "text": " Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR" }, { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119", - "text": " Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex." + "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294", + "text": " When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore" }, { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO" - } - ] - }, - "vkCreateAndroidSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_android_surface)": [ + "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01295", + "text": " All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" + }, { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-vkQueuePresentKHR-queue-parameter", + "text": " queue must be a valid VkQueue handle" }, { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure" - }, + "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter", + "text": " pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ + { + "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293", + "text": " If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03267", + "text": " All elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" }, { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03268", + "text": " All elements of the pWaitSemaphores member of pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" } ] }, - "VkAndroidSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_android_surface)": [ - { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248", - "text": " window must point to a valid Android ANativeWindow." - }, + "VkPresentInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR" - }, + "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01296", + "text": " Each 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" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, + "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430", + "text": " Each 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" + } + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-03269", + "text": " All elements of the pWaitSemaphores must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" } - ] - }, - "vkCreateWaylandSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ + ], + "(VK_KHR_surface)+(VK_KHR_swapchain)": [ { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-VkPresentInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR" }, { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure" + "vuid": "VUID-VkPresentInfoKHR-pNext-pNext", + "text": " 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 VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkPresentFrameTokenGGP, VkPresentRegionsKHR, or VkPresentTimesInfoGOOGLE" }, { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkPresentInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkWaylandSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ + "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter", + "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + }, { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304", - "text": " display must point to a valid Wayland wl_display." + "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter", + "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" }, { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305", - "text": " surface must point to a valid Wayland wl_surface." + "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter", + "text": " pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values" }, { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR" + "vuid": "VUID-VkPresentInfoKHR-pResults-parameter", + "text": " If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values" }, { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength", + "text": " swapchainCount must be greater than 0" }, { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPresentInfoKHR-commonparent", + "text": " Both of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkCreateWin32SurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ + "VkPresentRegionsKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ { - "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260", + "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure" }, { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure" + "vuid": "VUID-VkPresentRegionsKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR" }, { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter", + "text": " If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures" }, { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength", + "text": " swapchainCount must be greater than 0" } ] }, - "VkWin32SurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307", - "text": " hinstance must be a valid Win32 HINSTANCE." - }, - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308", - "text": " hwnd must be a valid Win32 HWND." - }, + "VkPresentRegionKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR" - }, + "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter", + "text": " If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures" + } + ] + }, + "VkRectLayerKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkRectLayerKHR-offset-01261", + "text": " The sum of offset and extent must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" }, { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkRectLayerKHR-layer-01262", + "text": " layer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" } ] }, - "vkCreateXcbSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ + "VkDisplayPresentInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ { - "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257", + "text": " srcRect must specify a rectangular region that is a subset of the image being presented" }, { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure" + "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258", + "text": " dstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses" }, { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259", + "text": " If the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets then persistent must be VK_FALSE" }, { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR" } ] }, - "VkXcbSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ + "VkDeviceGroupPresentInfoKHR": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310", - "text": " connection must point to a valid X11 xcb_connection_t." + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297", + "text": " swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount" }, { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311", - "text": " window must be a valid X11 xcb_window_t." + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298", + "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" }, { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299", + "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask" }, { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300", + "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask" }, { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateXlibSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301", + "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" + }, { - "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302", + "text": " The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired" }, { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303", + "text": " mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes" }, { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR" }, { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter", + "text": " If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values" + }, + { + "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter", + "text": " mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value" } ] }, - "VkXlibSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313", - "text": " dpy must point to a valid Xlib Display." - }, + "VkPresentTimesInfoGOOGLE": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314", - "text": " window must be a valid Xlib Window." + "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247", + "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure" }, { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR" + "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE" }, { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter", + "text": " If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures" }, { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength", + "text": " swapchainCount must be greater than 0" } ] }, - "vkCreateImagePipeSurfaceFUCHSIA": { - "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, + "VkPresentFrameTokenGGP": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)": [ { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure" - }, - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkPresentFrameTokenGGP-frameToken-02680", + "text": " frameToken must be a valid GgpFrameToken" }, { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-VkPresentFrameTokenGGP-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP" } ] }, - "VkImagePipeSurfaceCreateInfoFUCHSIA": { - "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ + "vkSetHdrMetadataEXT": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000", - "text": " imagePipeHandle must be a valid zx_handle_t" + "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" + "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter", + "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" }, { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter", + "text": " pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures" }, { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength", + "text": " swapchainCount must be greater than 0" + }, + { + "vuid": "VUID-vkSetHdrMetadataEXT-commonparent", + "text": " Both of device, and the elements of pSwapchains must have been created, allocated, or retrieved from the same VkInstance" } ] }, - "vkCreateIOSSurfaceMVK": { - "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ + "VkHdrMetadataEXT": { + "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ { - "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-VkHdrMetadataEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT" }, { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure" - }, + "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, + "VkDeferredOperationInfoKHR": { + "(VK_KHR_deferred_host_operations)": [ { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-VkDeferredOperationInfoKHR-operationHandle-03433", + "text": " Any previous deferred operation that was associated with operationHandle must be complete" }, { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-VkDeferredOperationInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR" } ] }, - "VkIOSSurfaceCreateInfoMVK": { - "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316", - "text": " pView must be a valid UIView and must be backed by a CALayer instance of type CAMetalLayer." - }, + "vkCreateDeferredOperationKHR": { + "(VK_KHR_deferred_host_operations)": [ { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK" + "vuid": "VUID-vkCreateDeferredOperationKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCreateDeferredOperationKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter", + "text": " pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle" } ] }, - "vkCreateMacOSSurfaceMVK": { - "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ - { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, + "vkDeferredOperationJoinKHR": { + "(VK_KHR_deferred_host_operations)": [ { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure" + "vuid": "VUID-vkDeferredOperationJoinKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parameter", + "text": " operation must be a valid VkDeferredOperationKHR handle" }, { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parent", + "text": " operation must have been created, allocated, or retrieved from device" } ] }, - "VkMacOSSurfaceCreateInfoMVK": { - "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ + "vkDestroyDeferredOperationKHR": { + "(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03434", + "text": " If VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here" + }, { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317", - "text": " pView must be a valid NSView and must be backed by a CALayer instance of type CAMetalLayer." + "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03435", + "text": " If no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL" }, { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK" + "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436", + "text": " operation must be completed" }, { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkDestroyDeferredOperationKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parameter", + "text": " If operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle" + }, + { + "vuid": "VUID-vkDestroyDeferredOperationKHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parent", + "text": " If operation is a valid handle, it must have been created, allocated, or retrieved from device" } ] }, - "vkCreateViSurfaceNN": { - "(VK_KHR_surface)+(VK_NN_vi_surface)": [ - { - "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, + "vkGetDeferredOperationMaxConcurrencyKHR": { + "(VK_KHR_deferred_host_operations)": [ { - "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure" + "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateViSurfaceNN-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter", + "text": " operation must be a valid VkDeferredOperationKHR handle" }, { - "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent", + "text": " operation must have been created, allocated, or retrieved from device" } ] }, - "VkViSurfaceCreateInfoNN": { - "(VK_KHR_surface)+(VK_NN_vi_surface)": [ - { - "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318", - "text": " window must be a valid nn::vi::NativeWindowHandle" - }, + "vkGetDeferredOperationResultKHR": { + "(VK_KHR_deferred_host_operations)": [ { - "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" + "vuid": "VUID-vkGetDeferredOperationResultKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parameter", + "text": " operation must be a valid VkDeferredOperationKHR handle" }, { - "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parent", + "text": " operation must have been created, allocated, or retrieved from device" } ] }, - "vkCreateMetalSurfaceEXT": { - "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ + "vkCreatePrivateDataSlotEXT": { + "(VK_EXT_private_data)": [ { - "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-vkCreatePrivateDataSlotEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure" + "vuid": "VUID-vkCreatePrivateDataSlotEXT-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfoEXT structure" }, { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCreatePrivateDataSlotEXT-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" + "vuid": "VUID-vkCreatePrivateDataSlotEXT-pPrivateDataSlot-parameter", + "text": " pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlotEXT handle" } ] }, - "VkMetalSurfaceCreateInfoEXT": { - "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ + "VkPrivateDataSlotCreateInfoEXT": { + "(VK_EXT_private_data)": [ { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" + "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT" }, { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext", + "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-pNext-pNext", "text": " pNext must be NULL" }, { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask", + "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-flags-zerobitmask", "text": " flags must be 0" } ] }, - "vkDestroySurfaceKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01266", - "text": " All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface" - }, + "vkDestroyPrivateDataSlotEXT": { + "(VK_EXT_private_data)": [ { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01267", - "text": " If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04062", + "text": " If VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here" }, { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01268", - "text": " If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04063", + "text": " If no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL" }, { - "vuid": "VUID-vkDestroySurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parameter", + "text": " If privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlotEXT handle" }, { - "vuid": "VUID-vkDestroySurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { - "vuid": "VUID-vkDestroySurfaceKHR-surface-parent", - "text": " If surface is a valid handle, it must have been created, allocated, or retrieved from instance" + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parent", + "text": " If privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device" } ] }, - "vkGetPhysicalDeviceDisplayPropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vkSetPrivateDataEXT": { + "(VK_EXT_private_data)": [ { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkSetPrivateDataEXT-objectHandle-04016", + "text": " objectHandle must be device or a child of device" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkSetPrivateDataEXT-objectHandle-04017", + "text": " objectHandle must be a valid handle to an object of type objectType" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures" - } - ] - }, - "vkGetPhysicalDeviceDisplayProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkSetPrivateDataEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkSetPrivateDataEXT-objectType-parameter", + "text": " objectType must be a valid VkObjectType value" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures" - } - ] - }, - "VkDisplayProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR" + "vuid": "VUID-vkSetPrivateDataEXT-privateDataSlot-parameter", + "text": " privateDataSlot must be a valid VkPrivateDataSlotEXT handle" }, { - "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkSetPrivateDataEXT-privateDataSlot-parent", + "text": " privateDataSlot must have been created, allocated, or retrieved from device" } ] }, - "vkAcquireXlibDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ + "vkGetPrivateDataEXT": { + "(VK_EXT_private_data)": [ { - "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkGetPrivateDataEXT-objectType-04018", + "text": " objectType must be VkDevice or an object type whose parent is VkDevice" }, { - "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" + "vuid": "VUID-vkGetPrivateDataEXT-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - } - ] - }, - "vkGetRandROutputDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ + "vuid": "VUID-vkGetPrivateDataEXT-objectType-parameter", + "text": " objectType must be a valid VkObjectType value" + }, { - "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkGetPrivateDataEXT-privateDataSlot-parameter", + "text": " privateDataSlot must be a valid VkPrivateDataSlotEXT handle" }, { - "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" + "vuid": "VUID-vkGetPrivateDataEXT-pData-parameter", + "text": " pData must be a valid pointer to a uint64_t value" }, { - "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter", - "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" + "vuid": "VUID-vkGetPrivateDataEXT-privateDataSlot-parent", + "text": " privateDataSlot must have been created, allocated, or retrieved from device" } ] }, - "vkReleaseDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)": [ + "vkCmdTraceRaysNV": { + "core": [ { - "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkReleaseDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - } - ] - }, - "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" + }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysNV-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures" - } - ] - }, - "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + "vuid": "VUID-vkCmdTraceRaysNV-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" + }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures" - } - ] - }, - "VkDisplayPlaneProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + "vuid": "VUID-vkCmdTraceRaysNV-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" + }, { - "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR" + "vuid": "VUID-vkCmdTraceRaysNV-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetDisplayPlaneSupportedDisplaysKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + }, { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + "vuid": "VUID-vkCmdTraceRaysNV-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter", - "text": " pDisplayCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysNV-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter", - "text": " If the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles" - } - ] - }, - "vkGetDisplayModePropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." + }, { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-None-03429", + "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" }, { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03430", + "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline" }, { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042", + "text": " If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures" - } - ] - }, - "vkGetDisplayModeProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", + "text": " raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer" + }, { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", + "text": " raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" }, { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043", + "text": " If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", + "text": " missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer" }, { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures" - } - ] - }, - "VkDisplayModeProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", + "text": " missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + }, { - "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR" + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", + "text": " If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkDisplayModeParametersKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", + "text": " hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer" + }, { - "vuid": "VUID-VkDisplayModeParametersKHR-width-01990", - "text": " The width member of visibleRegion must be greater than 0" + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", + "text": " hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" }, { - "vuid": "VUID-VkDisplayModeParametersKHR-height-01991", - "text": " The height member of visibleRegion must be greater than 0" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", + "text": " If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992", - "text": " refreshRate must be greater than 0" - } - ] - }, - "vkCreateDisplayModeKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", + "text": " callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer" + }, { - "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", + "text": " callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" }, { - "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", + "text": " missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" }, { - "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure" + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", + "text": " hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" }, { - "vuid": "VUID-vkCreateDisplayModeKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", + "text": " callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" }, { - "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter", - "text": " pMode must be a valid pointer to a VkDisplayModeKHR handle" - } - ] - }, - "VkDisplayModeCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", + "text": " missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + }, { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", + "text": " hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" }, { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", + "text": " callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" }, { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdTraceRaysNV-width-02469", + "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-height-02470", + "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter", - "text": " parameters must be a valid VkDisplayModeParametersKHR structure" + "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", + "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } - ] - }, - "vkGetDisplayPlaneCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" - }, + "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" + } + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure" + "vuid": "VUID-vkCmdTraceRaysNV-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } - ] - }, - "vkGetDisplayPlaneCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter", - "text": " pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02712", + "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" }, { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02713", + "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" } - ] - }, - "VkDisplayPlaneInfo2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", + "text": " raygenShaderBindingTableBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" - } - ] - }, - "VkDisplayPlaneCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR" + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", + "text": " If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkDisplayPowerControlEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ - { - "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", + "text": " If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", + "text": " If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter", - "text": " pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure" - } - ] - }, - "VkDisplayPowerInfoEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, { - "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysNV-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter", - "text": " powerState must be a valid VkDisplayPowerStateEXT value" + "vuid": "VUID-vkCmdTraceRaysNV-commonparent", + "text": " Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkCreateDisplayPlaneSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ + "vkCmdTraceRaysKHR": { + "core": [ { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkDisplaySurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253", - "text": " If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254", - "text": " If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255", - "text": " alphaMode must be 0 or one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR returned by vkGetDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", - "text": " The width and height members of imageExtent must be less than the maxImageDimensions2D member of VkPhysicalDeviceLimits" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter", - "text": " displayMode must be a valid VkDisplayModeKHR handle" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter", - "text": " transform must be a valid VkSurfaceTransformFlagBitsKHR value" + "vuid": "VUID-vkCmdTraceRaysKHR-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter", - "text": " alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value" - } - ] - }, - "vkGetPhysicalDeviceSurfaceSupportKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "vuid": "VUID-vkCmdTraceRaysKHR-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-None-03429", + "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysKHR-maxRecursionDepth-03430", + "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter", - "text": " pSupported must be a valid pointer to a VkBool32 value" + "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-04019", + "text": " If pRayGenShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceWaylandPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04020", + "text": " The offset member of pRayGenShaderBindingTable must be less than the size of the pRayGenShaderBindingTable->buffer" + }, { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-04021", + "text": " pRayGenShaderBindingTable->offset must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-04022", + "text": " pRayGenShaderBindingTable->offset + pRayGenShaderBindingTable->size must be less than or equal to the size of pRayGenShaderBindingTable->buffer" }, { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter", - "text": " display must be a valid pointer to a wl_display value" - } - ] - }, - "vkGetPhysicalDeviceWin32PresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-size-04023", + "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" + }, { - "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-04024", + "text": " If pMissShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - } - ] - }, - "vkGetPhysicalDeviceXcbPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04025", + "text": " The offset member of pMissShaderBindingTable must be less than the size of pMissShaderBindingTable->buffer" + }, { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04026", + "text": " The offset member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-04027", + "text": " pMissShaderBindingTable->offset + pMissShaderBindingTable->size must be less than or equal to the size of pMissShaderBindingTable->buffer" }, { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter", - "text": " connection must be a valid pointer to a xcb_connection_t value" - } - ] - }, - "vkGetPhysicalDeviceXlibPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04028", + "text": " The stride member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" + }, { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029", + "text": " The stride member of pMissShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" }, { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04030", + "text": " If pHitShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": { - "(VK_KHR_surface)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04031", + "text": " The offset member of pHitShaderBindingTable must be less than the size of pHitShaderBindingTable->buffer" + }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04032", + "text": " The offset member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04033", + "text": " pHitShaderBindingTable->offset + pHitShaderBindingTable->size must be less than or equal to the size of pHitShaderBindingTable->buffer" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure" + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04034", + "text": " The stride member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035", + "text": " The stride member of pHitShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" + }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-04036", + "text": " If pCallableShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04037", + "text": " The offset member of pCallableShaderBindingTable must be less than the size of pCallableShaderBindingTable->buffer" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure" - } - ] - }, - "VkPhysicalDeviceSurfaceInfo2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-offset-04038", + "text": " The offset member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" + }, { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR" + "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-04039", + "text": " pCallableShaderBindingTable->offset + pCallableShaderBindingTable->size must be less than or equal to the size of pCallableShaderBindingTable->buffer" }, { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04040", + "text": " The stride member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" }, { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - } - ] - }, - "VkSurfaceCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041", + "text": " The stride member of pCallableShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" + }, { - "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR" + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03508", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkSharedPresentSurfaceCapabilitiesKHR" - } - ] - }, - "VkSharedPresentSurfaceCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03509", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" + }, { - "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilities2EXT": { - "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03510", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" + }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable must contain a valid miss shader" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an any hit shader must not be set to zero" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure" + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute a closest hit shader must not be set to zero" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "VkSurfaceCapabilities2EXT": { - "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ + "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an intersection shader must not be set to zero" + }, { - "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246", - "text": " supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_EXT unless the surface queried is a display surface." + "vuid": "VUID-vkCmdTraceRaysKHR-width-03505", + "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" }, { - "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" + "vuid": "VUID-vkCmdTraceRaysKHR-height-03506", + "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysKHR-depth-03507", + "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" } - ] - }, - "vkGetPhysicalDeviceSurfaceFormatsKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, + "vuid": "VUID-vkCmdTraceRaysKHR-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" - }, + "vuid": "VUID-vkCmdTraceRaysKHR-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + } + ], + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures" + "vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } - ] - }, - "vkGetPhysicalDeviceSurfaceFormats2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ + ], + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, + "vuid": "VUID-vkCmdTraceRaysKHR-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + } + ], + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02712", + "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02713", + "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" } - ] - }, - "VkSurfaceFormat2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceSurfacePresentModesKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter", + "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter", + "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter", - "text": " pPresentModeCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter", + "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter", - "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" + "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter", + "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" }, { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetDeviceGroupPresentCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter", - "text": " pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure" - } - ] - }, - "VkDeviceGroupPresentCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR" + "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdTraceRaysKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" } ] }, - "vkGetDeviceGroupSurfacePresentModesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "VkStridedBufferRegionKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-VkStridedBufferRegionKHR-buffer-03515", + "text": " If buffer is not VK_NULL_HANDLE, size plus offset must be less than or equal to the size of buffer" }, { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter", - "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" + "vuid": "VUID-VkStridedBufferRegionKHR-buffer-03516", + "text": " If buffer is not VK_NULL_HANDLE, stride must be less than the size of buffer" }, { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent", - "text": " Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-VkStridedBufferRegionKHR-buffer-parameter", + "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" } ] }, - "vkGetPhysicalDevicePresentRectanglesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vkCmdTraceRaysIndirectKHR": { + "core": [ { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02690", + "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" }, { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691", + "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" }, { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter", - "text": " pRectCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697", + "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter", - "text": " If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698", + "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" }, { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetRefreshCycleDurationGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ - { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699", + "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700", + "text": " A valid pipeline must be bound to the pipeline bind point used by this command" }, { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter", - "text": " pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" }, { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPastPresentationTimingGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02859", + "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" }, { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02702", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" }, { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter", - "text": " pPresentationTimingCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02703", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" }, { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter", - "text": " If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02704", + "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" }, { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetSwapchainStatusKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02705", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02706", + "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" }, { - "vuid": "VUID-vkGetSwapchainStatusKHR-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkCreateSwapchainKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-04115", + "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." + }, { - "vuid": "VUID-vkCreateSwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429", + "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" }, { - "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxRecursionDepth-03430", + "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline" }, { - "vuid": "VUID-vkCreateSwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-04019", + "text": " If pRayGenShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter", - "text": " pSwapchain must be a valid pointer to a VkSwapchainKHR handle" - } - ] - }, - "VkSwapchainCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04020", + "text": " The offset member of pRayGenShaderBindingTable must be less than the size of the pRayGenShaderBindingTable->buffer" + }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270", - "text": " surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-04021", + "text": " pRayGenShaderBindingTable->offset must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01271", - "text": " minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-04022", + "text": " pRayGenShaderBindingTable->offset + pRayGenShaderBindingTable->size must be less than or equal to the size of pRayGenShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272", - "text": " minImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023", + "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273", - "text": " imageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-04024", + "text": " If pMissShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01274", - "text": " imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04025", + "text": " The offset member of pMissShaderBindingTable must be less than the size of pMissShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689", - "text": " imageExtent members width and height must both be non-zero" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04026", + "text": " The offset member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275", - "text": " imageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-04027", + "text": " pMissShaderBindingTable->offset + pMissShaderBindingTable->size must be less than or equal to the size of pMissShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04028", + "text": " The stride member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029", + "text": " The stride member of pMissShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279", - "text": " preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04030", + "text": " If pHitShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280", - "text": " compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04031", + "text": " The offset member of pHitShaderBindingTable must be less than the size of pHitShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281", - "text": " presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04032", + "text": " The offset member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04033", + "text": " pHitShaderBindingTable->offset + pHitShaderBindingTable->size must be less than or equal to the size of pHitShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778", - "text": " The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04034", + "text": " The stride member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035", + "text": " The stride member of pHitShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext", - "text": " 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 VkDeviceGroupSwapchainCreateInfoKHR, VkImageFormatListCreateInfoKHR, or VkSwapchainCounterCreateInfoEXT" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-04036", + "text": " If pCallableShaderBindingTable->buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04037", + "text": " The offset member of pCallableShaderBindingTable must be less than the size of pCallableShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-04038", + "text": " The offset member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupBaseAlignment" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-04039", + "text": " pCallableShaderBindingTable->offset + pCallableShaderBindingTable->size must be less than or equal to the size of pCallableShaderBindingTable->buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter", - "text": " imageFormat must be a valid VkFormat value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04040", + "text": " The stride member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPropertiesKHR::shaderGroupHandleSize" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter", - "text": " imageColorSpace must be a valid VkColorSpaceKHR value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041", + "text": " The stride member of pCallableShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPropertiesKHR::maxShaderGroupStride" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter", - "text": " imageUsage must be a valid combination of VkImageUsageFlagBits values" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03508", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask", - "text": " imageUsage must not be 0" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03509", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter", - "text": " imageSharingMode must be a valid VkSharingMode value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03510", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the buffer member of pHitShaderBindingTable must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter", - "text": " preTransform must be a valid VkSurfaceTransformFlagBitsKHR value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable must contain a valid miss shader" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter", - "text": " compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an any hit shader must not be set to zero" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter", - "text": " presentMode must be a valid VkPresentModeKHR value" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute a closest hit shader must not be set to zero" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514", + "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an intersection shader must not be set to zero" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent", - "text": " If oldSwapchain is a valid handle, it must have been created, allocated, or retrieved from surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-buffer-02708", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent", - "text": " Both of oldSwapchain, and surface that are valid handles must have been created, allocated, or retrieved from the same VkInstance" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-buffer-02709", + "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" + }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383", - "text": " minImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-02710", + "text": " offset must be a multiple of 4" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427", - "text": " If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-offset-03517", + "text": " (offset + sizeof(VkTraceRaysIndirectCommandKHR)) must be less than or equal to the size of buffer" }, { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384", - "text": " If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingIndirectTraceRays-03518", + "text": " the VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingIndirectTraceRays feature must be enabled" } ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01276", - "text": " imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692", + "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" } ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393", - "text": " If imageSharingMode 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" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02693", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" } ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ + "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695", + "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" } ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "(VK_NV_corner_sampled_image)": [ { - "vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-02696", + "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" } ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)": [ + "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168", - "text": " If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must contain an instance of VkImageFormatListCreateInfoKHR with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", + "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02711", + "text": " commandBuffer must not be a protected command buffer" } - ] - }, - "VkDeviceGroupSwapchainCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter", - "text": " modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter", + "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter", + "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter", + "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter", + "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedBufferRegionKHR structure" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-buffer-parameter", + "text": " buffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask", - "text": " modes must not be 0" + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commonparent", + "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkSwapchainCounterCreateInfoEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ + "VkTraceRaysIndirectCommandKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244", - "text": " The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT." + "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03519", + "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" }, { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT" + "vuid": "VUID-VkTraceRaysIndirectCommandKHR-height-03520", + "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" }, { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter", - "text": " surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values" + "vuid": "VUID-VkTraceRaysIndirectCommandKHR-depth-03521", + "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" } ] }, - "vkGetSwapchainCounterEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ + "vkCmdBuildAccelerationStructureNV": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245", - "text": " One or more present commands on swapchain must have been processed by the presentation engine." + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", + "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" }, { - "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", + "text": " dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs" }, { - "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", + "text": " If update is VK_TRUE, src must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter", - "text": " counter must be a valid VkSurfaceCounterFlagBitsEXT value" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", + "text": " If update is VK_TRUE, src must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags" }, { - "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter", - "text": " pCounterValue must be a valid pointer to a uint64_t value" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", + "text": " If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" }, { - "vuid": "VUID-vkGetSwapchainCounterEXT-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkDestroySwapchainKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", + "text": " If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" + }, { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282", - "text": " All uses of presentable images acquired from swapchain must have completed execution" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522", + "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" }, { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283", - "text": " If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523", + "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" }, { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284", - "text": " If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524", + "text": " If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances" }, { - "vuid": "VUID-vkDestroySwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525", + "text": " If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances" }, { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526", + "text": " If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing" }, { - "vuid": "VUID-vkDestroySwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkDestroySwapchainKHR-commonparent", - "text": " Both of device, and swapchain that are valid handles must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkCreateSharedSwapchainsKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure" + }, { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", + "text": " If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", + "text": " dst must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", + "text": " If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", + "text": " scratch must be a valid VkBuffer handle" }, { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass", + "text": " This command must only be called outside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", + "text": " Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkGetSwapchainImagesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vkCmdBuildAccelerationStructureKHR": { + "core": [ { - "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pOffsetInfos-03402", + "text": " Each element of ppOffsetInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildOffsetInfoKHR structures" }, { - "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03403", + "text": " Each pInfos[i].srcAccelerationStructure must not refer to the same acceleration structure as any pInfos[i].dstAccelerationStructure that is provided to the same build command unless it is identical for an update" }, { - "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter", - "text": " pSwapchainImageCount must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03404", + "text": " For each pInfos[i], dstAccelerationStructure must have been created with compatible VkAccelerationStructureCreateInfoKHR where VkAccelerationStructureCreateInfoKHR::type and VkAccelerationStructureCreateInfoKHR::flags are identical to VkAccelerationStructureBuildGeometryInfoKHR::type and VkAccelerationStructureBuildGeometryInfoKHR::flags respectively, VkAccelerationStructureBuildGeometryInfoKHR::geometryCount for dstAccelerationStructure are greater than or equal to the build size, and each geometry in VkAccelerationStructureBuildGeometryInfoKHR::ppGeometries for dstAccelerationStructure has greater than or equal to the number of vertices, indices, and AABBs, VkAccelerationStructureGeometryTrianglesDataKHR::transformData is both 0 or both non-zero, and all other parameters are the same" }, { - "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter", - "text": " If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03405", + "text": " For each pInfos[i], if update is VK_TRUE, then objects that were previously active for that acceleration structure must not be made inactive as per Inactive Primitives and Instances" }, { - "vuid": "VUID-vkGetSwapchainImagesKHR-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkAcquireNextImageKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03406", + "text": " For each pInfos[i], if update is VK_TRUE, then objects that were previously inactive for that acceleration structure must not be made active as per Inactive Primitives and Instances" + }, { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285", - "text": " swapchain must not be in the retired state" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-None-03407", + "text": " Any acceleration structure instance in any top level build in this command must not reference any bottom level acceleration structure built by this command" }, { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03408", + "text": " There must not be any memory aliasing between the scratch memories that are provided in all the pInfos[i].scratchData memories for the acceleration structure builds" }, { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-None-03409", + "text": " There must not be any memory aliasing between memory bound to any top level, bottom level, or instance acceleration structure accessed by this command" }, { - "vuid": "VUID-vkAcquireNextImageKHR-fence-01287", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-update-03527", + "text": " If update is VK_FALSE, all addresses between pInfos[i].scratchData and pInfos[i].scratchData + N - 1 must be in the buffer device address range of the same buffer, where N is given by the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with VkAccelerationStructureMemoryRequirementsInfoKHR::accelerationStructure set to pInfos[i].dstAccelerationStructure and VkAccelerationStructureMemoryRequirementsInfoKHR::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR" }, { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-update-03528", + "text": " If update is VK_TRUE, all addresses between pInfos[i].scratchData and pInfos[i].scratchData + N - 1 must be in the buffer device address range of the same buffer, where N is given by the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsKHR with VkAccelerationStructureMemoryRequirementsInfoKHR::accelerationStructure set to pInfos[i].dstAccelerationStructure and VkAccelerationStructureMemoryRequirementsInfoKHR::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR" }, { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01802", - "text": " If the number of currently acquired images is greater than the difference between the number of images in swapchain and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, timeout must not be UINT64_MAX" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-03529", + "text": " The buffer from which the buffer device address pInfos[i].scratchData is queried must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR usage flag" }, { - "vuid": "VUID-vkAcquireNextImageKHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-None-04046", + "text": " All VkDeviceOrHostAddressKHR or VkDeviceOrHostAddressConstKHR referenced by this command must contain valid device addresses for a buffer bound to device memory. If the buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-None-03531", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to device memory" + } + ], + "(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pNext-03532", + "text": " The VkDeferredOperationInfoKHR structure must not be included in the pNext chain of any of the provided VkAccelerationStructureBuildGeometryInfoKHR structures" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-pInfos-parameter", + "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" }, { - "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-ppOffsetInfos-parameter", + "text": " ppOffsetInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildOffsetInfoKHR structures" }, { - "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent", - "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkAcquireNextImageKHR-fence-parent", - "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkAcquireNextImageKHR-commonparent", - "text": " Both of device, and swapchain that are valid handles must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-vkCmdBuildAccelerationStructureKHR-infoCount-arraylength", + "text": " infoCount must be greater than 0" } ] }, - "vkAcquireNextImage2KHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vkCmdBuildAccelerationStructureIndirectKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkAcquireNextImage2KHR-swapchain-01803", - "text": " If the number of currently acquired images is greater than the difference between the number of images in the swapchain member of pAcquireInfo and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX" + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-None-04047", + "text": " All VkDeviceOrHostAddressKHR or VkDeviceOrHostAddressConstKHR referenced by this command must contain valid device addresses for a buffer bound to device memory. If the buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-None-03534", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to device memory" }, { - "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter", - "text": " pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure" + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-rayTracingIndirectAccelerationStructureBuild-03535", + "text": " The VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingIndirectAccelerationStructureBuild feature must be enabled" }, { - "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-indirectBuffer-parameter", + "text": " indirectBuffer must be a valid VkBuffer handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-commonparent", + "text": " Both of commandBuffer, and indirectBuffer must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)+(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructureIndirectKHR-pNext-03536", + "text": " The VkDeferredOperationInfoKHR structure must not be included in the pNext chain of any of the provided VkAccelerationStructureBuildGeometryInfoKHR structures" } ] }, - "VkAcquireNextImageInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "VkAccelerationStructureBuildGeometryInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675", - "text": " swapchain must not be in the retired state" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-update-03537", + "text": " If update is VK_TRUE, srcAccelerationStructure must not be VK_NULL_HANDLE" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-update-03538", + "text": " If update is VK_TRUE, srcAccelerationStructure must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-scratchData-03539", + "text": " scratchData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR usage flag" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-update-03540", + "text": " If update is VK_TRUE, the srcAccelerationStructure and dstAccelerationStructure objects must either be the same object or not have any memory aliasing" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290", - "text": " deviceMask must be a valid device mask" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDeferredOperationInfoKHR" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291", - "text": " deviceMask must not be zero" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter", + "text": " type must be a valid VkAccelerationStructureTypeKHR value" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter", + "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-srcAccelerationStructure-parameter", + "text": " If srcAccelerationStructure is not VK_NULL_HANDLE, srcAccelerationStructure must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-parameter", + "text": " dstAccelerationStructure must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-scratchData-parameter", + "text": " scratchData must be a valid VkDeviceOrHostAddressKHR union" }, { - "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent", - "text": " Each of fence, semaphore, and swapchain that are valid handles must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent", + "text": " Both of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "vkQueuePresentKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "VkAccelerationStructureGeometryKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292", - "text": " Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03541", + "text": " If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure" }, { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294", - "text": " When a semaphore unsignal operation defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, no other queue must be waiting on the same semaphore." + "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03542", + "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure" }, { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01295", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution." + "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03543", + "text": " If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure" }, { - "vuid": "VUID-vkQueuePresentKHR-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR" }, { - "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter", - "text": " pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ + "vuid": "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "text": " pNext must be NULL" + }, { - "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293", - "text": " If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter", + "text": " geometryType must be a valid VkGeometryTypeKHR value" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", + "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter", + "text": " If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter", + "text": " If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter", + "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" } ] }, - "VkPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ + "VkAccelerationStructureGeometryTrianglesDataKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01296", - "text": " Each 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" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR" + }, { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430", - "text": " Each 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" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext", + "text": " pNext must be NULL" + }, { - "vuid": "VUID-VkPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR" + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter", + "text": " vertexFormat must be a valid VkFormat value" }, { - "vuid": "VUID-VkPresentInfoKHR-pNext-pNext", - "text": " 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 VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkPresentRegionsKHR, or VkPresentTimesInfoGOOGLE" + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexData-parameter", + "text": " vertexData must be a valid VkDeviceOrHostAddressConstKHR union" }, { - "vuid": "VUID-VkPresentInfoKHR-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter", + "text": " indexType must be a valid VkIndexType value" }, { - "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexData-parameter", + "text": " If indexData is not 0, indexData must be a valid VkDeviceOrHostAddressConstKHR union" }, { - "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" + "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-transformData-parameter", + "text": " If transformData is not 0, transformData must be a valid VkDeviceOrHostAddressConstKHR union" + } + ] + }, + "VkAccelerationStructureGeometryAabbsDataKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-data-03544", + "text": " data must be aligned to 8 bytes" }, { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter", - "text": " pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values" + "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545", + "text": " stride must be a multiple of 8" }, { - "vuid": "VUID-VkPresentInfoKHR-pResults-parameter", - "text": " If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values" + "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR" }, { - "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-VkPresentInfoKHR-commonparent", - "text": " Both of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-data-parameter", + "text": " data must be a valid VkDeviceOrHostAddressConstKHR union" } ] }, - "VkPresentRegionsKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ + "VkAabbPositionsKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is in the pNext chain of this VkPresentRegionsKHR structure" - }, - { - "vuid": "VUID-VkPresentRegionsKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR" + "vuid": "VUID-VkAabbPositionsKHR-minX-03546", + "text": " minX must be less than or equal to maxX" }, { - "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter", - "text": " If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures" + "vuid": "VUID-VkAabbPositionsKHR-minY-03547", + "text": " minY must be less than or equal to maxY" }, { - "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "vuid": "VUID-VkAabbPositionsKHR-minZ-03548", + "text": " minZ must be less than or equal to maxZ" } ] }, - "VkPresentRegionKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ + "VkAccelerationStructureGeometryInstancesDataKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter", - "text": " If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures" + "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-data-03549", + "text": " data must be aligned to 16 bytes" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-arrayOfPointers-03550", + "text": " If arrayOfPointers is true, each pointer must be aligned to 16 bytes" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-data-parameter", + "text": " data must be a valid VkDeviceOrHostAddressConstKHR union" } ] }, - "VkRectLayerKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ - { - "vuid": "VUID-VkRectLayerKHR-offset-01261", - "text": " The sum of offset and extent must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR." - }, + "VkAccelerationStructureInstanceKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkRectLayerKHR-layer-01262", - "text": " layer must be less than imageArrayLayers member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR." + "vuid": "VUID-VkAccelerationStructureInstanceKHR-flags-parameter", + "text": " flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values" } ] }, - "VkDisplayPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ + "VkAccelerationStructureBuildOffsetInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257", - "text": " srcRect must specify a rectangular region that is a subset of the image being presented" + "vuid": "VUID-VkAccelerationStructureBuildOffsetInfoKHR-primitiveOffset-03551", + "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType" }, { - "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258", - "text": " dstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses" + "vuid": "VUID-VkAccelerationStructureBuildOffsetInfoKHR-primitiveOffset-03552", + "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry doesn’t use indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be a multiple of the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat" }, { - "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259", - "text": " If the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets then persistent must be VK_FALSE" + "vuid": "VUID-VkAccelerationStructureBuildOffsetInfoKHR-transformOffset-03553", + "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16" }, { - "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR" + "vuid": "VUID-VkAccelerationStructureBuildOffsetInfoKHR-primitiveOffset-03554", + "text": " For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8" + }, + { + "vuid": "VUID-VkAccelerationStructureBuildOffsetInfoKHR-primitiveOffset-03555", + "text": " For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16 // TODO - Almost certainly should be more here" } ] }, - "VkDeviceGroupPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ + "vkCmdWriteAccelerationStructuresPropertiesKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297", - "text": " swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493", + "text": " queryPool must have been created with a queryType matching queryType" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494", + "text": " The queries identified by queryPool and firstQuery must be unavailable" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask." + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", + "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter", + "text": " queryType must be a valid VkQueryType value" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302", - "text": " The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter", + "text": " queryPool must be a valid VkQueryPool handle" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303", - "text": " mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter", - "text": " If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter", - "text": " mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", + "text": " accelerationStructureCount must be greater than 0" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent", + "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" + } + ], + "core": [ + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", + "text": " All acceleration structures in accelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432", + "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" } ] }, - "VkPresentTimesInfoGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ + "vkCmdCopyAccelerationStructureNV": { + "core": [ { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is in the pNext chain of this VkPresentTimesInfoGOOGLE structure." + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" }, { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411", + "text": " src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter", - "text": " If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", + "text": " dst must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - } - ] - }, - "vkSetHdrMetadataEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", + "text": " src must be a valid VkAccelerationStructureKHR handle" + }, { - "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", + "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" }, { - "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter", - "text": " pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass", + "text": " This command must only be called outside of a render pass instance" }, { - "vuid": "VUID-vkSetHdrMetadataEXT-commonparent", - "text": " Both of device, and the elements of pSwapchains must have been created, allocated, or retrieved from the same VkInstance" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", + "text": " Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice" } ] }, - "VkHdrMetadataEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ + "vkCmdCopyAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-VkHdrMetadataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT" + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-None-03556", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to device memory" }, { - "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext", - "text": " pNext must be NULL" + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)+(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pNext-03557", + "text": " The VkDeferredOperationInfoKHR structure must not be included in the pNext chain of the VkCopyAccelerationStructureInfoKHR structure" } ] }, - "vkCmdTraceRaysNV": { - "(VK_NV_ray_tracing)": [ + "VkCopyAccelerationStructureInfoKHR": { + "core": [ { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", - "text": " raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-03410", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", - "text": " raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" - }, + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-03411", + "text": " src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", - "text": " missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", - "text": " missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDeferredOperationInfoKHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", - "text": " hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", - "text": " hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-parameter", + "text": " src must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", - "text": " callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter", + "text": " dst must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", - "text": " callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter", + "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" }, { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", - "text": " missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" - }, + "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-commonparent", + "text": " Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice" + } + ] + }, + "vkCmdCopyAccelerationStructureToMemoryKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", - "text": " hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-04048", + "text": " All VkDeviceOrHostAddressConstKHR referenced by this command must contain valid device addresses for a buffer bound to device memory. If the buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", - "text": " callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to device memory" }, { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", - "text": " missShaderBindingStride must be a less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", - "text": " hitShaderBindingStride must be a less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" }, { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", - "text": " callableShaderBindingStride must be a less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdTraceRaysNV-width-02469", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkCmdTraceRaysNV-height-02470", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pNext-03560", + "text": " The VkDeferredOperationInfoKHR structure must not be included in the pNext chain of the VkCopyAccelerationStructureToMemoryInfoKHR structure" + } + ], + "core": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-mode-03412", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR" + } + ] + }, + "VkCopyAccelerationStructureToMemoryInfoKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561", + "text": " The memory pointed to by dst must be at least as large as the serialization size of src, as reported by VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02472", - "text": " For each set n that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDeferredOperationInfoKHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02473", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the bound VkPipeline object, specified via vkCmdBindPipeline" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02474", - "text": " A valid ray tracing pipeline must be bound to the current command buffer with VK_PIPELINE_BIND_POINT_RAY_TRACING_NV" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter", + "text": " src must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02475", - "text": " For each push constant that is statically used by the VkPipeline bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, a push constant value must have been set for VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, with a VkPipelineLayout that is compatible for push constants with the one used to create the current VkPipeline, as described in Pipeline Layout Compatibility" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-parameter", + "text": " dst must be a valid VkDeviceOrHostAddressKHR union" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02476", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV uses unnormalized coordinates, it must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter", + "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" + } + ], + "core": [ + { + "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR" + } + ] + }, + "vkCmdCopyMemoryToAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-None-04049", + "text": " All VkDeviceOrHostAddressKHR referenced by this command must contain valid device addresses for a buffer bound to device memory. If the buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02477", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-None-03563", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to device memory" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02478", - "text": " If any VkSampler object that is accessed from a shader by the VkPipeline bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV uses unnormalized coordinates, it must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02479", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02480", - "text": " If the robust buffer access feature is not enabled, and any shader stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording", + "text": " commandBuffer must be in the recording state" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02481", - "text": " If a VkImageView is sampled with VK_FILTER_LINEAR as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass", + "text": " This command must only be called outside of a render pass instance" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_deferred_host_operations)": [ + { + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pNext-03564", + "text": " The VkDeferredOperationInfoKHR structure must not be included in the pNext chain of the VkCopyMemoryToAccelerationStructureInfoKHR structure" + } + ], + "core": [ + { + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-mode-03413", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", - "text": " raygenShaderBindingTableBuffer must be a valid VkBuffer handle" + "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03414", + "text": " The data in pInfo->src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR" + } + ] + }, + "VkCopyMemoryToAccelerationStructureInfoKHR": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413", + "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", - "text": " If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414", + "text": " The data in pInfo->src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", - "text": " If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext", + "text": " pNext must be NULL or a pointer to a valid instance of VkDeferredOperationInfoKHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", - "text": " If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-parameter", + "text": " src must be a valid VkDeviceOrHostAddressConstKHR union" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter", + "text": " dst must be a valid VkAccelerationStructureKHR handle" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commonparent", - "text": " Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter", + "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" } - ], - "(VK_NV_ray_tracing)+(VK_IMG_filter_cubic)": [ + ] + }, + "vkGetDeviceAccelerationStructureCompatibilityKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdTraceRaysNV-None-02482", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG" + "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracing-03565", + "text": " The rayTracing or rayQuery feature must be enabled" }, { - "vuid": "VUID-vkCmdTraceRaysNV-None-02483", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_IMG as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" + "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-version-parameter", + "text": " version must be a valid pointer to a valid VkAccelerationStructureVersionKHR structure" } - ], - "(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [ + ] + }, + "VkAccelerationStructureVersionKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02484", - "text": " If commandBuffer is an unprotected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer" + "vuid": "VUID-VkAccelerationStructureVersionKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02485", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer" + "vuid": "VUID-VkAccelerationStructureVersionKHR-pNext-pNext", + "text": " pNext must be NULL" }, { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02486", - "text": " If commandBuffer is a protected command buffer, and any pipeline stage other than the ray tracing pipeline stage in the VkPipeline object bound to VK_PIPELINE_BIND_POINT_RAY_TRACING_NV reads from any image or buffer, the image or buffer must not be a protected image or protected buffer" - } - ], - "(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-flags-02487", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" + "vuid": "VUID-VkAccelerationStructureVersionKHR-versionData-parameter", + "text": " versionData must be a valid pointer to an array of 2*VK_UUID_SIZE uint8_t values" } ] }, - "vkCmdBuildAccelerationStructureNV": { - "(VK_NV_ray_tracing)": [ + "vkBuildAccelerationStructureKHR": { + "core": [ { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pOffsetInfos-03402", + "text": " Each element of ppOffsetInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildOffsetInfoKHR structures" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", - "text": " dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV:::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs." + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-03403", + "text": " Each pInfos[i].srcAccelerationStructure must not refer to the same acceleration structure as any pInfos[i].dstAccelerationStructure that is provided to the same build command unless it is identical for an update" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", - "text": " If update is VK_TRUE, src must not be VK_NULL_HANDLE" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-03404", + "text": " For each pInfos[i], dstAccelerationStructure must have been created with compatible VkAccelerationStructureCreateInfoKHR where VkAccelerationStructureCreateInfoKHR::type and VkAccelerationStructureCreateInfoKHR::flags are identical to VkAccelerationStructureBuildGeometryInfoKHR::type and VkAccelerationStructureBuildGeometryInfoKHR::flags respectively, VkAccelerationStructureBuildGeometryInfoKHR::geometryCount for dstAccelerationStructure are greater than or equal to the build size, and each geometry in VkAccelerationStructureBuildGeometryInfoKHR::ppGeometries for dstAccelerationStructure has greater than or equal to the number of vertices, indices, and AABBs, VkAccelerationStructureGeometryTrianglesDataKHR::transformData is both 0 or both non-zero, and all other parameters are the same" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", - "text": " If update is VK_TRUE, src must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-03405", + "text": " For each pInfos[i], if update is VK_TRUE, then objects that were previously active for that acceleration structure must not be made inactive as per Inactive Primitives and Instances" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", - "text": " If update is VK_FALSE, The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-03406", + "text": " For each pInfos[i], if update is VK_TRUE, then objects that were previously inactive for that acceleration structure must not be made active as per Inactive Primitives and Instances" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", - "text": " If update is VK_TRUE, The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" + "vuid": "VUID-vkBuildAccelerationStructureKHR-None-03407", + "text": " Any acceleration structure instance in any top level build in this command must not reference any bottom level acceleration structure built by this command" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-03408", + "text": " There must not be any memory aliasing between the scratch memories that are provided in all the pInfos[i].scratchData memories for the acceleration structure builds" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure" + "vuid": "VUID-vkBuildAccelerationStructureKHR-None-03409", + "text": " There must not be any memory aliasing between memory bound to any top level, bottom level, or instance acceleration structure accessed by this command" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle" + "vuid": "VUID-vkBuildAccelerationStructureKHR-None-03437", + "text": " All VkDeviceOrHostAddressKHR or VkDeviceOrHostAddressConstKHR referenced by this command must contain valid host addresses" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkBuildAccelerationStructureKHR-None-03438", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to host-visible memory" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", - "text": " If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkBuildAccelerationStructureKHR-rayTracingHostAccelerationStructureCommands-03439", + "text": " The VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingHostAccelerationStructureCommands feature must be enabled" + } + ], + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkBuildAccelerationStructureKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", - "text": " scratch must be a valid VkBuffer handle" + "vuid": "VUID-vkBuildAccelerationStructureKHR-pInfos-parameter", + "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkBuildAccelerationStructureKHR-ppOffsetInfos-parameter", + "text": " ppOffsetInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildOffsetInfoKHR structures" + }, + { + "vuid": "VUID-vkBuildAccelerationStructureKHR-infoCount-arraylength", + "text": " infoCount must be greater than 0" + } + ] + }, + "vkCopyAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCopyAccelerationStructureKHR-None-03440", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to host-visible memory" + }, + { + "vuid": "VUID-vkCopyAccelerationStructureKHR-rayTracingHostAccelerationStructureCommands-03441", + "text": " the VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingHostAccelerationStructureCommands feature must be enabled" + }, + { + "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" + } + ] + }, + "vkCopyMemoryToAccelerationStructureKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-None-03442", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to host-visible memory" + }, + { + "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-None-03443", + "text": " All VkDeviceOrHostAddressConstKHR referenced by this command must contain valid host pointers" + }, + { + "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-rayTracingHostAccelerationStructureCommands-03444", + "text": " the VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingHostAccelerationStructureCommands feature must be enabled" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" } ] }, - "vkCmdWriteAccelerationStructuresPropertiesNV": { - "(VK_NV_ray_tracing)": [ + "vkCopyAccelerationStructureToMemoryKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-02242", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-None-03445", + "text": " All VkAccelerationStructureKHR objects referenced by this command must be bound to host-visible memory" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-02493", - "text": " queryPool must have been created with a queryType matching queryType" + "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-None-03446", + "text": " All VkDeviceOrHostAddressKHR referenced by this command must contain valid host pointers" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-02494", - "text": " The queries identified by queryPool and firstQuery must be unavailable" + "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-rayTracingHostAccelerationStructureCommands-03447", + "text": " the VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingHostAccelerationStructureCommands feature must be enabled" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructures-02495", - "text": " All acceleration structures in accelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV" + "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, + "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameter", + "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" + } + ] + }, + "vkWriteAccelerationStructuresPropertiesKHR": { + "(VK_NV_ray_tracing,VK_KHR_ray_tracing)": [ { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448", + "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449", + "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then data must point to a VkDeviceSize" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450", + "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451", + "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then data must point to a VkDeviceSize" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452", + "text": " dataSize must be greater than or equal to accelerationStructureCount*stride" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-03453", + "text": " The acceleration structures referenced by pAccelerationStructures must be bound to host-visible memory" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdCopyAccelerationStructureNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-02496", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter", + "text": " device must be a valid VkDevice handle" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-02497", - "text": " src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV if mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", + "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter", + "text": " queryType must be a valid VkQueryType value" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter", + "text": " pData must be a valid pointer to an array of dataSize bytes" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", - "text": " src must be a valid VkAccelerationStructureNV handle" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", + "text": " accelerationStructureCount must be greater than 0" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeNV value" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength", + "text": " dataSize must be greater than 0" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent", + "text": " Each element of pAccelerationStructures must have been created, allocated, or retrieved from device" + } + ], + "core": [ + { + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", + "text": " All acceleration structures in accelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432", + "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice" + "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-rayTracingHostAccelerationStructureCommands-03454", + "text": " the VkPhysicalDeviceRayTracingFeaturesKHR::rayTracingHostAccelerationStructureCommands feature must be enabled" } ] }, @@ -22108,7 +28872,7 @@ }, { "vuid": "VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" } ] }, @@ -22116,7 +28880,7 @@ "core": [ { "vuid": "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter", @@ -22124,7 +28888,7 @@ }, { "vuid": "VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" } ] }, @@ -22140,7 +28904,7 @@ }, { "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" } ] }, @@ -22148,7 +28912,7 @@ "core": [ { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter", @@ -22160,7 +28924,7 @@ }, { "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" + "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" } ] }, @@ -22168,11 +28932,11 @@ "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure" + "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure" } ] }, @@ -22180,11 +28944,11 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure" + "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure" } ] }, @@ -22196,15 +28960,31 @@ } ] }, - "VkPhysicalDeviceVariablePointerFeatures": { + "VkPhysicalDeviceVulkan11Features": { + "(VK_VERSION_1_2)": [ + { + "vuid": "VUID-VkPhysicalDeviceVulkan11Features-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES" + } + ] + }, + "VkPhysicalDeviceVulkan12Features": { + "(VK_VERSION_1_2)": [ + { + "vuid": "VUID-VkPhysicalDeviceVulkan12Features-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES" + } + ] + }, + "VkPhysicalDeviceVariablePointersFeatures": { "(VK_VERSION_1_1,VK_KHR_variable_pointers)": [ { - "vuid": "VUID-VkPhysicalDeviceVariablePointerFeatures-variablePointers-01431", - "text": " If variablePointers is enabled then variablePointersStorageBuffer must also be enabled." + "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431", + "text": " If variablePointers is enabled then variablePointersStorageBuffer must also be enabled" }, { - "vuid": "VUID-VkPhysicalDeviceVariablePointerFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES" + "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES" } ] }, @@ -22212,11 +28992,11 @@ "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580", - "text": " If multiviewGeometryShader is enabled then multiview must also be enabled." + "text": " If multiviewGeometryShader is enabled then multiview must also be enabled" }, { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581", - "text": " If multiviewTessellationShader is enabled then multiview must also be enabled." + "text": " If multiviewTessellationShader is enabled then multiview must also be enabled" }, { "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-sType-sType", @@ -22224,19 +29004,27 @@ } ] }, - "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR": { - "(VK_KHR_shader_atomic_int64)": [ + "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT": { + "(VK_EXT_shader_atomic_float)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceShaderAtomicInt64Features": { + "(VK_VERSION_1_2,VK_KHR_shader_atomic_int64)": [ { - "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64FeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR" + "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES" } ] }, - "VkPhysicalDevice8BitStorageFeaturesKHR": { - "(VK_KHR_8bit_storage)": [ + "VkPhysicalDevice8BitStorageFeatures": { + "(VK_VERSION_1_2,VK_KHR_8bit_storage)": [ { - "vuid": "VUID-VkPhysicalDevice8BitStorageFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR" + "vuid": "VUID-VkPhysicalDevice8BitStorageFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES" } ] }, @@ -22248,11 +29036,19 @@ } ] }, - "VkPhysicalDeviceFloat16Int8FeaturesKHR": { - "(VK_KHR_shader_float16_int8)": [ + "VkPhysicalDeviceShaderFloat16Int8Features": { + "(VK_VERSION_1_2,VK_KHR_shader_float16_int8)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES" + } + ] + }, + "VkPhysicalDeviceShaderClockFeaturesKHR": { + "(VK_KHR_shader_clock)": [ { - "vuid": "VUID-VkPhysicalDeviceFloat16Int8FeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR" + "vuid": "VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR" } ] }, @@ -22288,11 +29084,11 @@ } ] }, - "VkPhysicalDeviceShaderDrawParameterFeatures": { + "VkPhysicalDeviceShaderDrawParametersFeatures": { "(VK_VERSION_1_1)": [ { - "vuid": "VUID-VkPhysicalDeviceShaderDrawParameterFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES" + "vuid": "VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES" } ] }, @@ -22304,11 +29100,11 @@ } ] }, - "VkPhysicalDeviceDescriptorIndexingFeaturesEXT": { - "(VK_EXT_descriptor_indexing)": [ + "VkPhysicalDeviceDescriptorIndexingFeatures": { + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ { - "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT" + "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES" } ] }, @@ -22336,11 +29132,11 @@ } ] }, - "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR": { - "(VK_KHR_vulkan_memory_model)": [ + "VkPhysicalDeviceVulkanMemoryModelFeatures": { + "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [ { - "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR" + "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES" } ] }, @@ -22416,11 +29212,27 @@ } ] }, - "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT": { - "(VK_EXT_scalar_block_layout)": [ + "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT": { + "(VK_EXT_fragment_density_map2)": [ + { + "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceScalarBlockLayoutFeatures": { + "(VK_VERSION_1_2,VK_EXT_scalar_block_layout)": [ + { + "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES" + } + ] + }, + "VkPhysicalDeviceUniformBufferStandardLayoutFeatures": { + "(VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout)": [ { - "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT" + "vuid": "VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES" } ] }, @@ -22440,11 +29252,19 @@ } ] }, - "VkPhysicalDeviceBufferAddressFeaturesEXT": { + "VkPhysicalDeviceBufferDeviceAddressFeatures": { + "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ + { + "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES" + } + ] + }, + "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT": { "(VK_EXT_buffer_device_address)": [ { - "vuid": "VUID-VkPhysicalDeviceBufferAddressFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT" + "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT" } ] }, @@ -22456,6 +29276,22 @@ } ] }, + "VkPhysicalDeviceImagelessFramebufferFeatures": { + "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ + { + "vuid": "VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES" + } + ] + }, + "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT": { + "(VK_EXT_fragment_shader_interlock)": [ + { + "vuid": "VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT" + } + ] + }, "VkPhysicalDeviceCooperativeMatrixFeaturesNV": { "(VK_NV_cooperative_matrix)": [ { @@ -22472,6 +29308,222 @@ } ] }, + "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": { + "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES" + } + ] + }, + "VkPhysicalDeviceHostQueryResetFeatures": { + "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [ + { + "vuid": "VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES" + } + ] + }, + "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL": { + "(VK_INTEL_shader_integer_functions2)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL" + } + ] + }, + "VkPhysicalDeviceCoverageReductionModeFeaturesNV": { + "(VK_NV_coverage_reduction_mode)": [ + { + "vuid": "VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV" + } + ] + }, + "VkPhysicalDeviceTimelineSemaphoreFeatures": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES" + } + ] + }, + "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": { + "(VK_EXT_index_type_uint8)": [ + { + "vuid": "VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV": { + "(VK_NV_shader_sm_builtins)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV" + } + ] + }, + "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures": { + "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES" + } + ] + }, + "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR": { + "(VK_KHR_pipeline_executable_properties)": [ + { + "vuid": "VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR" + } + ] + }, + "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT": { + "(VK_EXT_shader_demote_to_helper_invocation)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT": { + "(VK_EXT_texel_buffer_alignment)": [ + { + "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT": { + "(VK_EXT_texture_compression_astc_hdr)": [ + { + "vuid": "VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceLineRasterizationFeaturesEXT": { + "(VK_EXT_line_rasterization)": [ + { + "vuid": "VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT": { + "(VK_EXT_subgroup_size_control)": [ + { + "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceCoherentMemoryFeaturesAMD": { + "(VK_AMD_device_coherent_memory)": [ + { + "vuid": "VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD" + } + ] + }, + "VkPhysicalDeviceRayTracingFeaturesKHR": { + "(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkPhysicalDeviceRayTracingFeaturesKHR-rayTracingShaderGroupHandleCaptureReplayMixed-03348", + "text": " If rayTracingShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingShaderGroupHandleCaptureReplay must also be VK_TRUE" + }, + { + "vuid": "VUID-VkPhysicalDeviceRayTracingFeaturesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR" + } + ] + }, + "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": { + "(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" + } + ] + }, + "VkPhysicalDeviceDiagnosticsConfigFeaturesNV": { + "(VK_NV_device_diagnostics_config)": [ + { + "vuid": "VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV" + } + ] + }, + "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT": { + "(VK_EXT_pipeline_creation_cache_control)": [ + { + "vuid": "VUID-VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT" + } + ] + }, + "VkPhysicalDevicePrivateDataFeaturesEXT": { + "(VK_EXT_private_data)": [ + { + "vuid": "VUID-VkPhysicalDevicePrivateDataFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceRobustness2FeaturesEXT": { + "(VK_EXT_robustness2)": [ + { + "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000", + "text": " If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled" + }, + { + "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceImageRobustnessFeaturesEXT": { + "(VK_EXT_image_robustness)": [ + { + "vuid": "VUID-VkPhysicalDeviceImageRobustnessFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" + } + ] + }, + "VkPhysicalDeviceCustomBorderColorFeaturesEXT": { + "(VK_EXT_custom_border_color)": [ + { + "vuid": "VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT" + } + ] + }, + "VkPhysicalDevicePerformanceQueryFeaturesKHR": { + "(VK_KHR_performance_query)": [ + { + "vuid": "VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR" + } + ] + }, + "VkPhysicalDevice4444FormatsFeaturesEXT": { + "(VK_EXT_4444_formats)": [ + { + "vuid": "VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" + } + ] + }, "VkPhysicalDevicePushDescriptorPropertiesKHR": { "(VK_KHR_push_descriptor)": [ { @@ -22488,11 +29540,11 @@ } ] }, - "VkPhysicalDeviceFloatControlsPropertiesKHR": { - "(VK_KHR_shader_float_controls)": [ + "VkPhysicalDeviceFloatControlsProperties": { + "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [ { - "vuid": "VUID-VkPhysicalDeviceFloatControlsPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR" + "vuid": "VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES" } ] }, @@ -22544,6 +29596,14 @@ } ] }, + "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT": { + "(VK_VERSION_1_1)+(VK_EXT_subgroup_size_control)": [ + { + "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT" + } + ] + }, "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT": { "(VK_EXT_blend_operation_advanced)": [ { @@ -22560,11 +29620,11 @@ } ] }, - "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT": { - "(VK_EXT_sampler_filter_minmax)": [ + "VkPhysicalDeviceSamplerFilterMinmaxProperties": { + "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ { - "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT" + "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES" } ] }, @@ -22592,11 +29652,11 @@ } ] }, - "VkPhysicalDeviceDescriptorIndexingPropertiesEXT": { - "(VK_EXT_descriptor_indexing)": [ + "VkPhysicalDeviceDescriptorIndexingProperties": { + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ { - "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT" + "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES" } ] }, @@ -22624,6 +29684,14 @@ } ] }, + "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT": { + "(VK_EXT_fragment_density_map2)": [ + { + "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" + } + ] + }, "VkPhysicalDeviceShaderCorePropertiesAMD": { "(VK_AMD_shader_core_properties)": [ { @@ -22632,11 +29700,27 @@ } ] }, - "VkPhysicalDeviceDepthStencilResolvePropertiesKHR": { - "(VK_KHR_depth_stencil_resolve)": [ + "VkPhysicalDeviceShaderCoreProperties2AMD": { + "(VK_AMD_shader_core_properties2)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD" + } + ] + }, + "VkPhysicalDeviceDepthStencilResolveProperties": { + "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ + { + "vuid": "VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES" + } + ] + }, + "VkPhysicalDevicePerformanceQueryPropertiesKHR": { + "(VK_KHR_performance_query)": [ { - "vuid": "VUID-VkPhysicalDeviceDepthStencilResolvePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR" + "vuid": "VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR" } ] }, @@ -22664,6 +29748,14 @@ } ] }, + "VkPhysicalDeviceRayTracingPropertiesKHR": { + "(VK_KHR_ray_tracing)": [ + { + "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR" + } + ] + }, "VkPhysicalDeviceCooperativeMatrixPropertiesNV": { "(VK_NV_cooperative_matrix)": [ { @@ -22672,11 +29764,59 @@ } ] }, + "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV": { + "(VK_NV_shader_sm_builtins)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV" + } + ] + }, + "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT": { + "(VK_EXT_texel_buffer_alignment)": [ + { + "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT" + } + ] + }, + "VkPhysicalDeviceTimelineSemaphoreProperties": { + "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ + { + "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES" + } + ] + }, + "VkPhysicalDeviceLineRasterizationPropertiesEXT": { + "(VK_EXT_line_rasterization)": [ + { + "vuid": "VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT" + } + ] + }, + "VkPhysicalDeviceRobustness2PropertiesEXT": { + "(VK_EXT_robustness2)": [ + { + "vuid": "VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT" + } + ] + }, + "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV": { + "(VK_NV_device_generated_commands)": [ + { + "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" + } + ] + }, "vkGetPhysicalDeviceMultisamplePropertiesEXT": { "(VK_EXT_sample_locations)": [ { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter", @@ -22684,7 +29824,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameter", - "text": " pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure" + "text": " pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure" } ] }, @@ -22700,11 +29840,19 @@ } ] }, + "VkPhysicalDeviceCustomBorderColorPropertiesEXT": { + "(VK_EXT_custom_border_color)": [ + { + "vuid": "VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT" + } + ] + }, "vkGetPhysicalDeviceFormatProperties": { "core": [ { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-format-parameter", @@ -22712,7 +29860,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties structure" + "text": " pFormatProperties must be a valid pointer to a VkFormatProperties structure" } ] }, @@ -22720,7 +29868,7 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-format-parameter", @@ -22728,7 +29876,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties2 structure" + "text": " pFormatProperties must be a valid pointer to a VkFormatProperties2 structure" } ] }, @@ -22741,6 +29889,10 @@ { "vuid": "VUID-VkFormatProperties2-pNext-pNext", "text": " pNext must be NULL or a pointer to a valid instance of VkDrmFormatModifierPropertiesListEXT" + }, + { + "vuid": "VUID-VkFormatProperties2-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" } ] }, @@ -22756,13 +29908,13 @@ "(VK_EXT_image_drm_format_modifier)": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248", - "text": " tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)." + "text": " tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)" } ], "core": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter", @@ -22790,7 +29942,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure" + "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure" } ] }, @@ -22798,7 +29950,7 @@ "(VK_NV_external_memory_capabilities)": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter", @@ -22830,7 +29982,7 @@ }, { "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameter", - "text": " pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure" + "text": " pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure" } ] }, @@ -22838,21 +29990,21 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868", - "text": " If the pNext chain of pImageFormatProperties contains an instance of VkAndroidHardwareBufferUsageANDROID, the pNext chain of pImageFormatInfo must contain an instance of VkPhysicalDeviceExternalImageFormatInfo with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID." + "text": " If the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID" } ], "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter", - "text": " pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure" + "text": " pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure" }, { "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure" + "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure" } ] }, @@ -22860,11 +30012,11 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249", - "text": " tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain contains VkPhysicalDeviceImageDrmFormatModifierInfoEXT." + "text": " tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must contain VkImageFormatListCreateInfoKHR with non-zero viewFormatCount." + "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" } ], "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ @@ -22874,11 +30026,11 @@ }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext", - "text": " 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 VkImageFormatListCreateInfoKHR, VkImageStencilUsageCreateInfoEXT, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, or VkPhysicalDeviceImageViewImageFormatInfoEXT" + "text": " 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 VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, or VkPhysicalDeviceImageViewImageFormatInfoEXT" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-format-parameter", @@ -22918,7 +30070,7 @@ }, { "vuid": "VUID-VkImageFormatProperties2-sType-unique", - "text": " Each sType member in the pNext chain must be unique" + "text": " The sType value of each struct in the pNext chain must be unique" } ] }, @@ -22954,15 +30106,15 @@ "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values." + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1." + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device." + "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" }, { "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType", @@ -23010,7 +30162,7 @@ }, { "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627", - "text": " If the pNext chain of the VkImageFormatProperties2 structure contains an instance of VkFilterCubicImageViewImageFormatPropertiesEXT, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must contain an instance of VkPhysicalDeviceImageViewImageFormatInfoEXT with an imageViewType that is compatible with imageType." + "text": " If the pNext chain of the VkImageFormatProperties2 structure includes a VkFilterCubicImageViewImageFormatPropertiesEXT structure, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must include a VkPhysicalDeviceImageViewImageFormatInfoEXT structure with an imageViewType that is compatible with imageType" } ] }, @@ -23018,15 +30170,15 @@ "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter", - "text": " pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure" + "text": " pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameter", - "text": " pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure" + "text": " pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure" } ] }, @@ -23074,15 +30226,15 @@ "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter", - "text": " pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure" + "text": " pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameter", - "text": " pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure" + "text": " pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure" } ] }, @@ -23094,7 +30246,11 @@ }, { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": " pNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo" + }, + { + "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-unique", + "text": " The sType value of each struct in the pNext chain must be unique" }, { "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter", @@ -23118,15 +30274,15 @@ "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [ { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter", - "text": " pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure" + "text": " pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure" }, { "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameter", - "text": " pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure" + "text": " pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure" } ] }, @@ -23162,7 +30318,7 @@ "(VK_EXT_calibrated_timestamps)": [ { "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" + "text": " physicalDevice must be a valid VkPhysicalDevice handle" }, { "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter", @@ -23178,19 +30334,19 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587", - "text": " pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN" + "text": " pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588", - "text": " pNameInfo->objectHandle must not be VK_NULL_HANDLE" + "text": " pNameInfo->objectHandle must not be VK_NULL_HANDLE" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure" + "text": " pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure" } ] }, @@ -23202,7 +30358,7 @@ }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590", - "text": " If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" + "text": " If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType", @@ -23226,11 +30382,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure" + "text": " pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure" } ] }, @@ -23242,7 +30398,7 @@ }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910", - "text": " objectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" + "text": " objectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType", @@ -23270,11 +30426,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" }, { "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" } ] }, @@ -23302,7 +30458,7 @@ }, { "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" } ] }, @@ -23310,11 +30466,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" }, { "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" } ] }, @@ -23322,11 +30478,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording", @@ -23346,11 +30502,11 @@ }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913", - "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT." + "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording", @@ -23366,11 +30522,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" + "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording", @@ -23386,19 +30542,19 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure" + "text": " pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter", - "text": " pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle" + "text": " pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle" } ] }, @@ -23431,6 +30587,10 @@ { "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask", "text": " messageType must not be 0" + }, + { + "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter", + "text": " pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value" } ] }, @@ -23458,15 +30618,15 @@ }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter", - "text": " If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures" + "text": " If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter", - "text": " If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures" + "text": " If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures" }, { "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter", - "text": " If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures" + "text": " If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures" } ] }, @@ -23474,11 +30634,11 @@ "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591", - "text": " objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN" + "text": " The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter", @@ -23494,7 +30654,7 @@ }, { "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter", - "text": " pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure" + "text": " pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure" } ] }, @@ -23510,19 +30670,19 @@ }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter", - "text": " messenger must be a valid VkDebugUtilsMessengerEXT handle" + "text": " If messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent", - "text": " messenger must have been created, allocated, or retrieved from instance" + "text": " If messenger is a valid handle, it must have been created, allocated, or retrieved from instance" } ] }, @@ -23530,11 +30690,11 @@ "(VK_EXT_debug_marker)": [ { "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure" + "text": " pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure" } ] }, @@ -23550,7 +30710,7 @@ }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01492", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship." + "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType", @@ -23574,11 +30734,11 @@ "(VK_EXT_debug_marker)": [ { "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" + "text": " device must be a valid VkDevice handle" }, { "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure" + "text": " pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure" } ] }, @@ -23594,7 +30754,7 @@ }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01495", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship." + "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType", @@ -23622,11 +30782,11 @@ "(VK_EXT_debug_marker)": [ { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" + "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording", @@ -23662,11 +30822,11 @@ }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240", - "text": " 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." + "text": " 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" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording", @@ -23682,11 +30842,11 @@ "(VK_EXT_debug_marker)": [ { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" + "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording", @@ -23702,28 +30862,24 @@ "(VK_EXT_debug_report)": [ { "vuid": "VUID-vkCreateDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure" + "text": " pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter", - "text": " pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle" + "text": " pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle" } ] }, "VkDebugReportCallbackCreateInfoEXT": { "(VK_EXT_debug_report)": [ - { - "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-01385", - "text": " pfnCallback must be a valid PFN_vkDebugReportCallbackEXT" - }, { "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType", "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" @@ -23731,6 +30887,10 @@ { "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter", "text": " flags must be a valid combination of VkDebugReportFlagBitsEXT values" + }, + { + "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter", + "text": " pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value" } ] }, @@ -23742,11 +30902,11 @@ }, { "vuid": "VUID-vkDebugReportMessageEXT-objectType-01498", - "text": " If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship." + "text": " If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" }, { "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkDebugReportMessageEXT-flags-parameter", @@ -23782,19 +30942,19 @@ }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" + "text": " instance must be a valid VkInstance handle" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter", - "text": " callback must be a valid VkDebugReportCallbackEXT handle" + "text": " If callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" }, { "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parent", - "text": " callback must have been created, allocated, or retrieved from instance" + "text": " If callback is a valid handle, it must have been created, allocated, or retrieved from instance" } ] }, @@ -23802,7 +30962,7 @@ "(VK_NV_device_diagnostic_checkpoints)": [ { "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" + "text": " commandBuffer must be a valid VkCommandBuffer handle" }, { "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording", @@ -23822,7 +30982,7 @@ }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter", - "text": " queue must be a valid VkQueue handle" + "text": " queue must be a valid VkQueue handle" }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter", @@ -23830,7 +30990,7 @@ }, { "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter", - "text": " If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures" + "text": " If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures" } ] }, @@ -23845,6 +31005,34 @@ "text": " pNext must be NULL" } ] + }, + "vkGetPhysicalDeviceToolPropertiesEXT": { + "(VK_EXT_tooling_info)": [ + { + "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-physicalDevice-parameter", + "text": " physicalDevice must be a valid VkPhysicalDevice handle" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolCount-parameter", + "text": " pToolCount must be a valid pointer to a uint32_t value" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolProperties-parameter", + "text": " If the value referenced by pToolCount is not 0, and pToolProperties is not NULL, pToolProperties must be a valid pointer to an array of pToolCount VkPhysicalDeviceToolPropertiesEXT structures" + } + ] + }, + "VkPhysicalDeviceToolPropertiesEXT": { + "(VK_EXT_tooling_info)": [ + { + "vuid": "VUID-VkPhysicalDeviceToolPropertiesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT" + }, + { + "vuid": "VUID-VkPhysicalDeviceToolPropertiesEXT-pNext-pNext", + "text": " pNext must be NULL" + } + ] } } } \ No newline at end of file -- cgit v1.2.3