build: Switch to generated object_tracker.cpp
- updated desktop/android build
- removed layers/object_tracker.cpp
- updated doc validator script for new location
- updated error database for 124 new checks
- added gen'd VU to GetSwapchainImages
Change-Id: If1b218dfcf62b203a8df96a0f12cbeb8bdcaf826
diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt
index 7679358..c8caec6 100644
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
@@ -171,6 +171,7 @@
run_vk_xml_generate(parameter_validation_generator.py parameter_validation.h)
run_vk_xml_generate(unique_objects_generator.py unique_objects_wrappers.h)
run_vk_xml_generate(dispatch_table_helper_generator.py vk_dispatch_table_helper.h)
+run_vk_xml_generate(object_tracker_generator.py object_tracker.cpp)
# Layer Utils Library
# For Windows, we use a static lib because the Windows loader has a fairly restrictive loader search
diff --git a/layers/object_tracker.cpp b/layers/object_tracker.cpp
deleted file mode 100644
index d2be144..0000000
--- a/layers/object_tracker.cpp
+++ /dev/null
@@ -1,4328 +0,0 @@
-/*
- * Copyright (c) 2015-2017 The Khronos Group Inc.
- * Copyright (c) 2015-2017 Valve Corporation
- * Copyright (c) 2015-2017 LunarG, Inc.
- * Copyright (c) 2015-2017 Google, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Author: Mark Lobodzinski <mark@lunarg.com>
- * Author: Tobin Ehlis <tobine@google.com>
- * Author: Courtney Goeltzenleuchter <courtneygo@google.com>
- * Author: Jon Ashburn <jon@lunarg.com>
- * Author: Mike Stroyan <stroyan@google.com>
- * Author: Tony Barbour <tony@LunarG.com>
- */
-
-
-#include "object_tracker.h"
-
-namespace object_tracker {
-
-void ReportUndestroyedObjects(VkDevice device, UNIQUE_VALIDATION_ERROR_CODE error_code) {
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeCommandBuffer, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSemaphore, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeFence, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDeviceMemory, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeBuffer, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeImage, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeEvent, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeQueryPool, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeBufferView, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeImageView, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeShaderModule, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipelineCache, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipelineLayout, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeRenderPass, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipeline, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorSetLayout, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSampler, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorPool, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorSet, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeFramebuffer, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeCommandPool, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSurfaceKHR, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSwapchainKHR, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDisplayKHR, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDisplayModeKHR, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorUpdateTemplateKHR, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDebugReportCallbackEXT, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeObjectTableNVX, error_code);
- DeviceReportUndestroyedObjects(device, kVulkanObjectTypeIndirectCommandsLayoutNVX, error_code);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures *pFeatures) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2c016e01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_instance_table_map, physicalDevice)->GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format,
- VkFormatProperties *pFormatProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2c427a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format,
- VkImageType type, VkImageTiling tiling,
- VkImageUsageFlags usage, VkImageCreateFlags flags,
- VkImageFormatProperties *pImageFormatProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2ca27a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties *pProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2d627a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_instance_table_map, physicalDevice)->GetPhysicalDeviceProperties(physicalDevice, pProperties);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,
- VkPhysicalDeviceMemoryProperties *pMemoryProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2ce27a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_instance_table_map, physicalDevice)->GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(queue, fence, kVulkanObjectTypeFence, true, VALIDATION_ERROR_31a08801, VALIDATION_ERROR_31a00009);
- if (pSubmits) {
- for (uint32_t idx0 = 0; idx0 < submitCount; ++idx0) {
- if (pSubmits[idx0].pCommandBuffers) {
- for (uint32_t idx1 = 0; idx1 < pSubmits[idx0].commandBufferCount; ++idx1) {
- skip |= ValidateObject(queue, pSubmits[idx0].pCommandBuffers[idx1], kVulkanObjectTypeCommandBuffer, false,
- VALIDATION_ERROR_13c11401, VALIDATION_ERROR_13c00009);
- }
- }
- if (pSubmits[idx0].pSignalSemaphores) {
- for (uint32_t idx2 = 0; idx2 < pSubmits[idx0].signalSemaphoreCount; ++idx2) {
- skip |= ValidateObject(queue, pSubmits[idx0].pSignalSemaphores[idx2], kVulkanObjectTypeSemaphore, false,
- VALIDATION_ERROR_13c23401, VALIDATION_ERROR_13c00009);
- }
- }
- if (pSubmits[idx0].pWaitSemaphores) {
- for (uint32_t idx3 = 0; idx3 < pSubmits[idx0].waitSemaphoreCount; ++idx3) {
- skip |= ValidateObject(queue, pSubmits[idx0].pWaitSemaphores[idx3], kVulkanObjectTypeSemaphore, false,
- VALIDATION_ERROR_13c27601, VALIDATION_ERROR_13c00009);
- }
- }
- }
- }
- if (queue) {
- skip |=
- ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, VALIDATION_ERROR_31a29c01, VALIDATION_ERROR_31a00009);
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, queue)->QueueSubmit(queue, submitCount, pSubmits, fence);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL QueueWaitIdle(VkQueue queue) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, VALIDATION_ERROR_31c29c01, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, queue)->QueueWaitIdle(queue);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL DeviceWaitIdle(VkDevice device) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_27005601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->DeviceWaitIdle(device);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL AllocateMemory(VkDevice device, const VkMemoryAllocateInfo *pAllocateInfo,
- const VkAllocationCallbacks *pAllocator, VkDeviceMemory *pMemory) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_16c05601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pMemory, kVulkanObjectTypeDeviceMemory, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
- const VkMappedMemoryRange *pMemoryRanges) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_28205601, VALIDATION_ERROR_UNDEFINED);
- if (pMemoryRanges) {
- for (uint32_t idx0 = 0; idx0 < memoryRangeCount; ++idx0) {
- if (pMemoryRanges[idx0].memory) {
- skip |= ValidateObject(device, pMemoryRanges[idx0].memory, kVulkanObjectTypeDeviceMemory, false,
- VALIDATION_ERROR_0c20c601, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
- const VkMappedMemoryRange *pMemoryRanges) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_31005601, VALIDATION_ERROR_UNDEFINED);
- if (pMemoryRanges) {
- for (uint32_t idx0 = 0; idx0 < memoryRangeCount; ++idx0) {
- if (pMemoryRanges[idx0].memory) {
- skip |= ValidateObject(device, pMemoryRanges[idx0].memory, kVulkanObjectTypeDeviceMemory, false,
- VALIDATION_ERROR_0c20c601, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory,
- VkDeviceSize *pCommittedMemoryInBytes) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_29205601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_2920c601,
- VALIDATION_ERROR_2920c607);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)->GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory,
- VkDeviceSize memoryOffset) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_17005601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_17001a01, VALIDATION_ERROR_17001a07);
- skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_1700c601,
- VALIDATION_ERROR_1700c607);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->BindBufferMemory(device, buffer, memory, memoryOffset);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_17405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1740a001, VALIDATION_ERROR_1740a007);
- skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_1740c601,
- VALIDATION_ERROR_1740c607);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->BindImageMemory(device, image, memory, memoryOffset);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer,
- VkMemoryRequirements *pMemoryRequirements) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_28a05601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_28a01a01, VALIDATION_ERROR_28a01a07);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)->GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements *pMemoryRequirements) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2a205601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_2a20a001, VALIDATION_ERROR_2a20a007);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)->GetImageMemoryRequirements(device, image, pMemoryRequirements);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t *pSparseMemoryRequirementCount,
- VkSparseImageMemoryRequirements *pSparseMemoryRequirements) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2a405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_2a40a001, VALIDATION_ERROR_2a40a007);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)
- ->GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format,
- VkImageType type, VkSampleCountFlagBits samples,
- VkImageUsageFlags usage, VkImageTiling tiling,
- uint32_t *pPropertyCount,
- VkSparseImageFormatProperties *pProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2de27a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount,
- pProperties);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateFence(VkDevice device, const VkFenceCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkFence *pFence) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20405601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateFence(device, pCreateInfo, pAllocator, pFence);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_24e05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, true, VALIDATION_ERROR_24e08801, VALIDATION_ERROR_24e08807);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, fence, kVulkanObjectTypeFence, pAllocator, VALIDATION_ERROR_24e008c2, VALIDATION_ERROR_24e008c4);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyFence(device, fence, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL ResetFences(VkDevice device, uint32_t fenceCount, const VkFence *pFences) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_32e05601, VALIDATION_ERROR_UNDEFINED);
- if (pFences) {
- for (uint32_t idx0 = 0; idx0 < fenceCount; ++idx0) {
- skip |= ValidateObject(device, pFences[idx0], kVulkanObjectTypeFence, false, VALIDATION_ERROR_32e17201,
- VALIDATION_ERROR_32e17207);
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->ResetFences(device, fenceCount, pFences);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetFenceStatus(VkDevice device, VkFence fence) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2a005601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, false, VALIDATION_ERROR_2a008801, VALIDATION_ERROR_2a008807);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->GetFenceStatus(device, fence);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence *pFences, VkBool32 waitAll,
- uint64_t timeout) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_33e05601, VALIDATION_ERROR_UNDEFINED);
- if (pFences) {
- for (uint32_t idx0 = 0; idx0 < fenceCount; ++idx0) {
- skip |= ValidateObject(device, pFences[idx0], kVulkanObjectTypeFence, false, VALIDATION_ERROR_33e17201,
- VALIDATION_ERROR_33e17207);
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->WaitForFences(device, fenceCount, pFences, waitAll, timeout);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSemaphore *pSemaphore) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22405601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pSemaphore, kVulkanObjectTypeSemaphore, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26805601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, semaphore, kVulkanObjectTypeSemaphore, true, VALIDATION_ERROR_2682b801,
- VALIDATION_ERROR_2682b807);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, semaphore, kVulkanObjectTypeSemaphore, pAllocator, VALIDATION_ERROR_268008e4,
- VALIDATION_ERROR_268008e6);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroySemaphore(device, semaphore, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateEvent(VkDevice device, const VkEventCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkEvent *pEvent) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20205601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateEvent(device, pCreateInfo, pAllocator, pEvent);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pEvent, kVulkanObjectTypeEvent, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_24c05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, true, VALIDATION_ERROR_24c07e01, VALIDATION_ERROR_24c07e07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, event, kVulkanObjectTypeEvent, pAllocator, VALIDATION_ERROR_24c008f4, VALIDATION_ERROR_24c008f6);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyEvent(device, event, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetEventStatus(VkDevice device, VkEvent event) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_29e05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, VALIDATION_ERROR_29e07e01, VALIDATION_ERROR_29e07e07);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->GetEventStatus(device, event);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL SetEvent(VkDevice device, VkEvent event) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_33005601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, VALIDATION_ERROR_33007e01, VALIDATION_ERROR_33007e07);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->SetEvent(device, event);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL ResetEvent(VkDevice device, VkEvent event) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_32c05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, VALIDATION_ERROR_32c07e01, VALIDATION_ERROR_32c07e07);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->ResetEvent(device, event);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkQueryPool *pQueryPool) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_21e05601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pQueryPool, kVulkanObjectTypeQueryPool, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26205601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, queryPool, kVulkanObjectTypeQueryPool, true, VALIDATION_ERROR_26229801,
- VALIDATION_ERROR_26229807);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, queryPool, kVulkanObjectTypeQueryPool, pAllocator, VALIDATION_ERROR_26200634,
- VALIDATION_ERROR_26200636);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyQueryPool(device, queryPool, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount,
- size_t dataSize, void *pData, VkDeviceSize stride, VkQueryResultFlags flags) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2fa05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_2fa29801,
- VALIDATION_ERROR_2fa29807);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)
- ->GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateBuffer(VkDevice device, const VkBufferCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkBuffer *pBuffer) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1ec05601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pBuffer, kVulkanObjectTypeBuffer, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_23c05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, buffer, kVulkanObjectTypeBuffer, true, VALIDATION_ERROR_23c01a01, VALIDATION_ERROR_23c01a07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, buffer, kVulkanObjectTypeBuffer, pAllocator, VALIDATION_ERROR_23c00736, VALIDATION_ERROR_23c00738);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyBuffer(device, buffer, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateBufferView(VkDevice device, const VkBufferViewCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkBufferView *pView) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1ee05601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- skip |= ValidateObject(device, pCreateInfo->buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_01a01a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateBufferView(device, pCreateInfo, pAllocator, pView);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pView, kVulkanObjectTypeBufferView, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_23e05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, bufferView, kVulkanObjectTypeBufferView, true, VALIDATION_ERROR_23e01c01,
- VALIDATION_ERROR_23e01c07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, bufferView, kVulkanObjectTypeBufferView, pAllocator, VALIDATION_ERROR_23e00752,
- VALIDATION_ERROR_23e00754);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyBufferView(device, bufferView, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkImage *pImage) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20c05601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateImage(device, pCreateInfo, pAllocator, pImage);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pImage, kVulkanObjectTypeImage, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_25205601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, image, kVulkanObjectTypeImage, true, VALIDATION_ERROR_2520a001, VALIDATION_ERROR_2520a007);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, image, kVulkanObjectTypeImage, pAllocator, VALIDATION_ERROR_252007d2, VALIDATION_ERROR_252007d4);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyImage(device, image, pAllocator);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource *pSubresource,
- VkSubresourceLayout *pLayout) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2a605601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_2a60a001, VALIDATION_ERROR_2a60a007);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)->GetImageSubresourceLayout(device, image, pSubresource, pLayout);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateImageView(VkDevice device, const VkImageViewCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkImageView *pView) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20e05601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- skip |= ValidateObject(device, pCreateInfo->image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_0ac0a001,
- VALIDATION_ERROR_UNDEFINED);
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateImageView(device, pCreateInfo, pAllocator, pView);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pView, kVulkanObjectTypeImageView, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_25405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, imageView, kVulkanObjectTypeImageView, true, VALIDATION_ERROR_2540b001,
- VALIDATION_ERROR_2540b007);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, imageView, kVulkanObjectTypeImageView, pAllocator, VALIDATION_ERROR_25400806,
- VALIDATION_ERROR_25400808);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyImageView(device, imageView, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkShaderModule *pShaderModule) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22605601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pShaderModule, kVulkanObjectTypeShaderModule, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyShaderModule(VkDevice device, VkShaderModule shaderModule,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26a05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, shaderModule, kVulkanObjectTypeShaderModule, true, VALIDATION_ERROR_26a2be01,
- VALIDATION_ERROR_26a2be07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, shaderModule, kVulkanObjectTypeShaderModule, pAllocator, VALIDATION_ERROR_26a00888,
- VALIDATION_ERROR_26a0088a);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyShaderModule(device, shaderModule, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkPipelineCache *pPipelineCache) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_21a05601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pPipelineCache, kVulkanObjectTypePipelineCache, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_25e05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, VALIDATION_ERROR_25e28001,
- VALIDATION_ERROR_25e28007);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, pipelineCache, kVulkanObjectTypePipelineCache, pAllocator, VALIDATION_ERROR_25e00606,
- VALIDATION_ERROR_25e00608);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyPipelineCache(device, pipelineCache, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t *pDataSize,
- void *pData) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2f805601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, false, VALIDATION_ERROR_2f828001,
- VALIDATION_ERROR_2f828007);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount,
- const VkPipelineCache *pSrcCaches) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_31405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, dstCache, kVulkanObjectTypePipelineCache, false, VALIDATION_ERROR_31406e01,
- VALIDATION_ERROR_31406e07);
- if (pSrcCaches) {
- for (uint32_t idx0 = 0; idx0 < srcCacheCount; ++idx0) {
- skip |= ValidateObject(device, pSrcCaches[idx0], kVulkanObjectTypePipelineCache, false, VALIDATION_ERROR_31423c01,
- VALIDATION_ERROR_31423c07);
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_25c05601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, pipeline, kVulkanObjectTypePipeline, true, VALIDATION_ERROR_25c27c01, VALIDATION_ERROR_25c27c07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, pipeline, kVulkanObjectTypePipeline, pAllocator, VALIDATION_ERROR_25c005fc,
- VALIDATION_ERROR_25c005fe);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyPipeline(device, pipeline, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkPipelineLayout *pPipelineLayout) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_21c05601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- if (pCreateInfo->pSetLayouts) {
- for (uint32_t idx0 = 0; idx0 < pCreateInfo->setLayoutCount; ++idx0) {
- skip |= ValidateObject(device, pCreateInfo->pSetLayouts[idx0], kVulkanObjectTypeDescriptorSetLayout, false,
- VALIDATION_ERROR_0fe22c01, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pPipelineLayout, kVulkanObjectTypePipelineLayout, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26005601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pipelineLayout, kVulkanObjectTypePipelineLayout, true, VALIDATION_ERROR_26028201,
- VALIDATION_ERROR_26028207);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, pipelineLayout, kVulkanObjectTypePipelineLayout, pAllocator, VALIDATION_ERROR_26000256,
- VALIDATION_ERROR_26000258);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyPipelineLayout(device, pipelineLayout, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateSampler(VkDevice device, const VkSamplerCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSampler *pSampler) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22205601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->CreateSampler(device, pCreateInfo, pAllocator, pSampler);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pSampler, kVulkanObjectTypeSampler, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26605601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, sampler, kVulkanObjectTypeSampler, true, VALIDATION_ERROR_2662b201, VALIDATION_ERROR_2662b207);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, sampler, kVulkanObjectTypeSampler, pAllocator, VALIDATION_ERROR_26600876, VALIDATION_ERROR_26600878);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroySampler(device, sampler, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator,
- VkDescriptorSetLayout *pSetLayout) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1f805601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- if (pCreateInfo->pBindings) {
- for (uint32_t idx0 = 0; idx0 < pCreateInfo->bindingCount; ++idx0) {
- if ((pCreateInfo->pBindings[idx0].descriptorType == VK_DESCRIPTOR_TYPE_SAMPLER) ||
- (pCreateInfo->pBindings[idx0].descriptorType == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)) {
- if (pCreateInfo->pBindings[idx0].pImmutableSamplers) {
- for (uint32_t idx1 = 0; idx1 < pCreateInfo->pBindings[idx0].descriptorCount; ++idx1) {
- skip |= ValidateObject(device, pCreateInfo->pBindings[idx0].pImmutableSamplers[idx1],
- kVulkanObjectTypeSampler, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pSetLayout, kVulkanObjectTypeDescriptorSetLayout, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_24605601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, true, VALIDATION_ERROR_24604c01,
- VALIDATION_ERROR_24604c07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, pAllocator, VALIDATION_ERROR_24600238,
- VALIDATION_ERROR_2460023a);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkDescriptorPool *pDescriptorPool) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1f605601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pDescriptorPool, kVulkanObjectTypeDescriptorPool, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkFramebuffer *pFramebuffer) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20605601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- if (pCreateInfo->pAttachments) {
- for (uint32_t idx0 = 0; idx0 < pCreateInfo->attachmentCount; ++idx0) {
- skip |= ValidateObject(device, pCreateInfo->pAttachments[idx0], kVulkanObjectTypeImageView, false,
- VALIDATION_ERROR_0940f201, VALIDATION_ERROR_09400009);
- }
- }
- if (pCreateInfo->renderPass) {
- skip |= ValidateObject(device, pCreateInfo->renderPass, kVulkanObjectTypeRenderPass, false,
- VALIDATION_ERROR_0942ae01, VALIDATION_ERROR_09400009);
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pFramebuffer, kVulkanObjectTypeFramebuffer, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_25005601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, framebuffer, kVulkanObjectTypeFramebuffer, true, VALIDATION_ERROR_25009401,
- VALIDATION_ERROR_25009407);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, framebuffer, kVulkanObjectTypeFramebuffer, pAllocator, VALIDATION_ERROR_250006fa,
- VALIDATION_ERROR_250006fc);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyFramebuffer(device, framebuffer, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkRenderPass *pRenderPass) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22005601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pRenderPass, kVulkanObjectTypeRenderPass, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_26405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, renderPass, kVulkanObjectTypeRenderPass, true, VALIDATION_ERROR_2642ae01,
- VALIDATION_ERROR_2642ae07);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(device, renderPass, kVulkanObjectTypeRenderPass, pAllocator, VALIDATION_ERROR_264006d4,
- VALIDATION_ERROR_264006d6);
- }
- get_dispatch_table(ot_device_table_map, device)->DestroyRenderPass(device, renderPass, pAllocator);
-}
-
-VKAPI_ATTR void VKAPI_CALL GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D *pGranularity) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_30005601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, renderPass, kVulkanObjectTypeRenderPass, false, VALIDATION_ERROR_3002ae01,
- VALIDATION_ERROR_3002ae07);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, device)->GetRenderAreaGranularity(device, renderPass, pGranularity);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkCommandPool *pCommandPool) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1f005601, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pCommandPool, kVulkanObjectTypeCommandPool, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_32805601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, commandPool, kVulkanObjectTypeCommandPool, false, VALIDATION_ERROR_32802801,
- VALIDATION_ERROR_32802807);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->ResetCommandPool(device, commandPool, flags);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL EndCommandBuffer(VkCommandBuffer commandBuffer) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_27402401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, commandBuffer)->EndCommandBuffer(commandBuffer);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_32602401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, commandBuffer)->ResetCommandBuffer(commandBuffer, flags);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
- VkPipeline pipeline) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18002401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, pipeline, kVulkanObjectTypePipeline, false, VALIDATION_ERROR_18027c01,
- VALIDATION_ERROR_18000009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount,
- const VkViewport *pViewports) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1e002401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount,
- const VkRect2D *pScissors) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1d802401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1d602401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetLineWidth(commandBuffer, lineWidth);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp,
- float depthBiasSlopeFactor) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1cc02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1ca02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetBlendConstants(commandBuffer, blendConstants);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1ce02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
- uint32_t compareMask) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1da02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1de02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1dc02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetStencilReference(commandBuffer, faceMask, reference);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
- VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount,
- const VkDescriptorSet *pDescriptorSets, uint32_t dynamicOffsetCount,
- const uint32_t *pDynamicOffsets) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_17c02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, VALIDATION_ERROR_17c0be01,
- VALIDATION_ERROR_17c00009);
- if (pDescriptorSets) {
- for (uint32_t idx0 = 0; idx0 < descriptorSetCount; ++idx0) {
- skip |= ValidateObject(commandBuffer, pDescriptorSets[idx0], kVulkanObjectTypeDescriptorSet, false,
- VALIDATION_ERROR_17c13001, VALIDATION_ERROR_17c00009);
- }
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets,
- dynamicOffsetCount, pDynamicOffsets);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
- VkIndexType indexType) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_17e02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_17e01a01,
- VALIDATION_ERROR_17e00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount,
- const VkBuffer *pBuffers, const VkDeviceSize *pOffsets) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18202401,
- VALIDATION_ERROR_UNDEFINED);
- if (pBuffers) {
- for (uint32_t idx0 = 0; idx0 < bindingCount; ++idx0) {
- skip |= ValidateObject(commandBuffer, pBuffers[idx0], kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_18210601,
- VALIDATION_ERROR_18200009);
- }
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
- uint32_t firstVertex, uint32_t firstInstance) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1a202401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
- uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1a402401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount,
- uint32_t stride) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1aa02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1aa01a01,
- VALIDATION_ERROR_1aa00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
- uint32_t drawCount, uint32_t stride) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1a602401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1a601a01,
- VALIDATION_ERROR_1a600009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19c02401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdDispatch(commandBuffer, x, y, z);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1a001a01,
- VALIDATION_ERROR_1a000009);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1a002401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdDispatchIndirect(commandBuffer, buffer, offset);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer,
- uint32_t regionCount, const VkBufferCopy *pRegions) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18c02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_18c06c01,
- VALIDATION_ERROR_18c00009);
- skip |= ValidateObject(commandBuffer, srcBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_18c2c801,
- VALIDATION_ERROR_18c00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkImageCopy *pRegions) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19002401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_19007201,
- VALIDATION_ERROR_19000009);
- skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1902ce01,
- VALIDATION_ERROR_19000009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkImageBlit *pRegions, VkFilter filter) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_18407201,
- VALIDATION_ERROR_18400009);
- skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1842ce01,
- VALIDATION_ERROR_18400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage,
- VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkBufferImageCopy *pRegions) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18e02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_18e07201,
- VALIDATION_ERROR_18e00009);
- skip |= ValidateObject(commandBuffer, srcBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_18e2c801,
- VALIDATION_ERROR_18e00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy *pRegions) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19202401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_19206c01,
- VALIDATION_ERROR_19200009);
- skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1922ce01,
- VALIDATION_ERROR_19200009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset,
- VkDeviceSize dataSize, const uint32_t *pData) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1e402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1e406c01,
- VALIDATION_ERROR_1e400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset,
- VkDeviceSize size, uint32_t data) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1b402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1b406c01,
- VALIDATION_ERROR_1b400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout,
- const VkClearColorValue *pColor, uint32_t rangeCount,
- const VkImageSubresourceRange *pRanges) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18802401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1880a001,
- VALIDATION_ERROR_18800009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout,
- const VkClearDepthStencilValue *pDepthStencil, uint32_t rangeCount,
- const VkImageSubresourceRange *pRanges) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18a02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_18a0a001,
- VALIDATION_ERROR_18a00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
- const VkClearAttachment *pAttachments, uint32_t rectCount,
- const VkClearRect *pRects) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_18602401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkImageResolve *pRegions) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1c802401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1c807201,
- VALIDATION_ERROR_1c800009);
- skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, VALIDATION_ERROR_1c82ce01,
- VALIDATION_ERROR_1c800009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1d402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, event, kVulkanObjectTypeEvent, false, VALIDATION_ERROR_1d407e01,
- VALIDATION_ERROR_1d400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetEvent(commandBuffer, event, stageMask);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1c402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, event, kVulkanObjectTypeEvent, false, VALIDATION_ERROR_1c407e01,
- VALIDATION_ERROR_1c400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdResetEvent(commandBuffer, event, stageMask);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent *pEvents,
- VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask,
- uint32_t memoryBarrierCount, const VkMemoryBarrier *pMemoryBarriers,
- uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier *pBufferMemoryBarriers,
- uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier *pImageMemoryBarriers) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1e602401,
- VALIDATION_ERROR_UNDEFINED);
- if (pBufferMemoryBarriers) {
- for (uint32_t idx0 = 0; idx0 < bufferMemoryBarrierCount; ++idx0) {
- if (pBufferMemoryBarriers[idx0].buffer) {
- skip |= ValidateObject(commandBuffer, pBufferMemoryBarriers[idx0].buffer, kVulkanObjectTypeBuffer, false,
- VALIDATION_ERROR_1e610401, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- if (pEvents) {
- for (uint32_t idx1 = 0; idx1 < eventCount; ++idx1) {
- skip |= ValidateObject(commandBuffer, pEvents[idx1], kVulkanObjectTypeEvent, false, VALIDATION_ERROR_1e616001,
- VALIDATION_ERROR_1e600009);
- }
- }
- if (pImageMemoryBarriers) {
- for (uint32_t idx2 = 0; idx2 < imageMemoryBarrierCount; ++idx2) {
- if (pImageMemoryBarriers[idx2].image) {
- skip |= ValidateObject(commandBuffer, pImageMemoryBarriers[idx2].image, kVulkanObjectTypeImage, false,
- VALIDATION_ERROR_1e618a01, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers,
- bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
- VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
- uint32_t memoryBarrierCount, const VkMemoryBarrier *pMemoryBarriers,
- uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier *pBufferMemoryBarriers,
- uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier *pImageMemoryBarriers) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1b802401,
- VALIDATION_ERROR_UNDEFINED);
- if (pBufferMemoryBarriers) {
- for (uint32_t idx0 = 0; idx0 < bufferMemoryBarrierCount; ++idx0) {
- if (pBufferMemoryBarriers[idx0].buffer) {
- skip |= ValidateObject(commandBuffer, pBufferMemoryBarriers[idx0].buffer, kVulkanObjectTypeBuffer, false,
- VALIDATION_ERROR_1b810401, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- if (pImageMemoryBarriers) {
- for (uint32_t idx1 = 0; idx1 < imageMemoryBarrierCount; ++idx1) {
- if (pImageMemoryBarriers[idx1].image) {
- skip |= ValidateObject(commandBuffer, pImageMemoryBarriers[idx1].image, kVulkanObjectTypeImage, false,
- VALIDATION_ERROR_1b818a01, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers,
- bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query,
- VkQueryControlFlags flags) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_17802401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_17829801,
- VALIDATION_ERROR_17800009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdBeginQuery(commandBuffer, queryPool, query, flags);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1ae02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_1ae29801,
- VALIDATION_ERROR_1ae00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdEndQuery(commandBuffer, queryPool, query);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery,
- uint32_t queryCount) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1c602401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_1c629801,
- VALIDATION_ERROR_1c600009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage,
- VkQueryPool queryPool, uint32_t query) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1e802401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_1e829801,
- VALIDATION_ERROR_1e800009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery,
- uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset,
- VkDeviceSize stride, VkQueryResultFlags flags) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19402401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_19406c01,
- VALIDATION_ERROR_19400009);
- skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, VALIDATION_ERROR_19429801,
- VALIDATION_ERROR_19400009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags,
- uint32_t offset, uint32_t size, const void *pValues) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1bc02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, VALIDATION_ERROR_1bc0be01,
- VALIDATION_ERROR_1bc00009);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo *pRenderPassBegin,
- VkSubpassContents contents) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_17a02401,
- VALIDATION_ERROR_UNDEFINED);
- if (pRenderPassBegin) {
- skip |= ValidateObject(commandBuffer, pRenderPassBegin->framebuffer, kVulkanObjectTypeFramebuffer, false,
- VALIDATION_ERROR_12009401, VALIDATION_ERROR_12000009);
- skip |= ValidateObject(commandBuffer, pRenderPassBegin->renderPass, kVulkanObjectTypeRenderPass, false,
- VALIDATION_ERROR_1202ae01, VALIDATION_ERROR_12000009);
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1b602401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdNextSubpass(commandBuffer, contents);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1b002401,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdEndRenderPass(commandBuffer);
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount,
- const VkCommandBuffer *pCommandBuffers) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1b202401,
- VALIDATION_ERROR_UNDEFINED);
- if (pCommandBuffers) {
- for (uint32_t idx0 = 0; idx0 < commandBufferCount; ++idx0) {
- skip |= ValidateObject(commandBuffer, pCommandBuffers[idx0], kVulkanObjectTypeCommandBuffer, false,
- VALIDATION_ERROR_1b211401, VALIDATION_ERROR_1b200009);
- }
- }
- }
- if (skip) {
- return;
- }
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_26c0bc01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(instance, surface, kVulkanObjectTypeSurfaceKHR, true, VALIDATION_ERROR_26c2ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return;
- }
- {
- std::lock_guard<std::mutex> lock(global_lock);
- DestroyObject(instance, surface, kVulkanObjectTypeSurfaceKHR, pAllocator, VALIDATION_ERROR_26c009e6,
- VALIDATION_ERROR_26c009e8);
- }
- get_dispatch_table(ot_instance_table_map, instance)->DestroySurfaceKHR(instance, surface, pAllocator);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
- VkSurfaceKHR surface, VkBool32 *pSupported) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2ee27a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, VALIDATION_ERROR_2ee2ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
- VkSurfaceCapabilitiesKHR *pSurfaceCapabilities) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2e627a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, VALIDATION_ERROR_2e62ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
- uint32_t *pSurfaceFormatCount,
- VkSurfaceFormatKHR *pSurfaceFormats) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2ea27a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, VALIDATION_ERROR_2ea2ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
- uint32_t *pPresentModeCount,
- VkPresentModeKHR *pPresentModes) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2ec27a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, VALIDATION_ERROR_2ec2ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22a05601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfo) {
- skip |= ValidateObject(device, pCreateInfo->oldSwapchain, kVulkanObjectTypeSwapchainKHR, true,
- VALIDATION_ERROR_1460de01, VALIDATION_ERROR_UNDEFINED);
- layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- skip |= ValidateObject(device_data->physical_device, pCreateInfo->surface, kVulkanObjectTypeSurfaceKHR, false,
- VALIDATION_ERROR_1462ec01, VALIDATION_ERROR_UNDEFINED);
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_device_table_map, device)->CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pSwapchain, kVulkanObjectTypeSwapchainKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout,
- VkSemaphore semaphore, VkFence fence, uint32_t *pImageIndex) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_16405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, true, VALIDATION_ERROR_16408801, VALIDATION_ERROR_16408807);
- skip |= ValidateObject(device, semaphore, kVulkanObjectTypeSemaphore, true, VALIDATION_ERROR_1642b801,
- VALIDATION_ERROR_1642b807);
- skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_1642f001,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)
- ->AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (pPresentInfo) {
- if (pPresentInfo->pSwapchains) {
- for (uint32_t idx0 = 0; idx0 < pPresentInfo->swapchainCount; ++idx0) {
- skip |= ValidateObject(queue, pPresentInfo->pSwapchains[idx0], kVulkanObjectTypeSwapchainKHR, false,
- VALIDATION_ERROR_11225801, VALIDATION_ERROR_UNDEFINED);
- }
- }
- if (pPresentInfo->pWaitSemaphores) {
- for (uint32_t idx1 = 0; idx1 < pPresentInfo->waitSemaphoreCount; ++idx1) {
- skip |= ValidateObject(queue, pPresentInfo->pWaitSemaphores[idx1], kVulkanObjectTypeSemaphore, false,
- VALIDATION_ERROR_11227601, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, VALIDATION_ERROR_31829c01, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, queue)->QueuePresentKHR(queue, pPresentInfo);
- return result;
-}
-
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_2300bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,
- uint32_t queueFamilyIndex) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2f227a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_FALSE;
- }
- VkBool32 result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
- return result;
-}
-#endif // VK_USE_PLATFORM_WIN32_KHR
-
-#ifdef VK_USE_PLATFORM_XCB_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateXcbSurfaceKHR(VkInstance instance, const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_2320bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,
- uint32_t queueFamilyIndex, xcb_connection_t *connection,
- xcb_visualid_t visual_id) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2f427a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_FALSE;
- }
- VkBool32 result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
- return result;
-}
-#endif // VK_USE_PLATFORM_XCB_KHR
-
-#ifdef VK_USE_PLATFORM_XLIB_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR(VkInstance instance, const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_2340bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,
- uint32_t queueFamilyIndex, Display *dpy,
- VisualID visualID) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2f627a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_FALSE;
- }
- VkBool32 result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
- return result;
-}
-#endif // VK_USE_PLATFORM_XLIB_KHR
-
-#ifdef VK_USE_PLATFORM_MIR_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateMirSurfaceKHR(VkInstance instance, const VkMirSurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_2160bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceMirPresentationSupportKHR(VkPhysicalDevice physicalDevice,
- uint32_t queueFamilyIndex, MirConnection *connection) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2d227a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_FALSE;
- }
- VkBool32 result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
- return result;
-}
-#endif // VK_USE_PLATFORM_MIR_KHR
-
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateWaylandSurfaceKHR(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_22e0bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,
- uint32_t queueFamilyIndex,
- struct wl_display *display) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2f027a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_FALSE;
- }
- VkBool32 result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
- return result;
-}
-#endif // VK_USE_PLATFORM_WAYLAND_KHR
-
-#ifdef VK_USE_PLATFORM_ANDROID_KHR
-VKAPI_ATTR VkResult VKAPI_CALL CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_1ea0bc01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-#endif // VK_USE_PLATFORM_ANDROID_KHR
-
-#ifdef VK_USE_PLATFORM_IOS_MVK
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(VkInstance instance, const VkIOSSurfaceCreateInfoMVK *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
- if (result == VK_SUCCESS) {
- std::lock_guard<std::mutex> lock(global_lock);
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- return result;
-}
-#endif // VK_USE_PLATFORM_IOS_MVK
-
-#ifdef VK_USE_PLATFORM_MACOS_MVK
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
- if (result == VK_SUCCESS) {
- std::lock_guard<std::mutex> lock(global_lock);
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- return result;
-}
-#endif // VK_USE_PLATFORM_MACOS_MVK
-
-#ifdef VK_USE_PLATFORM_VI_NN
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(VkInstance instance, const VkViSurfaceCreateInfoNN *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result =
- get_dispatch_table(ot_instance_table_map, instance)->CreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
- if (result == VK_SUCCESS) {
- std::lock_guard<std::mutex> lock(global_lock);
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- return result;
-}
-#endif // VK_USE_PLATFORM_VI_NN
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateSharedSwapchainsKHR(VkDevice device, uint32_t swapchainCount,
- const VkSwapchainCreateInfoKHR *pCreateInfos,
- const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchains) {
- bool skip = false;
- uint32_t i = 0;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_22805601, VALIDATION_ERROR_UNDEFINED);
- if (NULL != pCreateInfos) {
- for (i = 0; i < swapchainCount; i++) {
- skip |= ValidateObject(device, pCreateInfos[i].oldSwapchain, kVulkanObjectTypeSwapchainKHR, true,
- VALIDATION_ERROR_1460de01, VALIDATION_ERROR_UNDEFINED);
- layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- skip |= ValidateObject(device_data->physical_device, pCreateInfos[i].surface, kVulkanObjectTypeSurfaceKHR, false,
- VALIDATION_ERROR_1462ec01, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)
- ->CreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- for (i = 0; i < swapchainCount; i++) {
- CreateObject(device, pSwapchains[i], kVulkanObjectTypeSwapchainKHR, pAllocator);
- }
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
-
-VKAPI_ATTR void VKAPI_CALL FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks *pAllocator) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_28805601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, true, VALIDATION_ERROR_2880c601, VALIDATION_ERROR_2880c607);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, device)->FreeMemory(device, memory, pAllocator);
-
- lock.lock();
- DestroyObject(device, memory, kVulkanObjectTypeDeviceMemory, pAllocator, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size,
- VkMemoryMapFlags flags, void **ppData) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_31205601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_3120c601, VALIDATION_ERROR_3120c607);
- lock.unlock();
- if (skip == VK_TRUE) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->MapMemory(device, memory, offset, size, flags, ppData);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL UnmapMemory(VkDevice device, VkDeviceMemory memory) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_33605601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_3360c601, VALIDATION_ERROR_3360c607);
- lock.unlock();
- if (skip == VK_TRUE) {
- return;
- }
-
- get_dispatch_table(ot_device_table_map, device)->UnmapMemory(device, memory);
-}
-VKAPI_ATTR VkResult VKAPI_CALL QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo *pBindInfo,
- VkFence fence) {
- std::unique_lock<std::mutex> lock(global_lock);
- ValidateQueueFlags(queue, "QueueBindSparse");
-
- ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, VALIDATION_ERROR_31629c01, VALIDATION_ERROR_UNDEFINED);
- ValidateObject(queue, fence, kVulkanObjectTypeFence, true, VALIDATION_ERROR_31608801, VALIDATION_ERROR_31600009);
-
- for (uint32_t i = 0; i < bindInfoCount; i++) {
- for (uint32_t j = 0; j < pBindInfo[i].bufferBindCount; j++) {
- ValidateObject(queue, pBindInfo[i].pBufferBinds[j].buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_01210201,
- VALIDATION_ERROR_UNDEFINED);
- }
- for (uint32_t j = 0; j < pBindInfo[i].imageOpaqueBindCount; j++) {
- ValidateObject(queue, pBindInfo[i].pImageOpaqueBinds[j].image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_01218c01,
- VALIDATION_ERROR_UNDEFINED);
- }
- for (uint32_t j = 0; j < pBindInfo[i].imageBindCount; j++) {
- ValidateObject(queue, pBindInfo[i].pImageBinds[j].image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_01218001,
- VALIDATION_ERROR_UNDEFINED);
- }
- for (uint32_t j = 0; j < pBindInfo[i].waitSemaphoreCount; j++) {
- ValidateObject(queue, pBindInfo[i].pWaitSemaphores[j], kVulkanObjectTypeSemaphore, false, VALIDATION_ERROR_01227601,
- VALIDATION_ERROR_01200009);
- }
- for (uint32_t j = 0; j < pBindInfo[i].signalSemaphoreCount; j++) {
- ValidateObject(queue, pBindInfo[i].pSignalSemaphores[j], kVulkanObjectTypeSemaphore, false, VALIDATION_ERROR_01223401,
- VALIDATION_ERROR_01200009);
- }
- }
- lock.unlock();
-
- VkResult result = get_dispatch_table(ot_device_table_map, queue)->QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
- const VkGraphicsPipelineCreateInfo *pCreateInfos,
- const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_20805601, VALIDATION_ERROR_UNDEFINED);
- if (pCreateInfos) {
- for (uint32_t idx0 = 0; idx0 < createInfoCount; ++idx0) {
- if (pCreateInfos[idx0].basePipelineHandle) {
- skip |= ValidateObject(device, pCreateInfos[idx0].basePipelineHandle, kVulkanObjectTypePipeline, true,
- VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_09600009);
- }
- if (pCreateInfos[idx0].layout) {
- skip |= ValidateObject(device, pCreateInfos[idx0].layout, kVulkanObjectTypePipelineLayout, false,
- VALIDATION_ERROR_0960be01, VALIDATION_ERROR_09600009);
- }
- if (pCreateInfos[idx0].pStages) {
- for (uint32_t idx1 = 0; idx1 < pCreateInfos[idx0].stageCount; ++idx1) {
- if (pCreateInfos[idx0].pStages[idx1].module) {
- skip |= ValidateObject(device, pCreateInfos[idx0].pStages[idx1].module, kVulkanObjectTypeShaderModule,
- false, VALIDATION_ERROR_1060d201, VALIDATION_ERROR_UNDEFINED);
- }
- }
- }
- if (pCreateInfos[idx0].renderPass) {
- skip |= ValidateObject(device, pCreateInfos[idx0].renderPass, kVulkanObjectTypeRenderPass, false,
- VALIDATION_ERROR_0962ae01, VALIDATION_ERROR_09600009);
- }
- }
- }
- if (pipelineCache) {
- skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, VALIDATION_ERROR_20828001,
- VALIDATION_ERROR_20828007);
- }
- lock.unlock();
- if (skip) {
- for (uint32_t i = 0; i < createInfoCount; i++) {
- pPipelines[i] = VK_NULL_HANDLE;
- }
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)
- ->CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
- lock.lock();
- for (uint32_t idx2 = 0; idx2 < createInfoCount; ++idx2) {
- if (pPipelines[idx2] != VK_NULL_HANDLE) {
- CreateObject(device, pPipelines[idx2], kVulkanObjectTypePipeline, pAllocator);
- }
- }
- lock.unlock();
- return result;
-}
-
-
-// VK_KHR_display Extension
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
- VkDisplayPropertiesKHR *pProperties) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2b827a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
- VkDisplayPlanePropertiesKHR *pProperties) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2b627a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice, uint32_t planeIndex,
- uint32_t *pDisplayCount, VkDisplayKHR *pDisplays) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_29c27a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
- if (((result == VK_SUCCESS) || (result == VK_INCOMPLETE)) && (pDisplays != NULL)) {
- std::lock_guard<std::mutex> lock(global_lock);
- for (uint32_t displays = 0; displays < *pDisplayCount; displays++) {
- CreateObject(physicalDevice, pDisplays[displays], kVulkanObjectTypeDisplayKHR, nullptr);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
- uint32_t *pPropertyCount, VkDisplayModePropertiesKHR *pProperties) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_29827a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, VALIDATION_ERROR_29806001,
- VALIDATION_ERROR_UNDEFINED);
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
-
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayModeKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
- const VkDisplayModeCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkDisplayModeKHR *pMode) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_1fe27a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, VALIDATION_ERROR_1fe06001,
- VALIDATION_ERROR_UNDEFINED);
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->CreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(physicalDevice, *pMode, kVulkanObjectTypeDisplayModeKHR, pAllocator);
- }
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode,
- uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR *pCapabilities) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_29a27a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, mode, kVulkanObjectTypeDisplayModeKHR, false, VALIDATION_ERROR_29a0ce01,
- VALIDATION_ERROR_UNDEFINED);
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
-
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_2000bc01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(instance, pCreateInfo->displayMode, kVulkanObjectTypeDisplayModeKHR, false,
- VALIDATION_ERROR_07806401, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, instance)
- ->CreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (result == VK_SUCCESS) {
- CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
- }
- }
- return result;
-}
-
-// VK_KHR_get_physical_device_properties2 Extension
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR *pFeatures) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)->GetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
- VkPhysicalDeviceProperties2KHR *pProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)->GetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
- VkFormatProperties2KHR *pFormatProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR(
- VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo,
- VkImageFormatProperties2KHR *pImageFormatProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
-
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,
- VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR(
- VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo, uint32_t *pPropertyCount,
- VkSparseImageFormatProperties2KHR *pProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
- }
-}
-
-// VK_KHR_descriptor_update_template
-VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(VkDevice device,
- const VkDescriptorUpdateTemplateCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator,
- VkDescriptorUpdateTemplateKHR *pDescriptorUpdateTemplate) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_1fa05601, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = VK_SUCCESS;
- result = dev_data->dispatch_table.CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
- if (result == VK_SUCCESS) {
- CreateObject(device, *pDescriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplateKHR, pAllocator);
- }
-
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(VkDevice device,
- VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_24805601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplateKHR, false,
- VALIDATION_ERROR_24805201, VALIDATION_ERROR_24805207);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
- DestroyObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplateKHR, pAllocator,
- VALIDATION_ERROR_248002c8, VALIDATION_ERROR_248002ca);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet,
- VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
- const void *pData) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_33a05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, descriptorSet, kVulkanObjectTypeDescriptorSet, false, VALIDATION_ERROR_33a04801,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplateKHR, false,
- VALIDATION_ERROR_33a05201, VALIDATION_ERROR_33a05207);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,
- VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
- VkPipelineLayout layout, uint32_t set, const void *pData) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1c002401,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, VALIDATION_ERROR_1c00be01,
- VALIDATION_ERROR_1c000009);
- skip |= ValidateObject(commandBuffer, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplateKHR, false,
- VALIDATION_ERROR_1c005201, VALIDATION_ERROR_1c000009);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- dev_data->dispatch_table.CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
- }
-}
-
-// VK_KHR_external_fence_capabilities Extension
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFencePropertiesKHR(
- VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR *pExternalFenceInfo,
- VkExternalFencePropertiesKHR *pExternalFenceProperties) {
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
- }
-}
-
-// VK_KHR_external_memory_capabilities Extension
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferPropertiesKHR(
- VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR *pExternalBufferInfo,
- VkExternalBufferPropertiesKHR *pExternalBufferProperties) {
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
- }
-}
-
-// VK_KHR_external_memory_fd Extension
-VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(VkDevice device, const VkMemoryGetFdInfoKHR *pGetFdInfo, int *pFd) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetFdInfo->memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetMemoryFdKHR(device, pGetFdInfo, pFd);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd,
- VkMemoryFdPropertiesKHR *pMemoryFdProperties) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
- return result;
-}
-
-// VK_KHR_external_fence_fd extension
-
-VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(VkDevice device, const VkImportFenceFdInfoKHR *pImportFenceFdInfo) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pImportFenceFdInfo->fence, kVulkanObjectTypeFence, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->ImportFenceFdKHR(device, pImportFenceFdInfo);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(VkDevice device, const VkFenceGetFdInfoKHR *pGetFdInfo, int *pFd) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetFdInfo->fence, kVulkanObjectTypeFence, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetFenceFdKHR(device, pGetFdInfo, pFd);
- return result;
-}
-
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-// VK_KHR_external_fence_win32 extension
-
-VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(VkDevice device,
- const VkImportFenceWin32HandleInfoKHR *pImportFenceWin32HandleInfo) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pImportFenceWin32HandleInfo->fence, kVulkanObjectTypeFence, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(VkDevice device, const VkFenceGetWin32HandleInfoKHR *pGetWin32HandleInfo,
- HANDLE *pHandle) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetWin32HandleInfo->fence, kVulkanObjectTypeFence, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
- return result;
-}
-
-#endif // VK_USE_PLATFORM_WIN32_KHR
-
-// VK_KHR_external_memory_win32 Extension
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo,
- HANDLE *pHandle) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetWin32HandleInfo->memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType,
- HANDLE handle,
- VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)
- ->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
- return result;
-}
-#endif // VK_USE_PLATFORM_WIN32_KHR
-
-// VK_KHR_external_semaphore_capabilities Extension
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphorePropertiesKHR(
- VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR *pExternalSemaphoreInfo,
- VkExternalSemaphorePropertiesKHR *pExternalSemaphoreProperties) {
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
- }
-}
-
-// VK_KHR_external_semaphore_fd Extension
-VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(VkDevice device, const VkImportSemaphoreFdInfoKHR *pImportSemaphoreFdInfo) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(VkDevice device, const VkSemaphoreGetFdInfoKHR *pGetFdInfo, int *pFd) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetFdInfo->semaphore, kVulkanObjectTypeSemaphore, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
- return result;
-}
-
-// VK_KHR_external_semaphore_win32 Extension
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-VKAPI_ATTR VkResult VKAPI_CALL
-ImportSemaphoreWin32HandleKHR(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR *pImportSemaphoreWin32HandleInfo) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pImportSemaphoreWin32HandleInfo->semaphore, kVulkanObjectTypeSemaphore, false,
- VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result =
- get_dispatch_table(ot_device_table_map, device)->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(VkDevice device,
- const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo,
- HANDLE *pHandle) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pGetWin32HandleInfo->semaphore, kVulkanObjectTypeSemaphore, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
- return result;
-}
-#endif // VK_USE_PLATFORM_WIN32_KHR
-
-// VK_KHR_get_memory_requirements2
-VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(VkDevice device, const VkImageMemoryRequirementsInfo2KHR *pInfo,
- VkMemoryRequirements2KHR *pMemoryRequirements) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR *pInfo,
- VkMemoryRequirements2KHR *pMemoryRequirements) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, pInfo->buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(VkDevice device,
- const VkImageSparseMemoryRequirementsInfo2KHR *pInfo,
- uint32_t *pSparseMemoryRequirementCount,
- VkSparseImageMemoryRequirements2KHR *pSparseMemoryRequirements) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount,
- pSparseMemoryRequirements);
- }
-}
-
-// VK_KHR_maintenance1 Extension
-VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, commandPool, kVulkanObjectTypeCommandPool, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.TrimCommandPoolKHR(device, commandPool, flags);
- }
-}
-
-// VK_KHR_push_descriptor Extension
-VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
- VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount,
- const VkWriteDescriptorSet *pDescriptorWrites) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
- }
-}
-
-// VK_KHX_device_group Extension
-VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHX(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex,
- uint32_t remoteDeviceIndex,
- VkPeerMemoryFeatureFlagsKHX *pPeerMemoryFeatures) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, device)
- ->GetDeviceGroupPeerMemoryFeaturesKHX(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHX(VkDevice device, uint32_t bindInfoCount,
- const VkBindBufferMemoryInfoKHX *pBindInfos) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->BindBufferMemory2KHX(device, bindInfoCount, pBindInfos);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHX(VkDevice device, uint32_t bindInfoCount,
- const VkBindImageMemoryInfoKHX *pBindInfos) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->BindImageMemory2KHX(device, bindInfoCount, pBindInfos);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHX(VkCommandBuffer commandBuffer, uint32_t deviceMask) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, commandBuffer)->CmdSetDeviceMaskKHX(commandBuffer, deviceMask);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL
-GetDeviceGroupPresentCapabilitiesKHX(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX *pDeviceGroupPresentCapabilities) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)
- ->GetDeviceGroupPresentCapabilitiesKHX(device, pDeviceGroupPresentCapabilities);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModesKHX(VkDevice device, VkSurfaceKHR surface,
- VkDeviceGroupPresentModeFlagsKHX *pModes) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->GetDeviceGroupSurfacePresentModesKHX(device, surface, pModes);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImage2KHX(VkDevice device, const VkAcquireNextImageInfoKHX *pAcquireInfo,
- uint32_t *pImageIndex) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = VK_SUCCESS;
- result = get_dispatch_table(ot_device_table_map, device)->AcquireNextImage2KHX(device, pAcquireInfo, pImageIndex);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHX(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
- uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
- uint32_t groupCountZ) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDispatchBaseKHX(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDevicePresentRectanglesKHX(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
- uint32_t *pRectCount, VkRect2D *pRects) {
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDevicePresentRectanglesKHX(physicalDevice, surface, pRectCount, pRects);
- }
-}
-
-// VK_KHX_device_group_creation Extension
-VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHX(
- VkInstance instance, uint32_t *pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX *pPhysicalDeviceGroupProperties) {
- bool skip = false;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, instance)
- ->EnumeratePhysicalDeviceGroupsKHX(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
- {
- lock.lock();
- if (result == VK_SUCCESS) {
- if (nullptr != pPhysicalDeviceGroupProperties) {
- // NOTE: Each physical device should only appear in one group
- for (uint32_t i = 0; i < *pPhysicalDeviceGroupCount; i++) {
- for (uint32_t j = 0; j < pPhysicalDeviceGroupProperties[i].physicalDeviceCount; j++) {
- CreateObject(instance, pPhysicalDeviceGroupProperties[i].physicalDevices[j],
- kVulkanObjectTypePhysicalDevice, nullptr);
- }
- }
- }
- }
- lock.unlock();
- }
- return result;
-}
-
-// VK_EXT_acquire_xlib_display Extension
-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
-VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, VkDisplayKHR display) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)->AcquireXlibDisplayEXT(physicalDevice, dpy, display);
-
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, RROutput rrOutput,
- VkDisplayKHR *pDisplay) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
- if (result == VK_SUCCESS && pDisplay != NULL) {
- std::lock_guard<std::mutex> lock(global_lock);
- CreateObject(physicalDevice, pDisplay, kVulkanObjectTypeDisplayKHR, nullptr);
- }
-
- return result;
-}
-#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
-
-// VK_EXT_debug_marker Extension
-VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_23805601, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.DebugMarkerSetObjectTagEXT(device, pTagInfo);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT *pMarkerInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19602401,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdDebugMarkerBeginEXT) {
- dev_data->dispatch_table.CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19802401,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdDebugMarkerEndEXT) {
- dev_data->dispatch_table.CmdDebugMarkerEndEXT(commandBuffer);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT *pMarkerInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_19a02401,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdDebugMarkerInsertEXT) {
- dev_data->dispatch_table.CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
- }
-}
-
-// VK_EXT_direct_mode_display Extension
-VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)->ReleaseDisplayEXT(physicalDevice, display);
-
- return result;
-}
-
-// VK_EXT_discard_rectangles
-VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle,
- uint32_t discardRectangleCount, const VkRect2D *pDiscardRectangles) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdSetDiscardRectangleEXT) {
- dev_data->dispatch_table.CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount,
- pDiscardRectangles);
- }
-}
-
-// VK_EXT_display_control Extension
-VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(VkDevice device, VkDisplayKHR display,
- const VkDisplayPowerInfoEXT *pDisplayPowerInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(VkDevice device, const VkDeviceEventInfoEXT *pDeviceEventInfo,
- const VkAllocationCallbacks *pAllocator, VkFence *pFence) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
- if (result == VK_SUCCESS && pFence != NULL) {
- std::lock_guard<std::mutex> create_lock(global_lock);
- CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(VkDevice device, VkDisplayKHR display,
- const VkDisplayEventInfoEXT *pDisplayEventInfo,
- const VkAllocationCallbacks *pAllocator, VkFence *pFence) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
- if (result == VK_SUCCESS && pFence != NULL) {
- std::lock_guard<std::mutex> create_lock(global_lock);
- CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(VkDevice device, VkSwapchainKHR swapchain,
- VkSurfaceCounterFlagBitsEXT counter, uint64_t *pCounterValue) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
- return result;
-}
-
-// VK_EXT_display_surface_counter Extension
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
- VkSurfaceCapabilities2EXT *pSurfaceCapabilities) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
-
- return result;
-}
-
-// VK_AMD_draw_indirect_count Extension
-VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
- VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
- uint32_t stride) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1ac02401,
- VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1ac01a01, VALIDATION_ERROR_1ac00009);
- skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1ac03401,
- VALIDATION_ERROR_1ac00009);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
- VkBuffer countBuffer, VkDeviceSize countBufferOffset,
- uint32_t maxDrawCount, uint32_t stride) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_1a802401,
- VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1a801a01, VALIDATION_ERROR_1a800009);
- skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, VALIDATION_ERROR_1a803401,
- VALIDATION_ERROR_1a800009);
- lock.unlock();
- if (!skip) {
- get_dispatch_table(ot_device_table_map, commandBuffer)
- ->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
- }
-}
-
-// VK_NV_clip_space_w_scaling Extension
-VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount,
- const VkViewportWScalingNV *pViewportWScalings) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdSetViewportWScalingNV) {
- dev_data->dispatch_table.CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
- }
-}
-
-// VK_NV_external_memory_capabilities Extension
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV(
- VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage,
- VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType,
- VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2bc27a01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags,
- externalHandleType, pExternalImageFormatProperties);
- return result;
-}
-
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-// VK_NV_external_memory_win32 Extension
-VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(VkDevice device, VkDeviceMemory memory,
- VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE *pHandle) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2b005601, VALIDATION_ERROR_UNDEFINED);
- skip |=
- ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, VALIDATION_ERROR_2b00c601, VALIDATION_ERROR_2b00c607);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
- return result;
-}
-#endif // VK_USE_PLATFORM_WIN32_KHR
-
-// VK_NVX_device_generated_commands Extension
-VKAPI_ATTR void VKAPI_CALL CmdProcessCommandsNVX(VkCommandBuffer commandBuffer,
- const VkCmdProcessCommandsInfoNVX *pProcessCommandsInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdProcessCommandsNVX) {
- dev_data->dispatch_table.CmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
- }
-}
-
-VKAPI_ATTR void VKAPI_CALL CmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,
- const VkCmdReserveSpaceForCommandsInfoNVX *pReserveSpaceInfo) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
- if (!skip && dev_data->dispatch_table.CmdReserveSpaceForCommandsNVX) {
- dev_data->dispatch_table.CmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNVX(VkDevice device,
- const VkIndirectCommandsLayoutCreateInfoNVX *pCreateInfo,
- const VkAllocationCallbacks *pAllocator,
- VkIndirectCommandsLayoutNVX *pIndirectCommandsLayout) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result =
- dev_data->dispatch_table.CreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNVX(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.DestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL CreateObjectTableNVX(VkDevice device, const VkObjectTableCreateInfoNVX *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkObjectTableNVX *pObjectTable) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result = dev_data->dispatch_table.CreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL DestroyObjectTableNVX(VkDevice device, VkObjectTableNVX objectTable,
- const VkAllocationCallbacks *pAllocator) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (!skip) {
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- dev_data->dispatch_table.DestroyObjectTableNVX(device, objectTable, pAllocator);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL RegisterObjectsNVX(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount,
- const VkObjectTableEntryNVX *const *ppObjectTableEntries,
- const uint32_t *pObjectIndices) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result =
- dev_data->dispatch_table.RegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL UnregisterObjectsNVX(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount,
- const VkObjectEntryTypeNVX *pObjectEntryTypes, const uint32_t *pObjectIndices) {
- bool skip = VK_FALSE;
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- VkResult result =
- dev_data->dispatch_table.UnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceGeneratedCommandsPropertiesNVX(VkPhysicalDevice physicalDevice,
- VkDeviceGeneratedCommandsFeaturesNVX *pFeatures,
- VkDeviceGeneratedCommandsLimitsNVX *pLimits) {
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(VkDevice device, VkSwapchainKHR swapchain,
- uint32_t *pPresentationTimingCount,
- VkPastPresentationTimingGOOGLE *pPresentationTimings) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2b405601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_2b42f001,
- VALIDATION_ERROR_UNDEFINED);
- }
-
- if (!skip) {
- result = get_dispatch_table(ot_device_table_map, device)
- ->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
- }
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(VkDevice device, VkSwapchainKHR swapchain,
- VkRefreshCycleDurationGOOGLE *pDisplayTimingProperties) {
- VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
- bool skip = false;
- {
- std::unique_lock<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_2fe05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_2fe2f001,
- VALIDATION_ERROR_UNDEFINED);
- }
-
- if (!skip) {
- result = get_dispatch_table(ot_device_table_map, device)
- ->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
- }
- return result;
-}
-
-VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR *pSwapchains,
- const VkHdrMetadataEXT *pMetadata) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- if (pSwapchains) {
- for (uint32_t idx0 = 0; idx0 < swapchainCount; ++idx0) {
- skip |= ValidateObject(device, pSwapchains[idx0], kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_UNDEFINED,
- VALIDATION_ERROR_UNDEFINED);
- }
- }
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- }
- if (!skip) {
- get_dispatch_table(ot_device_table_map, device)->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
- }
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(VkDevice device, VkSwapchainKHR swapchain) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |=
- ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_30a05601, VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_30a2f001,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_device_table_map, device)->GetSwapchainStatusKHR(device, swapchain);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,
- const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
- VkSurfaceCapabilities2KHR *pSurfaceCapabilities) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2e427a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false, VALIDATION_ERROR_0ee2ec01,
- VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
- return result;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
- const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
- uint32_t *pSurfaceFormatCount,
- VkSurfaceFormat2KHR *pSurfaceFormats) {
- bool skip = false;
- {
- std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, VALIDATION_ERROR_2e827a01,
- VALIDATION_ERROR_UNDEFINED);
- skip |= ValidateObject(physicalDevice, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false,
- VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED);
- }
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
- VkResult result = get_dispatch_table(ot_instance_table_map, physicalDevice)
- ->GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
- return result;
-}
-
-// Map of all APIs to be intercepted by this layer
-const std::unordered_map<std::string, void *> name_to_funcptr_map = {
- {"vkGetDeviceProcAddr", (void *)GetDeviceProcAddr},
- {"vkDestroyDevice", (void *)DestroyDevice},
- {"vkGetDeviceQueue", (void *)GetDeviceQueue},
- {"vkQueueSubmit", (void *)QueueSubmit},
- {"vkQueueWaitIdle", (void *)QueueWaitIdle},
- {"vkDeviceWaitIdle", (void *)DeviceWaitIdle},
- {"vkAllocateMemory", (void *)AllocateMemory},
- {"vkFreeMemory", (void *)FreeMemory},
- {"vkMapMemory", (void *)MapMemory},
- {"vkUnmapMemory", (void *)UnmapMemory},
- {"vkFlushMappedMemoryRanges", (void *)FlushMappedMemoryRanges},
- {"vkInvalidateMappedMemoryRanges", (void *)InvalidateMappedMemoryRanges},
- {"vkGetDeviceMemoryCommitment", (void *)GetDeviceMemoryCommitment},
- {"vkBindBufferMemory", (void *)BindBufferMemory},
- {"vkBindImageMemory", (void *)BindImageMemory},
- {"vkGetBufferMemoryRequirements", (void *)GetBufferMemoryRequirements},
- {"vkGetImageMemoryRequirements", (void *)GetImageMemoryRequirements},
- {"vkGetImageSparseMemoryRequirements", (void *)GetImageSparseMemoryRequirements},
- {"vkQueueBindSparse", (void *)QueueBindSparse},
- {"vkCreateFence", (void *)CreateFence},
- {"vkDestroyFence", (void *)DestroyFence},
- {"vkResetFences", (void *)ResetFences},
- {"vkGetFenceStatus", (void *)GetFenceStatus},
- {"vkWaitForFences", (void *)WaitForFences},
- {"vkCreateSemaphore", (void *)CreateSemaphore},
- {"vkDestroySemaphore", (void *)DestroySemaphore},
- {"vkCreateEvent", (void *)CreateEvent},
- {"vkDestroyEvent", (void *)DestroyEvent},
- {"vkGetEventStatus", (void *)GetEventStatus},
- {"vkSetEvent", (void *)SetEvent},
- {"vkResetEvent", (void *)ResetEvent},
- {"vkCreateQueryPool", (void *)CreateQueryPool},
- {"vkDestroyQueryPool", (void *)DestroyQueryPool},
- {"vkGetQueryPoolResults", (void *)GetQueryPoolResults},
- {"vkCreateBuffer", (void *)CreateBuffer},
- {"vkDestroyBuffer", (void *)DestroyBuffer},
- {"vkCreateBufferView", (void *)CreateBufferView},
- {"vkDestroyBufferView", (void *)DestroyBufferView},
- {"vkCreateImage", (void *)CreateImage},
- {"vkDestroyImage", (void *)DestroyImage},
- {"vkGetImageSubresourceLayout", (void *)GetImageSubresourceLayout},
- {"vkCreateImageView", (void *)CreateImageView},
- {"vkDestroyImageView", (void *)DestroyImageView},
- {"vkCreateShaderModule", (void *)CreateShaderModule},
- {"vkDestroyShaderModule", (void *)DestroyShaderModule},
- {"vkCreatePipelineCache", (void *)CreatePipelineCache},
- {"vkDestroyPipelineCache", (void *)DestroyPipelineCache},
- {"vkGetPipelineCacheData", (void *)GetPipelineCacheData},
- {"vkMergePipelineCaches", (void *)MergePipelineCaches},
- {"vkCreateGraphicsPipelines", (void *)CreateGraphicsPipelines},
- {"vkCreateComputePipelines", (void *)CreateComputePipelines},
- {"vkDestroyPipeline", (void *)DestroyPipeline},
- {"vkCreatePipelineLayout", (void *)CreatePipelineLayout},
- {"vkDestroyPipelineLayout", (void *)DestroyPipelineLayout},
- {"vkCreateSampler", (void *)CreateSampler},
- {"vkDestroySampler", (void *)DestroySampler},
- {"vkCreateDescriptorSetLayout", (void *)CreateDescriptorSetLayout},
- {"vkDestroyDescriptorSetLayout", (void *)DestroyDescriptorSetLayout},
- {"vkCreateDescriptorPool", (void *)CreateDescriptorPool},
- {"vkDestroyDescriptorPool", (void *)DestroyDescriptorPool},
- {"vkResetDescriptorPool", (void *)ResetDescriptorPool},
- {"vkAllocateDescriptorSets", (void *)AllocateDescriptorSets},
- {"vkFreeDescriptorSets", (void *)FreeDescriptorSets},
- {"vkUpdateDescriptorSets", (void *)UpdateDescriptorSets},
- {"vkCreateFramebuffer", (void *)CreateFramebuffer},
- {"vkDestroyFramebuffer", (void *)DestroyFramebuffer},
- {"vkCreateRenderPass", (void *)CreateRenderPass},
- {"vkDestroyRenderPass", (void *)DestroyRenderPass},
- {"vkGetRenderAreaGranularity", (void *)GetRenderAreaGranularity},
- {"vkCreateCommandPool", (void *)CreateCommandPool},
- {"vkDestroyCommandPool", (void *)DestroyCommandPool},
- {"vkResetCommandPool", (void *)ResetCommandPool},
- {"vkAllocateCommandBuffers", (void *)AllocateCommandBuffers},
- {"vkFreeCommandBuffers", (void *)FreeCommandBuffers},
- {"vkBeginCommandBuffer", (void *)BeginCommandBuffer},
- {"vkEndCommandBuffer", (void *)EndCommandBuffer},
- {"vkResetCommandBuffer", (void *)ResetCommandBuffer},
- {"vkCmdBindPipeline", (void *)CmdBindPipeline},
- {"vkCmdSetViewport", (void *)CmdSetViewport},
- {"vkCmdSetScissor", (void *)CmdSetScissor},
- {"vkCmdSetLineWidth", (void *)CmdSetLineWidth},
- {"vkCmdSetDepthBias", (void *)CmdSetDepthBias},
- {"vkCmdSetBlendConstants", (void *)CmdSetBlendConstants},
- {"vkCmdSetDepthBounds", (void *)CmdSetDepthBounds},
- {"vkCmdSetStencilCompareMask", (void *)CmdSetStencilCompareMask},
- {"vkCmdSetStencilWriteMask", (void *)CmdSetStencilWriteMask},
- {"vkCmdSetStencilReference", (void *)CmdSetStencilReference},
- {"vkCmdBindDescriptorSets", (void *)CmdBindDescriptorSets},
- {"vkCmdBindIndexBuffer", (void *)CmdBindIndexBuffer},
- {"vkCmdBindVertexBuffers", (void *)CmdBindVertexBuffers},
- {"vkCmdDraw", (void *)CmdDraw},
- {"vkCmdDrawIndexed", (void *)CmdDrawIndexed},
- {"vkCmdDrawIndirect", (void *)CmdDrawIndirect},
- {"vkCmdDrawIndexedIndirect", (void *)CmdDrawIndexedIndirect},
- {"vkCmdDispatch", (void *)CmdDispatch},
- {"vkCmdDispatchIndirect", (void *)CmdDispatchIndirect},
- {"vkCmdCopyBuffer", (void *)CmdCopyBuffer},
- {"vkCmdCopyImage", (void *)CmdCopyImage},
- {"vkCmdBlitImage", (void *)CmdBlitImage},
- {"vkCmdCopyBufferToImage", (void *)CmdCopyBufferToImage},
- {"vkCmdCopyImageToBuffer", (void *)CmdCopyImageToBuffer},
- {"vkCmdUpdateBuffer", (void *)CmdUpdateBuffer},
- {"vkCmdFillBuffer", (void *)CmdFillBuffer},
- {"vkCmdClearColorImage", (void *)CmdClearColorImage},
- {"vkCmdClearDepthStencilImage", (void *)CmdClearDepthStencilImage},
- {"vkCmdClearAttachments", (void *)CmdClearAttachments},
- {"vkCmdResolveImage", (void *)CmdResolveImage},
- {"vkCmdSetEvent", (void *)CmdSetEvent},
- {"vkCmdResetEvent", (void *)CmdResetEvent},
- {"vkCmdWaitEvents", (void *)CmdWaitEvents},
- {"vkCmdPipelineBarrier", (void *)CmdPipelineBarrier},
- {"vkCmdBeginQuery", (void *)CmdBeginQuery},
- {"vkCmdEndQuery", (void *)CmdEndQuery},
- {"vkCmdResetQueryPool", (void *)CmdResetQueryPool},
- {"vkCmdWriteTimestamp", (void *)CmdWriteTimestamp},
- {"vkCmdCopyQueryPoolResults", (void *)CmdCopyQueryPoolResults},
- {"vkCmdPushConstants", (void *)CmdPushConstants},
- {"vkCmdBeginRenderPass", (void *)CmdBeginRenderPass},
- {"vkCmdNextSubpass", (void *)CmdNextSubpass},
- {"vkCmdEndRenderPass", (void *)CmdEndRenderPass},
- {"vkCmdExecuteCommands", (void *)CmdExecuteCommands},
- {"vkDebugMarkerSetObjectTagEXT", (void *)DebugMarkerSetObjectTagEXT},
- {"vkDebugMarkerSetObjectNameEXT", (void *)DebugMarkerSetObjectNameEXT},
- {"vkCmdDebugMarkerBeginEXT", (void *)CmdDebugMarkerBeginEXT},
- {"vkCmdDebugMarkerEndEXT", (void *)CmdDebugMarkerEndEXT},
- {"vkCmdDebugMarkerInsertEXT", (void *)CmdDebugMarkerInsertEXT},
- {"vkCmdDrawIndirectCountAMD", (void *)CmdDrawIndirectCountAMD},
- {"vkCmdDrawIndexedIndirectCountAMD", (void *)CmdDrawIndexedIndirectCountAMD},
- {"vkSetHdrMetadataEXT", (void *)SetHdrMetadataEXT},
- {"vkCreateInstance", (void *)CreateInstance},
- {"vkDestroyInstance", (void *)DestroyInstance},
- {"vkEnumeratePhysicalDevices", (void *)EnumeratePhysicalDevices},
- {"vk_layerGetPhysicalDeviceProcAddr", (void *)GetPhysicalDeviceProcAddr},
- {"vkGetPhysicalDeviceFeatures", (void *)GetPhysicalDeviceFeatures},
- {"vkGetPhysicalDeviceFormatProperties", (void *)GetPhysicalDeviceFormatProperties},
- {"vkGetPhysicalDeviceImageFormatProperties", (void *)GetPhysicalDeviceImageFormatProperties},
- {"vkGetPhysicalDeviceProperties", (void *)GetPhysicalDeviceProperties},
- {"vkGetPhysicalDeviceQueueFamilyProperties", (void *)GetPhysicalDeviceQueueFamilyProperties},
- {"vkGetPhysicalDeviceMemoryProperties", (void *)GetPhysicalDeviceMemoryProperties},
- {"vkGetInstanceProcAddr", (void *)GetInstanceProcAddr},
- {"vkCreateDevice", (void *)CreateDevice},
- {"vkEnumerateInstanceExtensionProperties", (void *)EnumerateInstanceExtensionProperties},
- {"vkEnumerateInstanceLayerProperties", (void *)EnumerateInstanceLayerProperties},
- {"vkEnumerateDeviceLayerProperties", (void *)EnumerateDeviceLayerProperties},
- {"vkGetPhysicalDeviceSparseImageFormatProperties", (void *)GetPhysicalDeviceSparseImageFormatProperties},
- {"vkGetPhysicalDeviceExternalImageFormatPropertiesNV", (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV},
- {"vkGetPhysicalDeviceFeatures2KHR", (void *)GetPhysicalDeviceFeatures2KHR},
- {"vkGetPhysicalDeviceProperties2KHR", (void *)GetPhysicalDeviceProperties2KHR},
- {"vkGetPhysicalDeviceFormatProperties2KHR", (void *)GetPhysicalDeviceFormatProperties2KHR},
- {"vkGetPhysicalDeviceImageFormatProperties2KHR", (void *)GetPhysicalDeviceImageFormatProperties2KHR},
- {"vkGetPhysicalDeviceQueueFamilyProperties2KHR", (void *)GetPhysicalDeviceQueueFamilyProperties2KHR},
- {"vkGetPhysicalDevicePresentRectanglesKHX", (void *)GetPhysicalDevicePresentRectanglesKHX},
- {"vkEnumeratePhysicalDeviceGroupsKHX", (void *)EnumeratePhysicalDeviceGroupsKHX},
- {"vkGetPhysicalDeviceExternalBufferPropertiesKHR", (void *)GetPhysicalDeviceExternalBufferPropertiesKHR},
- {"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", (void *)GetPhysicalDeviceExternalSemaphorePropertiesKHR},
- {"vkReleaseDisplayEXT", (void *)ReleaseDisplayEXT},
- {"vkGetPhysicalDeviceSurfaceCapabilities2EXT", (void *)GetPhysicalDeviceSurfaceCapabilities2EXT},
- {"vkCmdSetViewportWScalingNV", (void *)CmdSetViewportWScalingNV},
- {"vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX", (void *)GetPhysicalDeviceGeneratedCommandsPropertiesNVX},
- {"vkCreateDescriptorUpdateTemplateKHR", (void *)CreateDescriptorUpdateTemplateKHR},
- {"vkDestroyDescriptorUpdateTemplateKHR", (void *)DestroyDescriptorUpdateTemplateKHR},
- {"vkUpdateDescriptorSetWithTemplateKHR", (void *)UpdateDescriptorSetWithTemplateKHR},
- {"vkCmdPushDescriptorSetWithTemplateKHR", (void *)CmdPushDescriptorSetWithTemplateKHR},
- {"vkTrimCommandPoolKHR", (void *)TrimCommandPoolKHR},
- {"vkCmdPushDescriptorSetKHR", (void *)CmdPushDescriptorSetKHR},
- {"vkGetDeviceGroupPeerMemoryFeaturesKHX", (void *)GetDeviceGroupPeerMemoryFeaturesKHX},
- {"vkBindBufferMemory2KHX", (void *)BindBufferMemory2KHX},
- {"vkBindImageMemory2KHX", (void *)BindImageMemory2KHX},
- {"vkCmdSetDeviceMaskKHX", (void *)CmdSetDeviceMaskKHX},
- {"vkGetDeviceGroupPresentCapabilitiesKHX", (void *)GetDeviceGroupPresentCapabilitiesKHX},
- {"vkGetDeviceGroupSurfacePresentModesKHX", (void *)GetDeviceGroupSurfacePresentModesKHX},
- {"vkAcquireNextImage2KHX", (void *)AcquireNextImage2KHX},
- {"vkCmdDispatchBaseKHX", (void *)CmdDispatchBaseKHX},
- {"vkGetMemoryFdKHR", (void *)GetMemoryFdKHR},
- {"vkGetMemoryFdPropertiesKHR", (void *)GetMemoryFdPropertiesKHR},
- {"vkImportSemaphoreFdKHR", (void *)ImportSemaphoreFdKHR},
- {"vkGetSemaphoreFdKHR", (void *)GetSemaphoreFdKHR},
- {"vkCmdSetDiscardRectangleEXT", (void *)CmdSetDiscardRectangleEXT},
- {"vkDisplayPowerControlEXT", (void *)DisplayPowerControlEXT},
- {"vkRegisterDeviceEventEXT", (void *)RegisterDeviceEventEXT},
- {"vkRegisterDisplayEventEXT", (void *)RegisterDisplayEventEXT},
- {"vkGetSwapchainCounterEXT", (void *)GetSwapchainCounterEXT},
- {"vkCmdProcessCommandsNVX", (void *)CmdProcessCommandsNVX},
- {"vkCmdReserveSpaceForCommandsNVX", (void *)CmdReserveSpaceForCommandsNVX},
- {"vkCreateIndirectCommandsLayoutNVX", (void *)CreateIndirectCommandsLayoutNVX},
- {"vkDestroyIndirectCommandsLayoutNVX", (void *)DestroyIndirectCommandsLayoutNVX},
- {"vkCreateObjectTableNVX", (void *)CreateObjectTableNVX},
- {"vkDestroyObjectTableNVX", (void *)DestroyObjectTableNVX},
- {"vkRegisterObjectsNVX", (void *)RegisterObjectsNVX},
- {"vkUnregisterObjectsNVX", (void *)UnregisterObjectsNVX},
- {"vkGetPastPresentationTimingGOOGLE", (void *)GetPastPresentationTimingGOOGLE},
- {"vkGetRefreshCycleDurationGOOGLE", (void *)GetRefreshCycleDurationGOOGLE},
- {"vkCreateSwapchainKHR", (void *)CreateSwapchainKHR},
- {"vkDestroySwapchainKHR", (void *)DestroySwapchainKHR},
- {"vkGetSwapchainImagesKHR", (void *)GetSwapchainImagesKHR},
- {"vkAcquireNextImageKHR", (void *)AcquireNextImageKHR},
- {"vkQueuePresentKHR", (void *)QueuePresentKHR},
- {"vkCreateSharedSwapchainsKHR", (void *)CreateSharedSwapchainsKHR},
- {"vkGetPhysicalDeviceDisplayPropertiesKHR", (void *)GetPhysicalDeviceDisplayPropertiesKHR},
- {"vkGetPhysicalDeviceDisplayPlanePropertiesKHR", (void *)GetPhysicalDeviceDisplayPlanePropertiesKHR},
- {"vkGetDisplayPlaneSupportedDisplaysKHR", (void *)GetDisplayPlaneSupportedDisplaysKHR},
- {"vkGetDisplayModePropertiesKHR", (void *)GetDisplayModePropertiesKHR},
- {"vkCreateDisplayModeKHR", (void *)CreateDisplayModeKHR},
- {"vkGetDisplayPlaneCapabilitiesKHR", (void *)GetDisplayPlaneCapabilitiesKHR},
- {"vkCreateDisplayPlaneSurfaceKHR", (void *)CreateDisplayPlaneSurfaceKHR},
- {"vkDestroySurfaceKHR", (void *)DestroySurfaceKHR},
- {"vkGetPhysicalDeviceSurfaceSupportKHR", (void *)GetPhysicalDeviceSurfaceSupportKHR},
- {"vkGetPhysicalDeviceSurfaceCapabilitiesKHR", (void *)GetPhysicalDeviceSurfaceCapabilitiesKHR},
- {"vkGetPhysicalDeviceSurfaceFormatsKHR", (void *)GetPhysicalDeviceSurfaceFormatsKHR},
- {"vkGetPhysicalDeviceSurfacePresentModesKHR", (void *)GetPhysicalDeviceSurfacePresentModesKHR},
- {"vkCreateDisplayPlaneSurfaceKHR", (void *)CreateDisplayPlaneSurfaceKHR},
- {"vkCreateDebugReportCallbackEXT", (void *)CreateDebugReportCallbackEXT},
- {"vkDestroyDebugReportCallbackEXT", (void *)DestroyDebugReportCallbackEXT},
- {"vkDebugReportMessageEXT", (void *)DebugReportMessageEXT},
- {"vkGetPhysicalDeviceExternalFencePropertiesKHR", (void *)GetPhysicalDeviceExternalFencePropertiesKHR},
- {"vkImportFenceFdKHR", (void *)ImportFenceFdKHR},
- {"vkGetFenceFdKHR", (void *)GetFenceFdKHR},
- {"vkGetBufferMemoryRequirements2KHR", (void *)GetBufferMemoryRequirements2KHR},
- {"vkGetImageSparseMemoryRequirements2KHR", (void *)GetImageSparseMemoryRequirements2KHR},
-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
- {"vkAcquireXlibDisplayEXT", (void *)AcquireXlibDisplayEXT},
- {"vkGetRandROutputDisplayEXT", (void *)GetRandROutputDisplayEXT},
-#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
-#ifdef VK_USE_PLATFORM_WIN32_KHR
- {"vkCreateWin32SurfaceKHR", (void *)CreateWin32SurfaceKHR},
- {"vkGetPhysicalDeviceWin32PresentationSupportKHR", (void *)GetPhysicalDeviceWin32PresentationSupportKHR},
- {"vkGetMemoryWin32HandleNV", (void *)GetMemoryWin32HandleNV},
- {"vkImportFenceWin32HandleKHR", (void *)ImportFenceWin32HandleKHR},
- {"vkGetFenceWin32HandleKHR", (void *)GetFenceWin32HandleKHR},
- {"vkGetMemoryWin32HandleKHR", (void *)GetMemoryWin32HandleKHR},
- {"vkGetMemoryWin32HandlePropertiesKHR", (void *)GetMemoryWin32HandlePropertiesKHR},
- {"vkImportSemaphoreWin32HandleKHR", (void *)ImportSemaphoreWin32HandleKHR},
- {"vkGetSemaphoreWin32HandleKHR", (void *)GetSemaphoreWin32HandleKHR},
-#endif // VK_USE_PLATFORM_WIN32_KHR
-#ifdef VK_USE_PLATFORM_XCB_KHR
- {"vkCreateXcbSurfaceKHR", (void *)CreateXcbSurfaceKHR},
- {"vkGetPhysicalDeviceXcbPresentationSupportKHR", (void *)GetPhysicalDeviceXcbPresentationSupportKHR},
-#endif
-#ifdef VK_USE_PLATFORM_XLIB_KHR
- {"vkCreateXlibSurfaceKHR", (void *)CreateXlibSurfaceKHR},
- {"vkGetPhysicalDeviceXlibPresentationSupportKHR", (void *)GetPhysicalDeviceXlibPresentationSupportKHR},
-#endif
-#ifdef VK_USE_PLATFORM_MIR_KHR
- {"vkCreateMirSurfaceKHR", (void *)CreateMirSurfaceKHR},
- {"vkGetPhysicalDeviceMirPresentationSupportKHR", (void *)GetPhysicalDeviceMirPresentationSupportKHR},
-#endif
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
- {"vkCreateWaylandSurfaceKHR", (void *)CreateWaylandSurfaceKHR},
- {"vkGetPhysicalDeviceWaylandPresentationSupportKHR", (void *)GetPhysicalDeviceWaylandPresentationSupportKHR},
-#endif
-#ifdef VK_USE_PLATFORM_ANDROID_KHR
- {"vkCreateAndroidSurfaceKHR", (void *)CreateAndroidSurfaceKHR},
-#endif
-};
-
-} // namespace object_tracker
diff --git a/layers/object_tracker_utils.cpp b/layers/object_tracker_utils.cpp
index 96ac95e..88b4d0f 100644
--- a/layers/object_tracker_utils.cpp
+++ b/layers/object_tracker_utils.cpp
@@ -616,13 +616,14 @@
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount,
VkImage *pSwapchainImages) {
- bool skip = VK_FALSE;
+ bool skip = false;
std::unique_lock<std::mutex> lock(global_lock);
skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_30805601, VALIDATION_ERROR_UNDEFINED);
+ skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, VALIDATION_ERROR_3082f001,
+ VALIDATION_ERROR_UNDEFINED);
lock.unlock();
- if (skip) {
- return VK_ERROR_VALIDATION_FAILED_EXT;
- }
+ if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;
+
VkResult result = get_dispatch_table(ot_device_table_map, device)
->GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
if (pSwapchainImages != NULL) {
diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt
index 36296b3..0e0dd36 100644
--- a/layers/vk_validation_error_database.txt
+++ b/layers/vk_validation_error_database.txt
@@ -14,11 +14,11 @@
VALIDATION_ERROR_00000a12~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-fence-01289~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-fence-01289)~^~
VALIDATION_ERROR_00000a14~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-deviceMask-01290~^~core~^~The spec valid usage text states 'deviceMask must be a valid device mask' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-deviceMask-01290)~^~
VALIDATION_ERROR_00000a16~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-deviceMask-01291~^~core~^~The spec valid usage text states 'deviceMask must not be zero' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-deviceMask-01291)~^~
-VALIDATION_ERROR_00008801~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-fence-parameter~^~core~^~The spec valid usage text states 'If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-fence-parameter)~^~implicit
+VALIDATION_ERROR_00008801~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-fence-parameter~^~core~^~The spec valid usage text states 'If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-fence-parameter)~^~implicit
VALIDATION_ERROR_0001c40d~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-pNext-pNext)~^~implicit
VALIDATION_ERROR_0002b00b~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-sType-sType)~^~implicit
-VALIDATION_ERROR_0002b801~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-semaphore-parameter~^~core~^~The spec valid usage text states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-semaphore-parameter)~^~implicit
-VALIDATION_ERROR_0002f001~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-swapchain-parameter)~^~implicit
+VALIDATION_ERROR_0002b801~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-semaphore-parameter~^~core~^~The spec valid usage text states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-semaphore-parameter)~^~implicit
+VALIDATION_ERROR_0002f001~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-VkAcquireNextImageInfoKHX-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAcquireNextImageInfoKHX-swapchain-parameter)~^~implicit
VALIDATION_ERROR_002004f0~^~Y~^~Unknown~^~vkCmdBindPipeline~^~VUID-VkAllocationCallbacks-pfnAllocation-00632~^~core~^~The spec valid usage text states 'pfnAllocation must be a pointer to a valid user-defined PFN_vkAllocationFunction' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAllocationCallbacks-pfnAllocation-00632)~^~
VALIDATION_ERROR_002004f2~^~Y~^~Unknown~^~vkCmdBindPipeline~^~VUID-VkAllocationCallbacks-pfnReallocation-00633~^~core~^~The spec valid usage text states 'pfnReallocation must be a pointer to a valid user-defined PFN_vkReallocationFunction' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAllocationCallbacks-pfnReallocation-00633)~^~
VALIDATION_ERROR_002004f4~^~Y~^~Unknown~^~vkCmdBindPipeline~^~VUID-VkAllocationCallbacks-pfnFree-00634~^~core~^~The spec valid usage text states 'pfnFree must be a pointer to a valid user-defined PFN_vkFreeFunction' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAllocationCallbacks-pfnFree-00634)~^~
@@ -43,17 +43,17 @@
VALIDATION_ERROR_0082e401~^~Y~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-storeOp-parameter~^~core~^~The spec valid usage text states 'storeOp must be a valid VkAttachmentStoreOp value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-storeOp-parameter)~^~implicit
VALIDATION_ERROR_00a006b2~^~N~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentReference-layout-00857~^~core~^~The spec valid usage text states 'layout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentReference-layout-00857)~^~
VALIDATION_ERROR_00a0be01~^~Y~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentReference-layout-parameter~^~core~^~The spec valid usage text states 'layout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentReference-layout-parameter)~^~implicit
-VALIDATION_ERROR_00c00009~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-commonparent~^~core~^~The spec valid usage text states 'Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-commonparent)~^~implicit
+VALIDATION_ERROR_00c00009~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-commonparent~^~core~^~The spec valid usage text states 'Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-commonparent)~^~implicit
VALIDATION_ERROR_00c00820~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-None-01040~^~core~^~The spec valid usage text states 'All valid usage rules from vkBindBufferMemory apply to the identically named members of VkBindBufferMemoryInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-None-01040)~^~
VALIDATION_ERROR_00c00822~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-deviceIndexCount-01041~^~core~^~The spec valid usage text states 'deviceIndexCount must either be zero or equal to the number of physical devices in the logical device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-deviceIndexCount-01041)~^~
VALIDATION_ERROR_00c00824~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-pDeviceIndices-01042~^~core~^~The spec valid usage text states 'All elements of pDeviceIndices must be valid device indices' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-pDeviceIndices-01042)~^~
VALIDATION_ERROR_00c00826~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-None-01043~^~core~^~The spec valid usage text states 'All instances of memory that are bound to must have been allocated' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-None-01043)~^~
-VALIDATION_ERROR_00c01a01~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-buffer-parameter)~^~implicit
-VALIDATION_ERROR_00c0c601~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-memory-parameter)~^~implicit
+VALIDATION_ERROR_00c01a01~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-buffer-parameter)~^~implicit
+VALIDATION_ERROR_00c0c601~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-memory-parameter)~^~implicit
VALIDATION_ERROR_00c13e01~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-pDeviceIndices-parameter~^~core~^~The spec valid usage text states 'If deviceIndexCount is not 0, pDeviceIndices must be a pointer to an array of deviceIndexCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-pDeviceIndices-parameter)~^~implicit
VALIDATION_ERROR_00c1c40d~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-pNext-pNext)~^~implicit
VALIDATION_ERROR_00c2b00b~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-VkBindBufferMemoryInfoKHX-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindBufferMemoryInfoKHX-sType-sType)~^~implicit
-VALIDATION_ERROR_00e00009~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-commonparent~^~core~^~The spec valid usage text states 'Both of image, and memory must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-commonparent)~^~implicit
+VALIDATION_ERROR_00e00009~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-commonparent~^~core~^~The spec valid usage text states 'Both of image, and memory must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-commonparent)~^~implicit
VALIDATION_ERROR_00e00838~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-None-01052~^~core~^~The spec valid usage text states 'All valid usage rules from vkBindImageMemory apply to the identically named members of VkBindImageMemoryInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-None-01052)~^~
VALIDATION_ERROR_00e0083a~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-deviceIndexCount-01053~^~core~^~The spec valid usage text states 'At least one of deviceIndexCount and SFRRectCount must be zero.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-deviceIndexCount-01053)~^~
VALIDATION_ERROR_00e0083c~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-deviceIndexCount-01054~^~core~^~The spec valid usage text states 'deviceIndexCount must either be zero or equal to the number of physical devices in the logical device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-deviceIndexCount-01054)~^~
@@ -68,8 +68,8 @@
VALIDATION_ERROR_00e00850~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-extent-01064~^~core~^~The spec valid usage text states 'For each element of pSFRRects, extent.height 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 height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-extent-01064)~^~
VALIDATION_ERROR_00e00852~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-None-01065~^~core~^~The spec valid usage text states 'All instances of memory that are bound must have been allocated' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-None-01065)~^~
VALIDATION_ERROR_00e00854~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-image-01066~^~core~^~The spec valid usage text states 'If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHX::swapchain, then the image must be bound to memory from that swapchain (using VkBindImageMemorySwapchainInfoKHX).' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-image-01066)~^~
-VALIDATION_ERROR_00e0a001~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-image-parameter)~^~implicit
-VALIDATION_ERROR_00e0c601~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-memory-parameter)~^~implicit
+VALIDATION_ERROR_00e0a001~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-image-parameter)~^~implicit
+VALIDATION_ERROR_00e0c601~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-memory-parameter)~^~implicit
VALIDATION_ERROR_00e13e01~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-pDeviceIndices-parameter~^~core~^~The spec valid usage text states 'If deviceIndexCount is not 0, pDeviceIndices must be a pointer to an array of deviceIndexCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-pDeviceIndices-parameter)~^~implicit
VALIDATION_ERROR_00e1c40d~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkBindImageMemorySwapchainInfoKHX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-pNext-pNext)~^~implicit
VALIDATION_ERROR_00e22001~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-VkBindImageMemoryInfoKHX-pSFRRects-parameter~^~core~^~The spec valid usage text states 'If SFRRectCount is not 0, pSFRRects must be a pointer to an array of SFRRectCount VkRect2D structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBindImageMemoryInfoKHX-pSFRRects-parameter)~^~implicit
@@ -137,7 +137,7 @@
VALIDATION_ERROR_01800956~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-buffer-01195~^~(VK_KHR_external_memory)~^~The spec valid usage text states '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 VK_QUEUE_FAMILY_EXTERNAL_KHR (see Queue Family Properties)' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferMemoryBarrier-buffer-01195)~^~
VALIDATION_ERROR_01800958~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-buffer-01196~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-buffer-01196)~^~
VALIDATION_ERROR_01800ac8~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-buffer-01380~^~(VK_KHR_external_memory)~^~The spec valid usage text states '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 VK_QUEUE_FAMILY_EXTERNAL_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferMemoryBarrier-buffer-01380)~^~
-VALIDATION_ERROR_01801a01~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-buffer-parameter)~^~implicit
+VALIDATION_ERROR_01801a01~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-buffer-parameter)~^~implicit
VALIDATION_ERROR_01806801~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-dstAccessMask-parameter~^~core~^~The spec valid usage text states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-dstAccessMask-parameter)~^~implicit
VALIDATION_ERROR_0181c40d~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-pNext-pNext)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_0182b00b~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkBufferMemoryBarrier-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryBarrier-sType-sType)~^~implicit, TBD in parameter validation layer.
@@ -164,7 +164,7 @@
VALIDATION_ERROR_01c00c03~^~Y~^~Unknown~^~vkCmdClearAttachments~^~VUID-VkClearAttachment-aspectMask-requiredbitmask~^~core~^~The spec valid usage text states 'aspectMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkClearAttachment-aspectMask-requiredbitmask)~^~implicit
VALIDATION_ERROR_01e0002c~^~N~^~Unknown~^~vkCmdClearAttachments~^~VUID-VkClearDepthStencilValue-depth-00022~^~core~^~The spec valid usage text states 'depth must be between 0.0 and 1.0, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkClearDepthStencilValue-depth-00022)~^~
VALIDATION_ERROR_0200002e~^~N~^~Unknown~^~vkCmdClearAttachments~^~VUID-VkClearValue-depthStencil-00023~^~core~^~The spec valid usage text states 'depthStencil must be a valid VkClearDepthStencilValue structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkClearValue-depthStencil-00023)~^~
-VALIDATION_ERROR_02200009~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-commonparent~^~core~^~The spec valid usage text states 'Each of indirectCommandsLayout, objectTable, sequencesCountBuffer, sequencesIndexBuffer, and targetCommandBuffer that are valid handles must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-commonparent)~^~implicit
+VALIDATION_ERROR_02200009~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-commonparent~^~core~^~The spec valid usage text states 'Each of indirectCommandsLayout, objectTable, sequencesCountBuffer, sequencesIndexBuffer, and targetCommandBuffer that are valid handles must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-commonparent)~^~implicit
VALIDATION_ERROR_02200a66~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-objectTable-01331~^~core~^~The spec valid usage text states 'The provided objectTable must include all objects referenced by the generation process.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-objectTable-01331)~^~
VALIDATION_ERROR_02200a68~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-01332~^~core~^~The spec valid usage text states 'indirectCommandsTokenCount must match the indirectCommandsLayout's tokenCount.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-01332)~^~
VALIDATION_ERROR_02200a6a~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-tokenType-01333~^~core~^~The spec valid usage text states 'The tokenType member of each entry in the pIndirectCommandsTokens array must match the values used at creation time of indirectCommandsLayout' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-tokenType-01333)~^~
@@ -176,18 +176,18 @@
VALIDATION_ERROR_02200a76~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-01339~^~core~^~The spec valid usage text states 'If sequencesCountBuffer is used, sequencesCountOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceCountBufferOffsetAlignment.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-01339)~^~
VALIDATION_ERROR_02200a78~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01340~^~core~^~The spec valid usage text states 'If sequencesIndexBuffer is used, its usage flag must have VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01340)~^~
VALIDATION_ERROR_02200a7a~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01341~^~core~^~The spec valid usage text states 'If sequencesIndexBuffer is used, sequencesIndexOffset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minSequenceIndexBufferOffsetAlignment.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-01341)~^~
-VALIDATION_ERROR_0220b401~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter)~^~implicit
+VALIDATION_ERROR_0220b401~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter)~^~implicit
VALIDATION_ERROR_0220b61b~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-arraylength~^~core~^~The spec valid usage text states 'indirectCommandsTokenCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsTokenCount-arraylength)~^~implicit
-VALIDATION_ERROR_0220d801~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter)~^~implicit
+VALIDATION_ERROR_0220d801~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter)~^~implicit
VALIDATION_ERROR_02219401~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-pIndirectCommandsTokens-parameter~^~core~^~The spec valid usage text states 'pIndirectCommandsTokens must be a pointer to an array of indirectCommandsTokenCount valid VkIndirectCommandsTokenNVX structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-pIndirectCommandsTokens-parameter)~^~implicit
VALIDATION_ERROR_0221c40d~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-pNext-pNext)~^~implicit
VALIDATION_ERROR_0222b00b~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sType-sType)~^~implicit
-VALIDATION_ERROR_0222ba01~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter~^~core~^~The spec valid usage text states 'If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter)~^~implicit
-VALIDATION_ERROR_0222bc01~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter~^~core~^~The spec valid usage text states 'If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter)~^~implicit
-VALIDATION_ERROR_0222f601~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter~^~core~^~The spec valid usage text states 'If targetCommandBuffer is not NULL, targetCommandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter)~^~implicit
-VALIDATION_ERROR_02400009~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent~^~core~^~The spec valid usage text states 'Both of indirectCommandsLayout, and objectTable must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent)~^~implicit
-VALIDATION_ERROR_0240b401~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter)~^~implicit
-VALIDATION_ERROR_0240d801~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter)~^~implicit
+VALIDATION_ERROR_0222ba01~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter~^~core~^~The spec valid usage text states 'If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter)~^~implicit
+VALIDATION_ERROR_0222bc01~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter~^~core~^~The spec valid usage text states 'If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter)~^~implicit
+VALIDATION_ERROR_0222f601~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter~^~core~^~The spec valid usage text states 'If targetCommandBuffer is not NULL, targetCommandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_02400009~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent~^~core~^~The spec valid usage text states 'Both of indirectCommandsLayout, and objectTable must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent)~^~implicit
+VALIDATION_ERROR_0240b401~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter)~^~implicit
+VALIDATION_ERROR_0240d801~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter)~^~implicit
VALIDATION_ERROR_0241c40d~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-pNext-pNext)~^~implicit
VALIDATION_ERROR_0242b00b~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-VkCmdReserveSpaceForCommandsInfoNVX-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCmdReserveSpaceForCommandsInfoNVX-sType-sType)~^~implicit
VALIDATION_ERROR_02600058~^~N~^~Unknown~^~vkAllocateCommandBuffers~^~VUID-VkCommandBufferAllocateInfo-commandBufferCount-00044~^~core~^~The spec valid usage text states 'commandBufferCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkCommandBufferAllocateInfo-commandBufferCount-00044)~^~
@@ -308,18 +308,18 @@
VALIDATION_ERROR_0500fc01~^~Y~^~Unknown~^~vkCreateDescriptorSetLayout~^~VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter~^~core~^~The spec valid usage text states 'If bindingCount is not 0, pBindings must be a pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter)~^~implicit
VALIDATION_ERROR_0501c40d~^~Y~^~Unknown~^~vkCreateDescriptorSetLayout~^~VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_0502b00b~^~Y~^~Unknown~^~vkCreateDescriptorSetLayout~^~VUID-VkDescriptorSetLayoutCreateInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorSetLayoutCreateInfo-sType-sType)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_05200009~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-commonparent~^~core~^~The spec valid usage text states 'Both of descriptorSetLayout, and pipelineLayout that are valid handles must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-commonparent)~^~implicit
+VALIDATION_ERROR_05200009~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-commonparent~^~core~^~The spec valid usage text states 'Both of descriptorSetLayout, and pipelineLayout that are valid handles must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-commonparent)~^~implicit
VALIDATION_ERROR_052002bc~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00350~^~core~^~The spec valid usage text states 'If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR, descriptorSetLayout must be a valid VkDescriptorSetLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00350)~^~
VALIDATION_ERROR_052002be~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00351~^~(VK_KHR_push_descriptor)~^~The spec valid usage text states 'If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00351)~^~
VALIDATION_ERROR_052002c0~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00352~^~(VK_KHR_push_descriptor)~^~The spec valid usage text states 'If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00352)~^~
VALIDATION_ERROR_052002c2~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00353~^~(VK_KHR_push_descriptor)~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-00353)~^~
-VALIDATION_ERROR_05204c01~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorSetLayout-parameter~^~core~^~The spec valid usage text states 'If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorSetLayout-parameter)~^~implicit
+VALIDATION_ERROR_05204c01~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorSetLayout-parameter~^~core~^~The spec valid usage text states 'If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorSetLayout-parameter)~^~implicit
VALIDATION_ERROR_0520501b~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorUpdateEntryCount-arraylength~^~core~^~The spec valid usage text states 'descriptorUpdateEntryCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-descriptorUpdateEntryCount-arraylength)~^~implicit
VALIDATION_ERROR_05209005~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-flags-zerobitmask)~^~implicit
VALIDATION_ERROR_05213201~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pDescriptorUpdateEntries-parameter~^~core~^~The spec valid usage text states 'pDescriptorUpdateEntries must be a pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntryKHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pDescriptorUpdateEntries-parameter)~^~implicit
VALIDATION_ERROR_0521c40d~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_05227e01~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineBindPoint-parameter~^~core~^~The spec valid usage text states 'If pipelineBindPoint is not 0, pipelineBindPoint must be a valid VkPipelineBindPoint value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineBindPoint-parameter)~^~implicit
-VALIDATION_ERROR_05228201~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineLayout-parameter~^~core~^~The spec valid usage text states 'If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineLayout-parameter)~^~implicit
+VALIDATION_ERROR_05228201~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineLayout-parameter~^~core~^~The spec valid usage text states 'If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-pipelineLayout-parameter)~^~implicit
VALIDATION_ERROR_0522b00b~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-sType-sType)~^~implicit
VALIDATION_ERROR_0522f801~^~Y~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-parameter~^~core~^~The spec valid usage text states 'templateType must be a valid VkDescriptorUpdateTemplateTypeKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateCreateInfoKHR-templateType-parameter)~^~implicit
VALIDATION_ERROR_054002c4~^~N~^~Unknown~^~vkCreateDescriptorUpdateTemplateKHR~^~VUID-VkDescriptorUpdateTemplateEntryKHR-dstBinding-00354~^~core~^~The spec valid usage text states 'dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorUpdateTemplateEntryKHR-dstBinding-00354)~^~
@@ -688,7 +688,7 @@
VALIDATION_ERROR_0a000ba0~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01488~^~core~^~The spec valid usage text states 'subresourceRange::baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01488)~^~
VALIDATION_ERROR_0a000ba2~^~N~^~None~^~VkImageMemoryBarrier~^~VUID-VkImageMemoryBarrier-subresourceRange-01489~^~core~^~The spec valid usage text states 'If subresourceRange::layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange::layerCount must be non-zero and subresourceRange::baseArrayLayer + subresourceRange::layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-subresourceRange-01489)~^~
VALIDATION_ERROR_0a006801~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-dstAccessMask-parameter~^~core~^~The spec valid usage text states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-dstAccessMask-parameter)~^~implicit
-VALIDATION_ERROR_0a00a001~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-image-parameter)~^~implicit
+VALIDATION_ERROR_0a00a001~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-image-parameter)~^~implicit
VALIDATION_ERROR_0a00d401~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-newLayout-parameter~^~core~^~The spec valid usage text states 'newLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-parameter)~^~implicit
VALIDATION_ERROR_0a00dc01~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-oldLayout-parameter~^~core~^~The spec valid usage text states 'oldLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-parameter)~^~implicit
VALIDATION_ERROR_0a01c40d~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-VkImageMemoryBarrier-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryBarrier-pNext-pNext)~^~implicit, TBD in parameter validation layer.
@@ -792,7 +792,7 @@
VALIDATION_ERROR_0b409c01~^~Y~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_0b41c40d~^~Y~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_0b42b00b~^~Y~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-VkImportSemaphoreFdInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreFdInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_0b42b801~^~N~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter)~^~implicit
+VALIDATION_ERROR_0b42b801~^~Y~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter)~^~implicit
VALIDATION_ERROR_0b6008e8~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140~^~core~^~The spec valid usage text states 'handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140)~^~
VALIDATION_ERROR_0b6008ea~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01141~^~core~^~The spec valid usage text states 'The semaphore from which handleType or name was exported must have been created on the same underlying physical device as semaphore.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01141)~^~
VALIDATION_ERROR_0b600b74~^~N~^~None~^~VkImportSemaphoreWin32HandleInfoKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466~^~core~^~The spec valid usage text states 'If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR, name must be NULL.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466)~^~
@@ -804,7 +804,7 @@
VALIDATION_ERROR_0b609c03~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-requiredbitmask~^~core~^~The spec valid usage text states 'handleType must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-requiredbitmask)~^~implicit
VALIDATION_ERROR_0b61c40d~^~Y~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_0b62b00b~^~Y~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_0b62b801~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter)~^~implicit
+VALIDATION_ERROR_0b62b801~^~Y~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter)~^~implicit
VALIDATION_ERROR_0b800a86~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-VkIndirectCommandsLayoutCreateInfoNVX-tokenCount-01347~^~core~^~The spec valid usage text states 'tokenCount must be greater than 0 and below VkDeviceGeneratedCommandsLimitsNVX::maxIndirectCommandsLayoutTokenCount' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsLayoutCreateInfoNVX-tokenCount-01347)~^~
VALIDATION_ERROR_0b800a88~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-VkIndirectCommandsLayoutCreateInfoNVX-computeBindingPointSupport-01348~^~core~^~The spec valid usage text states 'If the VkDeviceGeneratedCommandsFeaturesNVX::computeBindingPointSupport feature is not enabled, then pipelineBindPoint must not be VK_PIPELINE_BIND_POINT_COMPUTE' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsLayoutCreateInfoNVX-computeBindingPointSupport-01348)~^~
VALIDATION_ERROR_0b800a8a~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-01349~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsLayoutCreateInfoNVX-pTokens-01349)~^~
@@ -823,7 +823,7 @@
VALIDATION_ERROR_0ba2fe01~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsLayoutTokenNVX-tokenType-parameter~^~core~^~The spec valid usage text states 'tokenType must be a valid VkIndirectCommandsTokenTypeNVX value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsLayoutTokenNVX-tokenType-parameter)~^~implicit
VALIDATION_ERROR_0bc00a82~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-buffer-01345~^~core~^~The spec valid usage text states 'The buffer's usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-buffer-01345)~^~
VALIDATION_ERROR_0bc00a84~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-offset-01346~^~core~^~The spec valid usage text states 'The offset must be aligned to VkDeviceGeneratedCommandsLimitsNVX::minCommandsTokenBufferOffsetAlignment.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-offset-01346)~^~
-VALIDATION_ERROR_0bc01a01~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-buffer-parameter)~^~implicit
+VALIDATION_ERROR_0bc01a01~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-buffer-parameter)~^~implicit
VALIDATION_ERROR_0bc2fe01~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-VkIndirectCommandsTokenNVX-tokenType-parameter~^~core~^~The spec valid usage text states 'tokenType must be a valid VkIndirectCommandsTokenTypeNVX value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkIndirectCommandsTokenNVX-tokenType-parameter)~^~implicit
VALIDATION_ERROR_0be09005~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-flags-zerobitmask)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_0be0ee01~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkInstanceCreateInfo-pApplicationInfo-parameter~^~core~^~The spec valid usage text states 'If pApplicationInfo is not NULL, pApplicationInfo must be a pointer to a valid VkApplicationInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkInstanceCreateInfo-pApplicationInfo-parameter)~^~implicit
@@ -1220,7 +1220,7 @@
VALIDATION_ERROR_12a1c40d~^~Y~^~Unknown~^~vkCreateShaderModule~^~VUID-VkShaderModuleCreateInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkShaderModuleCreateInfo-pNext-pNext)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_12a2b00b~^~Y~^~Unknown~^~vkCreateShaderModule~^~VUID-VkShaderModuleCreateInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkShaderModuleCreateInfo-sType-sType)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_12c0141b~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength~^~core~^~The spec valid usage text states 'bindCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength)~^~implicit
-VALIDATION_ERROR_12c01a01~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseBufferMemoryBindInfo-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseBufferMemoryBindInfo-buffer-parameter)~^~implicit
+VALIDATION_ERROR_12c01a01~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseBufferMemoryBindInfo-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseBufferMemoryBindInfo-buffer-parameter)~^~implicit
VALIDATION_ERROR_12c0fe01~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter~^~core~^~The spec valid usage text states 'pBinds must be a pointer to an array of bindCount valid VkSparseMemoryBind structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter)~^~implicit
VALIDATION_ERROR_12e008a0~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-memory-01104~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-memory-01104)~^~
VALIDATION_ERROR_12e008a2~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-memory-01105~^~core~^~The spec valid usage text states 'memory and memoryOffset must match the memory requirements of the calling command's image, as described in section Resource Memory Association' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-memory-01105)~^~
@@ -1232,14 +1232,14 @@
VALIDATION_ERROR_12e008ae~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-offset-01111~^~core~^~The spec valid usage text states 'offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-offset-01111)~^~
VALIDATION_ERROR_12e008b0~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-extent-01112~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-extent-01112)~^~
VALIDATION_ERROR_12e09001~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkSparseMemoryBindFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-flags-parameter)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_12e0c601~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-memory-parameter~^~core~^~The spec valid usage text states 'If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-memory-parameter)~^~implicit
+VALIDATION_ERROR_12e0c601~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-memory-parameter~^~core~^~The spec valid usage text states 'If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-memory-parameter)~^~implicit
VALIDATION_ERROR_12e2e801~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBind-subresource-parameter~^~core~^~The spec valid usage text states 'subresource must be a valid VkImageSubresource structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBind-subresource-parameter)~^~implicit
VALIDATION_ERROR_1300141b~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength~^~core~^~The spec valid usage text states 'bindCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength)~^~implicit
-VALIDATION_ERROR_1300a001~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBindInfo-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBindInfo-image-parameter)~^~implicit
+VALIDATION_ERROR_1300a001~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBindInfo-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBindInfo-image-parameter)~^~implicit
VALIDATION_ERROR_1300fe01~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageMemoryBindInfo-pBinds-parameter~^~core~^~The spec valid usage text states 'pBinds must be a pointer to an array of bindCount valid VkSparseImageMemoryBind structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageMemoryBindInfo-pBinds-parameter)~^~implicit
VALIDATION_ERROR_1320089e~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103~^~core~^~The spec valid usage text states 'For any given element of pBinds, if the flags member of that element contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103)~^~
VALIDATION_ERROR_1320141b~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength~^~core~^~The spec valid usage text states 'bindCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength)~^~implicit
-VALIDATION_ERROR_1320a001~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter)~^~implicit
+VALIDATION_ERROR_1320a001~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter)~^~implicit
VALIDATION_ERROR_1320fe01~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter~^~core~^~The spec valid usage text states 'pBinds must be a pointer to an array of bindCount valid VkSparseMemoryBind structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter)~^~implicit
VALIDATION_ERROR_13400890~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-memory-01096~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-memory-01096)~^~
VALIDATION_ERROR_13400892~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-memory-01097~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-memory-01097)~^~
@@ -1249,7 +1249,7 @@
VALIDATION_ERROR_1340089a~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-memoryOffset-01101~^~core~^~The spec valid usage text states 'memoryOffset must be less than the size of memory' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-memoryOffset-01101)~^~
VALIDATION_ERROR_1340089c~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-size-01102~^~core~^~The spec valid usage text states 'size must be less than or equal to the size of memory minus memoryOffset' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-size-01102)~^~
VALIDATION_ERROR_13409001~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkSparseMemoryBindFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-flags-parameter)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_1340c601~^~N~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-memory-parameter~^~core~^~The spec valid usage text states 'If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-memory-parameter)~^~implicit
+VALIDATION_ERROR_1340c601~^~Y~^~Unknown~^~vkGetImageSparseMemoryRequirements~^~VUID-VkSparseMemoryBind-memory-parameter~^~core~^~The spec valid usage text states 'If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSparseMemoryBind-memory-parameter)~^~implicit
VALIDATION_ERROR_1360060a~^~N~^~Unknown~^~vkDestroyPipelineCache~^~VUID-VkSpecializationInfo-offset-00773~^~core~^~The spec valid usage text states 'The offset member of any given element of pMapEntries must be less than dataSize' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSpecializationInfo-offset-00773)~^~
VALIDATION_ERROR_1360060c~^~Y~^~Unknown~^~vkDestroyPipelineCache~^~VUID-VkSpecializationInfo-pMapEntries-00774~^~core~^~The spec valid usage text states 'For any given element of pMapEntries, size must be less than or equal to dataSize minus offset' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSpecializationInfo-pMapEntries-00774)~^~
VALIDATION_ERROR_1360060e~^~N~^~Unknown~^~vkDestroyPipelineCache~^~VUID-VkSpecializationInfo-mapEntryCount-00775~^~core~^~The spec valid usage text states 'If mapEntryCount is not 0, pMapEntries must be a pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSpecializationInfo-mapEntryCount-00775)~^~
@@ -1349,7 +1349,7 @@
VALIDATION_ERROR_1460ae01~^~N~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter~^~core~^~The spec valid usage text states 'imageUsage must be a valid combination of VkImageUsageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter)~^~implicit
VALIDATION_ERROR_1460ae03~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask~^~core~^~The spec valid usage text states 'imageUsage must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask)~^~implicit
VALIDATION_ERROR_1460de01~^~Y~^~None~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter~^~core~^~The spec valid usage text states 'If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter)~^~implicit, This error applies to both vkCreateSwapchainKHR and vkCreateSharedSwapchainsKHR.
-VALIDATION_ERROR_1460de07~^~N~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent~^~core~^~The spec valid usage text states 'If oldSwapchain is a valid handle, it must have been created, allocated, or retrieved from surface' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent)~^~implicit
+VALIDATION_ERROR_1460de07~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent~^~core~^~The spec valid usage text states 'If oldSwapchain is a valid handle, it must have been created, allocated, or retrieved from surface' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent)~^~implicit
VALIDATION_ERROR_1461c40d~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupSwapchainCreateInfoKHX or VkSwapchainCounterCreateInfoEXT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_14629401~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-preTransform-parameter~^~core~^~The spec valid usage text states 'preTransform must be a valid VkSurfaceTransformFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-preTransform-parameter)~^~implicit
VALIDATION_ERROR_14629601~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-VkSwapchainCreateInfoKHR-presentMode-parameter~^~core~^~The spec valid usage text states 'presentMode must be a valid VkPresentModeKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-presentMode-parameter)~^~implicit
@@ -1453,7 +1453,7 @@
VALIDATION_ERROR_16009005~^~Y~^~Unknown~^~vkCreateXlibSurfaceKHR~^~VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_1601c40d~^~Y~^~Unknown~^~vkCreateXlibSurfaceKHR~^~VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_1602b00b~^~Y~^~Unknown~^~vkCreateXlibSurfaceKHR~^~VUID-VkXlibSurfaceCreateInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkXlibSurfaceCreateInfoKHR-sType-sType)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_16205601~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-vkAcquireNextImage2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImage2KHX-device-parameter)~^~implicit
+VALIDATION_ERROR_16205601~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-vkAcquireNextImage2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImage2KHX-device-parameter)~^~implicit
VALIDATION_ERROR_1620e001~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-vkAcquireNextImage2KHX-pAcquireInfo-parameter~^~core~^~The spec valid usage text states 'pAcquireInfo must be a pointer to a valid VkAcquireNextImageInfoKHX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImage2KHX-pAcquireInfo-parameter)~^~implicit
VALIDATION_ERROR_16218601~^~Y~^~Unknown~^~vkAcquireNextImage2KHX~^~VUID-vkAcquireNextImage2KHX-pImageIndex-parameter~^~core~^~The spec valid usage text states 'pImageIndex must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImage2KHX-pImageIndex-parameter)~^~implicit
VALIDATION_ERROR_16400a0a~^~N~^~Unknown~^~vkAcquireNextImageKHR~^~VUID-vkAcquireNextImageKHR-swapchain-01285~^~core~^~The spec valid usage text states 'swapchain must not have been replaced by being passed as the VkSwapchainCreateInfoKHR::oldSwapchain value to vkCreateSwapchainKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImageKHR-swapchain-01285)~^~
@@ -1466,9 +1466,9 @@
VALIDATION_ERROR_1642b801~^~Y~^~None~^~vkAcquireNextImageKHR~^~VUID-vkAcquireNextImageKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImageKHR-semaphore-parameter)~^~implicit
VALIDATION_ERROR_1642b807~^~Y~^~Unknown~^~vkAcquireNextImageKHR~^~VUID-vkAcquireNextImageKHR-semaphore-parent~^~core~^~The spec valid usage text states 'If semaphore is a valid handle, it must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImageKHR-semaphore-parent)~^~implicit
VALIDATION_ERROR_1642f001~^~Y~^~None~^~vkAcquireNextImageKHR~^~VUID-vkAcquireNextImageKHR-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireNextImageKHR-swapchain-parameter)~^~implicit
-VALIDATION_ERROR_16606001~^~N~^~Unknown~^~vkAcquireXlibDisplayEXT~^~VUID-vkAcquireXlibDisplayEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireXlibDisplayEXT-display-parameter)~^~implicit
+VALIDATION_ERROR_16606001~^~Y~^~Unknown~^~vkAcquireXlibDisplayEXT~^~VUID-vkAcquireXlibDisplayEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireXlibDisplayEXT-display-parameter)~^~implicit
VALIDATION_ERROR_16606601~^~Y~^~Unknown~^~vkAcquireXlibDisplayEXT~^~VUID-vkAcquireXlibDisplayEXT-dpy-parameter~^~core~^~The spec valid usage text states 'dpy must be a pointer to a Display value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireXlibDisplayEXT-dpy-parameter)~^~implicit
-VALIDATION_ERROR_16627a01~^~N~^~Unknown~^~vkAcquireXlibDisplayEXT~^~VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_16627a01~^~Y~^~Unknown~^~vkAcquireXlibDisplayEXT~^~VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_16805601~^~Y~^~None~^~vkAllocateCommandBuffers~^~VUID-vkAllocateCommandBuffers-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAllocateCommandBuffers-device-parameter)~^~implicit
VALIDATION_ERROR_1680ea01~^~N~^~Unknown~^~vkAllocateCommandBuffers~^~VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter~^~core~^~The spec valid usage text states 'pAllocateInfo must be a pointer to a valid VkCommandBufferAllocateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter)~^~implicit
VALIDATION_ERROR_16811401~^~Y~^~Unknown~^~vkAllocateCommandBuffers~^~VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter~^~core~^~The spec valid usage text states 'pCommandBuffers must be a pointer to an array of pAllocateInfo::commandBufferCount VkCommandBuffer handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter)~^~implicit
@@ -1504,7 +1504,7 @@
VALIDATION_ERROR_1700c601~^~Y~^~BindInvalidMemory~^~vkBindBufferMemory~^~VUID-vkBindBufferMemory-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory-memory-parameter)~^~implicit
VALIDATION_ERROR_1700c607~^~Y~^~Unknown~^~vkBindBufferMemory~^~VUID-vkBindBufferMemory-memory-parent~^~core~^~The spec valid usage text states 'memory must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory-memory-parent)~^~implicit
VALIDATION_ERROR_1720161b~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-vkBindBufferMemory2KHX-bindInfoCount-arraylength~^~core~^~The spec valid usage text states 'bindInfoCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory2KHX-bindInfoCount-arraylength)~^~implicit
-VALIDATION_ERROR_17205601~^~N~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-vkBindBufferMemory2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory2KHX-device-parameter)~^~implicit
+VALIDATION_ERROR_17205601~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-vkBindBufferMemory2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory2KHX-device-parameter)~^~implicit
VALIDATION_ERROR_1720fa01~^~Y~^~Unknown~^~vkBindBufferMemory2KHX~^~VUID-vkBindBufferMemory2KHX-pBindInfos-parameter~^~core~^~The spec valid usage text states 'pBindInfos must be a pointer to an array of bindInfoCount valid VkBindBufferMemoryInfoKHX structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindBufferMemory2KHX-pBindInfos-parameter)~^~implicit
VALIDATION_ERROR_17400828~^~Y~^~BindInvalidMemory~^~vkBindImageMemory~^~VUID-vkBindImageMemory-image-01044~^~core~^~The spec valid usage text states 'image must not already be backed by a memory object' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory-image-01044)~^~
VALIDATION_ERROR_1740082a~^~Y~^~BindInvalidMemory~^~vkBindImageMemory~^~VUID-vkBindImageMemory-image-01045~^~core~^~The spec valid usage text states 'image must not have been created with any sparse memory binding flags' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory-image-01045)~^~
@@ -1521,7 +1521,7 @@
VALIDATION_ERROR_1740c601~^~Y~^~BindInvalidMemory~^~vkBindImageMemory~^~VUID-vkBindImageMemory-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory-memory-parameter)~^~implicit
VALIDATION_ERROR_1740c607~^~Y~^~Unknown~^~vkBindImageMemory~^~VUID-vkBindImageMemory-memory-parent~^~core~^~The spec valid usage text states 'memory must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory-memory-parent)~^~implicit
VALIDATION_ERROR_1760161b~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-vkBindImageMemory2KHX-bindInfoCount-arraylength~^~core~^~The spec valid usage text states 'bindInfoCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory2KHX-bindInfoCount-arraylength)~^~implicit
-VALIDATION_ERROR_17605601~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-vkBindImageMemory2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory2KHX-device-parameter)~^~implicit
+VALIDATION_ERROR_17605601~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-vkBindImageMemory2KHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory2KHX-device-parameter)~^~implicit
VALIDATION_ERROR_1760fa01~^~Y~^~Unknown~^~vkBindImageMemory2KHX~^~VUID-vkBindImageMemory2KHX-pBindInfos-parameter~^~core~^~The spec valid usage text states 'pBindInfos must be a pointer to an array of bindInfoCount valid VkBindImageMemoryInfoKHX structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkBindImageMemory2KHX-pBindInfos-parameter)~^~implicit
VALIDATION_ERROR_17800009~^~Y~^~Unknown~^~vkCmdBeginQuery~^~VUID-vkCmdBeginQuery-commonparent~^~core~^~The spec valid usage text states 'Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBeginQuery-commonparent)~^~implicit
VALIDATION_ERROR_1780063c~^~N~^~Unknown~^~vkCmdBeginQuery~^~VUID-vkCmdBeginQuery-queryPool-00798~^~core~^~The spec valid usage text states 'The query identified by queryPool and query must currently not be active' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBeginQuery-queryPool-00798)~^~
@@ -1841,7 +1841,7 @@
VALIDATION_ERROR_19e00352~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-groupCountY-00425~^~core~^~The spec valid usage text states 'groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-groupCountY-00425)~^~
VALIDATION_ERROR_19e00354~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-groupCountZ-00426~^~core~^~The spec valid usage text states 'groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-groupCountZ-00426)~^~
VALIDATION_ERROR_19e00356~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-baseGroupX-00427~^~core~^~The spec valid usage text states 'If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the currently bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE_KHX flag.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-baseGroupX-00427)~^~
-VALIDATION_ERROR_19e02401~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_19e02401~^~Y~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_19e02413~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_19e02415~^~N~^~Unknown~^~vkCmdDispatchBaseKHX~^~VUID-vkCmdDispatchBaseKHX-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchBaseKHX-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1a000009~^~Y~^~Unknown~^~vkCmdDispatchIndirect~^~VUID-vkCmdDispatchIndirect-commonparent~^~core~^~The spec valid usage text states 'Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdDispatchIndirect-commonparent)~^~implicit
@@ -2132,7 +2132,7 @@
VALIDATION_ERROR_1b82d401~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-vkCmdPipelineBarrier-srcStageMask-parameter~^~core~^~The spec valid usage text states 'srcStageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPipelineBarrier-srcStageMask-parameter)~^~implicit
VALIDATION_ERROR_1b82d403~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~VUID-vkCmdPipelineBarrier-srcStageMask-requiredbitmask~^~core~^~The spec valid usage text states 'srcStageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPipelineBarrier-srcStageMask-requiredbitmask)~^~implicit
VALIDATION_ERROR_1ba00017~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-renderpass~^~core~^~The spec valid usage text states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-renderpass)~^~implicit
-VALIDATION_ERROR_1ba02401~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1ba02401~^~Y~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1ba02413~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1ba02415~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1ba1f201~^~N~^~Unknown~^~vkCmdProcessCommandsNVX~^~VUID-vkCmdProcessCommandsNVX-pProcessCommandsInfo-parameter~^~core~^~The spec valid usage text states 'pProcessCommandsInfo must be a pointer to a valid VkCmdProcessCommandsInfoNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdProcessCommandsNVX-pProcessCommandsInfo-parameter)~^~implicit
@@ -2150,15 +2150,15 @@
VALIDATION_ERROR_1bc2c21b~^~Y~^~Unknown~^~vkCmdPushConstants~^~VUID-vkCmdPushConstants-size-arraylength~^~core~^~The spec valid usage text states 'size must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushConstants-size-arraylength)~^~implicit
VALIDATION_ERROR_1bc2dc01~^~N~^~Unknown~^~vkCmdPushConstants~^~VUID-vkCmdPushConstants-stageFlags-parameter~^~core~^~The spec valid usage text states 'stageFlags must be a valid combination of VkShaderStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushConstants-stageFlags-parameter)~^~implicit
VALIDATION_ERROR_1bc2dc03~^~Y~^~Unknown~^~vkCmdPushConstants~^~VUID-vkCmdPushConstants-stageFlags-requiredbitmask~^~core~^~The spec valid usage text states 'stageFlags must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushConstants-stageFlags-requiredbitmask)~^~implicit
-VALIDATION_ERROR_1be00009~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commonparent~^~core~^~The spec valid usage text states 'Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commonparent)~^~implicit
+VALIDATION_ERROR_1be00009~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commonparent~^~core~^~The spec valid usage text states 'Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commonparent)~^~implicit
VALIDATION_ERROR_1be002d6~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363~^~core~^~The spec valid usage text states 'pipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363)~^~
VALIDATION_ERROR_1be002d8~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-set-00364~^~core~^~The spec valid usage text states 'set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-set-00364)~^~
VALIDATION_ERROR_1be002da~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-set-00365~^~core~^~The spec valid usage text states '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' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-set-00365)~^~
-VALIDATION_ERROR_1be02401~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1be02401~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1be02413~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1be02415~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1be0541b~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength~^~core~^~The spec valid usage text states 'descriptorWriteCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength)~^~implicit
-VALIDATION_ERROR_1be0be01~^~N~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-layout-parameter~^~core~^~The spec valid usage text states 'layout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-layout-parameter)~^~implicit
+VALIDATION_ERROR_1be0be01~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-layout-parameter~^~core~^~The spec valid usage text states 'layout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-layout-parameter)~^~implicit
VALIDATION_ERROR_1be13601~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter~^~core~^~The spec valid usage text states 'pDescriptorWrites must be a pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter)~^~implicit
VALIDATION_ERROR_1be27e01~^~Y~^~Unknown~^~vkCmdPushDescriptorSetKHR~^~VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter~^~core~^~The spec valid usage text states 'pipelineBindPoint must be a valid VkPipelineBindPoint value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter)~^~implicit
VALIDATION_ERROR_1c000009~^~Y~^~Unknown~^~vkCmdPushDescriptorSetWithTemplateKHR~^~VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent~^~core~^~The spec valid usage text states 'Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent)~^~implicit
@@ -2173,7 +2173,7 @@
VALIDATION_ERROR_1c200019~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-bufferlevel~^~core~^~The spec valid usage text states 'commandBuffer must be a secondary VkCommandBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-bufferlevel)~^~implicit
VALIDATION_ERROR_1c200a62~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01329~^~core~^~The spec valid usage text states 'The provided commandBuffer must not have had a prior space reservation since its creation or the last reset.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01329)~^~
VALIDATION_ERROR_1c200a64~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01330~^~core~^~The spec valid usage text states 'The state of the commandBuffer must be legal to execute all commands within the sequence provided by the indirectCommandsLayout member of pProcessCommandsInfo.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-01330)~^~
-VALIDATION_ERROR_1c202401~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1c202401~^~Y~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1c202413~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1c202415~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1c221a01~^~N~^~Unknown~^~vkCmdReserveSpaceForCommandsNVX~^~VUID-vkCmdReserveSpaceForCommandsNVX-pReserveSpaceInfo-parameter~^~core~^~The spec valid usage text states 'pReserveSpaceInfo must be a pointer to a valid VkCmdReserveSpaceForCommandsInfoNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdReserveSpaceForCommandsNVX-pReserveSpaceInfo-parameter)~^~implicit
@@ -2244,7 +2244,7 @@
VALIDATION_ERROR_1d0000da~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-deviceMask-00109~^~core~^~The spec valid usage text states 'deviceMask must not be zero' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-deviceMask-00109)~^~
VALIDATION_ERROR_1d0000dc~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-deviceMask-00110~^~core~^~The spec valid usage text states 'deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfoKHX::deviceMask value when the command buffer began recording.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-deviceMask-00110)~^~
VALIDATION_ERROR_1d0000de~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-deviceMask-00111~^~core~^~The spec valid usage text states 'If vkCmdSetDeviceMaskKHX is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfoKHX::deviceMask value when the render pass instance began recording.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-deviceMask-00111)~^~
-VALIDATION_ERROR_1d002401~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1d002401~^~Y~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1d002413~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1d002415~^~N~^~Unknown~^~vkCmdSetDeviceMaskKHX~^~VUID-vkCmdSetDeviceMaskKHX-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDeviceMaskKHX-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1d20048e~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-None-00583~^~core~^~The spec valid usage text states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-None-00583)~^~
@@ -2254,7 +2254,7 @@
VALIDATION_ERROR_1d200496~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-x-00587~^~core~^~The spec valid usage text states 'The x and y members of offset in VkRect2D must be greater than or equal to 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-x-00587)~^~
VALIDATION_ERROR_1d200498~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-offset-00588~^~core~^~The spec valid usage text states 'Evaluation of (offset.x + extent.width) in VkRect2D must not cause a signed integer addition overflow' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-offset-00588)~^~
VALIDATION_ERROR_1d20049a~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-offset-00589~^~core~^~The spec valid usage text states 'Evaluation of (offset.y + extent.height) in VkRect2D must not cause a signed integer addition overflow' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-offset-00589)~^~
-VALIDATION_ERROR_1d202401~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1d202401~^~Y~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1d202413~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1d202415~^~N~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1d205c1b~^~Y~^~Unknown~^~vkCmdSetDiscardRectangleEXT~^~VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength~^~core~^~The spec valid usage text states 'discardRectangleCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength)~^~implicit
@@ -2321,7 +2321,7 @@
VALIDATION_ERROR_1e200a56~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-firstViewport-01323~^~core~^~The spec valid usage text states 'firstViewport must be less than VkPhysicalDeviceLimits::maxViewports' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-firstViewport-01323)~^~
VALIDATION_ERROR_1e200a58~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-firstViewport-01324~^~core~^~The spec valid usage text states 'The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-firstViewport-01324)~^~
VALIDATION_ERROR_1e200a5a~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-pViewportScalings-01325~^~core~^~The spec valid usage text states 'pViewportScalings must be a pointer to an array of viewportCount valid VkViewportWScalingNV structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-pViewportScalings-01325)~^~
-VALIDATION_ERROR_1e202401~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter)~^~implicit
+VALIDATION_ERROR_1e202401~^~Y~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter)~^~implicit
VALIDATION_ERROR_1e202413~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording)~^~implicit
VALIDATION_ERROR_1e202415~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool~^~core~^~The spec valid usage text states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool)~^~implicit
VALIDATION_ERROR_1e230a1b~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength~^~core~^~The spec valid usage text states 'viewportCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength)~^~implicit
@@ -2451,7 +2451,7 @@
VALIDATION_ERROR_2081e201~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-vkCreateGraphicsPipelines-pPipelines-parameter~^~core~^~The spec valid usage text states 'pPipelines must be a pointer to an array of createInfoCount VkPipeline handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateGraphicsPipelines-pPipelines-parameter)~^~implicit
VALIDATION_ERROR_20828001~^~Y~^~None~^~vkCreateGraphicsPipelines~^~VUID-vkCreateGraphicsPipelines-pipelineCache-parameter~^~core~^~The spec valid usage text states 'If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateGraphicsPipelines-pipelineCache-parameter)~^~implicit
VALIDATION_ERROR_20828007~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~VUID-vkCreateGraphicsPipelines-pipelineCache-parent~^~core~^~The spec valid usage text states 'If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateGraphicsPipelines-pipelineCache-parent)~^~implicit
-VALIDATION_ERROR_20a0bc01~^~N~^~Unknown~^~vkCreateIOSSurfaceMVK~^~VUID-vkCreateIOSSurfaceMVK-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIOSSurfaceMVK-instance-parameter)~^~implicit
+VALIDATION_ERROR_20a0bc01~^~Y~^~Unknown~^~vkCreateIOSSurfaceMVK~^~VUID-vkCreateIOSSurfaceMVK-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIOSSurfaceMVK-instance-parameter)~^~implicit
VALIDATION_ERROR_20a0ec01~^~N~^~Unknown~^~vkCreateIOSSurfaceMVK~^~VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_20a11e01~^~N~^~Unknown~^~vkCreateIOSSurfaceMVK~^~VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkIOSSurfaceCreateInfoMVK structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_20a24801~^~Y~^~Unknown~^~vkCreateIOSSurfaceMVK~^~VUID-vkCreateIOSSurfaceMVK-pSurface-parameter~^~core~^~The spec valid usage text states 'pSurface must be a pointer to a VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIOSSurfaceMVK-pSurface-parameter)~^~implicit
@@ -2464,7 +2464,7 @@
VALIDATION_ERROR_20e0ec01~^~N~^~Unknown~^~vkCreateImageView~^~VUID-vkCreateImageView-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateImageView-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_20e11e01~^~N~^~Unknown~^~vkCreateImageView~^~VUID-vkCreateImageView-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkImageViewCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateImageView-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_20e26a01~^~Y~^~Unknown~^~vkCreateImageView~^~VUID-vkCreateImageView-pView-parameter~^~core~^~The spec valid usage text states 'pView must be a pointer to a VkImageView handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateImageView-pView-parameter)~^~implicit
-VALIDATION_ERROR_21005601~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_21005601~^~Y~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter)~^~implicit
VALIDATION_ERROR_2100ec01~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-vkCreateIndirectCommandsLayoutNVX-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIndirectCommandsLayoutNVX-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_21011e01~^~N~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-vkCreateIndirectCommandsLayoutNVX-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkIndirectCommandsLayoutCreateInfoNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIndirectCommandsLayoutNVX-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_21019201~^~Y~^~Unknown~^~vkCreateIndirectCommandsLayoutNVX~^~VUID-vkCreateIndirectCommandsLayoutNVX-pIndirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'pIndirectCommandsLayout must be a pointer to a VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateIndirectCommandsLayoutNVX-pIndirectCommandsLayout-parameter)~^~implicit
@@ -2472,7 +2472,7 @@
VALIDATION_ERROR_2120ec01~^~N~^~Unknown~^~vkCreateInstance~^~VUID-vkCreateInstance-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateInstance-pAllocator-parameter)~^~implicit, A bad pointer can cause the loader to seg fault. Unfortunately, the validity of the allocator is hard to determine. The structure does not contain an sType and is not created by the Vulkan API. We could try to catch an access violation exception but the loader is written in C, which does not support exceptions. It's not clear if this could be validated in a layer before loader consumption. We could also try to install a signal handler in the loader.
VALIDATION_ERROR_21211e01~^~N~^~Unknown~^~vkCreateInstance~^~VUID-vkCreateInstance-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkInstanceCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateInstance-pCreateInfo-parameter)~^~implicit, We check the sType correctly, but this can cause the loader to seg fault when pCreateInfo is a nullptr.
VALIDATION_ERROR_21219c01~^~Y~^~Unknown~^~vkCreateInstance~^~VUID-vkCreateInstance-pInstance-parameter~^~core~^~The spec valid usage text states 'pInstance must be a pointer to a VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateInstance-pInstance-parameter)~^~implicit, How should this be validated? Aside from insidious type-casting, the type will be validated by the compiler. The instance has not been created yet and will likely have no presence in the layers.
-VALIDATION_ERROR_2140bc01~^~N~^~Unknown~^~vkCreateMacOSSurfaceMVK~^~VUID-vkCreateMacOSSurfaceMVK-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMacOSSurfaceMVK-instance-parameter)~^~implicit
+VALIDATION_ERROR_2140bc01~^~Y~^~Unknown~^~vkCreateMacOSSurfaceMVK~^~VUID-vkCreateMacOSSurfaceMVK-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMacOSSurfaceMVK-instance-parameter)~^~implicit
VALIDATION_ERROR_2140ec01~^~N~^~Unknown~^~vkCreateMacOSSurfaceMVK~^~VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_21411e01~^~N~^~Unknown~^~vkCreateMacOSSurfaceMVK~^~VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkMacOSSurfaceCreateInfoMVK structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_21424801~^~Y~^~Unknown~^~vkCreateMacOSSurfaceMVK~^~VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter~^~core~^~The spec valid usage text states 'pSurface must be a pointer to a VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter)~^~implicit
@@ -2480,7 +2480,7 @@
VALIDATION_ERROR_2160ec01~^~N~^~Unknown~^~vkCreateMirSurfaceKHR~^~VUID-vkCreateMirSurfaceKHR-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMirSurfaceKHR-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_21611e01~^~N~^~Unknown~^~vkCreateMirSurfaceKHR~^~VUID-vkCreateMirSurfaceKHR-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkMirSurfaceCreateInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMirSurfaceKHR-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_21624801~^~Y~^~Unknown~^~vkCreateMirSurfaceKHR~^~VUID-vkCreateMirSurfaceKHR-pSurface-parameter~^~core~^~The spec valid usage text states 'pSurface must be a pointer to a VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateMirSurfaceKHR-pSurface-parameter)~^~implicit
-VALIDATION_ERROR_21805601~^~N~^~Unknown~^~vkCreateObjectTableNVX~^~VUID-vkCreateObjectTableNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateObjectTableNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_21805601~^~Y~^~Unknown~^~vkCreateObjectTableNVX~^~VUID-vkCreateObjectTableNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateObjectTableNVX-device-parameter)~^~implicit
VALIDATION_ERROR_2180ec01~^~N~^~Unknown~^~vkCreateObjectTableNVX~^~VUID-vkCreateObjectTableNVX-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateObjectTableNVX-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_21811e01~^~N~^~Unknown~^~vkCreateObjectTableNVX~^~VUID-vkCreateObjectTableNVX-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkObjectTableCreateInfoNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateObjectTableNVX-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_2181d001~^~Y~^~Unknown~^~vkCreateObjectTableNVX~^~VUID-vkCreateObjectTableNVX-pObjectTable-parameter~^~core~^~The spec valid usage text states 'pObjectTable must be a pointer to a VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateObjectTableNVX-pObjectTable-parameter)~^~implicit
@@ -2521,7 +2521,7 @@
VALIDATION_ERROR_22a0ec01~^~N~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-vkCreateSwapchainKHR-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateSwapchainKHR-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_22a11e01~^~N~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-vkCreateSwapchainKHR-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkSwapchainCreateInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateSwapchainKHR-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_22a25201~^~Y~^~Unknown~^~vkCreateSwapchainKHR~^~VUID-vkCreateSwapchainKHR-pSwapchain-parameter~^~core~^~The spec valid usage text states 'pSwapchain must be a pointer to a VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateSwapchainKHR-pSwapchain-parameter)~^~implicit
-VALIDATION_ERROR_22c0bc01~^~N~^~Unknown~^~vkCreateViSurfaceNN~^~VUID-vkCreateViSurfaceNN-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateViSurfaceNN-instance-parameter)~^~implicit
+VALIDATION_ERROR_22c0bc01~^~Y~^~Unknown~^~vkCreateViSurfaceNN~^~VUID-vkCreateViSurfaceNN-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateViSurfaceNN-instance-parameter)~^~implicit
VALIDATION_ERROR_22c0ec01~^~N~^~Unknown~^~vkCreateViSurfaceNN~^~VUID-vkCreateViSurfaceNN-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateViSurfaceNN-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_22c11e01~^~N~^~Unknown~^~vkCreateViSurfaceNN~^~VUID-vkCreateViSurfaceNN-pCreateInfo-parameter~^~core~^~The spec valid usage text states 'pCreateInfo must be a pointer to a valid VkViSurfaceCreateInfoNN structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateViSurfaceNN-pCreateInfo-parameter)~^~implicit
VALIDATION_ERROR_22c24801~^~Y~^~Unknown~^~vkCreateViSurfaceNN~^~VUID-vkCreateViSurfaceNN-pSurface-parameter~^~core~^~The spec valid usage text states 'pSurface must be a pointer to a VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCreateViSurfaceNN-pSurface-parameter)~^~implicit
@@ -2644,9 +2644,9 @@
VALIDATION_ERROR_25600a90~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-01352~^~core~^~The spec valid usage text states 'All submitted commands that refer to indirectCommandsLayout must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-01352)~^~
VALIDATION_ERROR_25600a92~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01353~^~core~^~The spec valid usage text states 'If VkAllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01353)~^~
VALIDATION_ERROR_25600a94~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01354~^~core~^~The spec valid usage text states 'If no VkAllocationCallbacks were provided when objectTable was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-objectTable-01354)~^~
-VALIDATION_ERROR_25605601~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter)~^~implicit
-VALIDATION_ERROR_2560b401~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter)~^~implicit
-VALIDATION_ERROR_2560b407~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent~^~core~^~The spec valid usage text states 'indirectCommandsLayout must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent)~^~implicit
+VALIDATION_ERROR_25605601~^~Y~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_2560b401~^~Y~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter~^~core~^~The spec valid usage text states 'indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter)~^~implicit
+VALIDATION_ERROR_2560b407~^~Y~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent~^~core~^~The spec valid usage text states 'indirectCommandsLayout must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent)~^~implicit
VALIDATION_ERROR_2560ec01~^~N~^~Unknown~^~vkDestroyIndirectCommandsLayoutNVX~^~VUID-vkDestroyIndirectCommandsLayoutNVX-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyIndirectCommandsLayoutNVX-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_258004ea~^~Y~^~Unknown~^~vkDestroyInstance~^~VUID-vkDestroyInstance-instance-00629~^~core~^~The spec valid usage text states 'All child objects created using instance must have been destroyed prior to destroying instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyInstance-instance-00629)~^~
VALIDATION_ERROR_258004ec~^~Y~^~Unknown~^~vkDestroyInstance~^~VUID-vkDestroyInstance-instance-00630~^~core~^~The spec valid usage text states 'If VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyInstance-instance-00630)~^~
@@ -2656,9 +2656,9 @@
VALIDATION_ERROR_25a00aa2~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-01361~^~core~^~The spec valid usage text states 'All submitted commands that refer to objectTable must have completed execution.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-01361)~^~
VALIDATION_ERROR_25a00aa4~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-01362~^~core~^~The spec valid usage text states 'If VkAllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-01362)~^~
VALIDATION_ERROR_25a00aa6~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-01363~^~core~^~The spec valid usage text states 'If no VkAllocationCallbacks were provided when objectTable was created, pAllocator must be NULL.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-01363)~^~
-VALIDATION_ERROR_25a05601~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-device-parameter)~^~implicit
-VALIDATION_ERROR_25a0d801~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-parameter)~^~implicit
-VALIDATION_ERROR_25a0d807~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-parent)~^~implicit
+VALIDATION_ERROR_25a05601~^~Y~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_25a0d801~^~Y~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-parameter)~^~implicit
+VALIDATION_ERROR_25a0d807~^~Y~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-objectTable-parent)~^~implicit
VALIDATION_ERROR_25a0ec01~^~N~^~Unknown~^~vkDestroyObjectTableNVX~^~VUID-vkDestroyObjectTableNVX-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyObjectTableNVX-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_25c005fa~^~Y~^~PipelineInUseDestroyedSignaled~^~vkDestroyPipeline~^~VUID-vkDestroyPipeline-pipeline-00765~^~core~^~The spec valid usage text states 'All submitted commands that refer to pipeline must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyPipeline-pipeline-00765)~^~
VALIDATION_ERROR_25c005fc~^~Y~^~Unknown~^~vkDestroyPipeline~^~VUID-vkDestroyPipeline-pipeline-00766~^~core~^~The spec valid usage text states 'If VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyPipeline-pipeline-00766)~^~
@@ -2719,7 +2719,7 @@
VALIDATION_ERROR_26c0bc01~^~Y~^~None~^~vkDestroySurfaceKHR~^~VUID-vkDestroySurfaceKHR-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySurfaceKHR-instance-parameter)~^~implicit
VALIDATION_ERROR_26c0ec01~^~N~^~Unknown~^~vkDestroySurfaceKHR~^~VUID-vkDestroySurfaceKHR-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySurfaceKHR-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_26c2ec01~^~Y~^~None~^~vkDestroySurfaceKHR~^~VUID-vkDestroySurfaceKHR-surface-parameter~^~core~^~The spec valid usage text states 'If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySurfaceKHR-surface-parameter)~^~implicit
-VALIDATION_ERROR_26c2ec07~^~N~^~Unknown~^~vkDestroySurfaceKHR~^~VUID-vkDestroySurfaceKHR-surface-parent~^~core~^~The spec valid usage text states 'If surface is a valid handle, it must have been created, allocated, or retrieved from instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySurfaceKHR-surface-parent)~^~implicit
+VALIDATION_ERROR_26c2ec07~^~Y~^~Unknown~^~vkDestroySurfaceKHR~^~VUID-vkDestroySurfaceKHR-surface-parent~^~core~^~The spec valid usage text states 'If surface is a valid handle, it must have been created, allocated, or retrieved from instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySurfaceKHR-surface-parent)~^~implicit
VALIDATION_ERROR_26e00a04~^~N~^~Unknown~^~vkDestroySwapchainKHR~^~VUID-vkDestroySwapchainKHR-swapchain-01282~^~core~^~The spec valid usage text states 'All uses of presentable images acquired from swapchain must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySwapchainKHR-swapchain-01282)~^~
VALIDATION_ERROR_26e00a06~^~Y~^~Unknown~^~vkDestroySwapchainKHR~^~VUID-vkDestroySwapchainKHR-swapchain-01283~^~core~^~The spec valid usage text states 'If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySwapchainKHR-swapchain-01283)~^~
VALIDATION_ERROR_26e00a08~^~Y~^~Unknown~^~vkDestroySwapchainKHR~^~VUID-vkDestroySwapchainKHR-swapchain-01284~^~core~^~The spec valid usage text states 'If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySwapchainKHR-swapchain-01284)~^~
@@ -2727,8 +2727,8 @@
VALIDATION_ERROR_26e0ec01~^~N~^~Unknown~^~vkDestroySwapchainKHR~^~VUID-vkDestroySwapchainKHR-pAllocator-parameter~^~core~^~The spec valid usage text states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySwapchainKHR-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_26e2f001~^~N~^~Unknown~^~vkDestroySwapchainKHR~^~VUID-vkDestroySwapchainKHR-swapchain-parameter~^~core~^~The spec valid usage text states 'If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroySwapchainKHR-swapchain-parameter)~^~implicit
VALIDATION_ERROR_27005601~^~Y~^~None~^~vkDeviceWaitIdle~^~VUID-vkDeviceWaitIdle-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDeviceWaitIdle-device-parameter)~^~implicit
-VALIDATION_ERROR_27205601~^~N~^~Unknown~^~vkDisplayPowerControlEXT~^~VUID-vkDisplayPowerControlEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDisplayPowerControlEXT-device-parameter)~^~implicit
-VALIDATION_ERROR_27206001~^~N~^~Unknown~^~vkDisplayPowerControlEXT~^~VUID-vkDisplayPowerControlEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDisplayPowerControlEXT-display-parameter)~^~implicit
+VALIDATION_ERROR_27205601~^~Y~^~Unknown~^~vkDisplayPowerControlEXT~^~VUID-vkDisplayPowerControlEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDisplayPowerControlEXT-device-parameter)~^~implicit
+VALIDATION_ERROR_27206001~^~Y~^~Unknown~^~vkDisplayPowerControlEXT~^~VUID-vkDisplayPowerControlEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDisplayPowerControlEXT-display-parameter)~^~implicit
VALIDATION_ERROR_27214e01~^~N~^~Unknown~^~vkDisplayPowerControlEXT~^~VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter~^~core~^~The spec valid usage text states 'pDisplayPowerInfo must be a pointer to a valid VkDisplayPowerInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter)~^~implicit
VALIDATION_ERROR_27400076~^~N~^~Unknown~^~vkEndCommandBuffer~^~VUID-vkEndCommandBuffer-commandBuffer-00059~^~core~^~The spec valid usage text states 'commandBuffer must be in the recording state.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEndCommandBuffer-commandBuffer-00059)~^~
VALIDATION_ERROR_27400078~^~Y~^~Unknown~^~vkEndCommandBuffer~^~VUID-vkEndCommandBuffer-commandBuffer-00060~^~core~^~The spec valid usage text states 'If commandBuffer is a primary command buffer, there must not be an active render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEndCommandBuffer-commandBuffer-00060)~^~
@@ -2747,7 +2747,7 @@
VALIDATION_ERROR_27a1f601~^~N~^~Unknown~^~vkEnumerateInstanceExtensionProperties~^~VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter~^~core~^~The spec valid usage text states 'pPropertyCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter)~^~implicit
VALIDATION_ERROR_27c1f401~^~N~^~Unknown~^~vkEnumerateInstanceLayerProperties~^~VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a pointer to an array of pPropertyCount VkLayerProperties structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter)~^~implicit
VALIDATION_ERROR_27c1f601~^~N~^~Unknown~^~vkEnumerateInstanceLayerProperties~^~VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter~^~core~^~The spec valid usage text states 'pPropertyCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter)~^~implicit
-VALIDATION_ERROR_27e0bc01~^~N~^~Unknown~^~vkEnumeratePhysicalDeviceGroupsKHX~^~VUID-vkEnumeratePhysicalDeviceGroupsKHX-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumeratePhysicalDeviceGroupsKHX-instance-parameter)~^~implicit
+VALIDATION_ERROR_27e0bc01~^~Y~^~Unknown~^~vkEnumeratePhysicalDeviceGroupsKHX~^~VUID-vkEnumeratePhysicalDeviceGroupsKHX-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumeratePhysicalDeviceGroupsKHX-instance-parameter)~^~implicit
VALIDATION_ERROR_27e1d801~^~N~^~Unknown~^~vkEnumeratePhysicalDeviceGroupsKHX~^~VUID-vkEnumeratePhysicalDeviceGroupsKHX-pPhysicalDeviceGroupCount-parameter~^~core~^~The spec valid usage text states 'pPhysicalDeviceGroupCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumeratePhysicalDeviceGroupsKHX-pPhysicalDeviceGroupCount-parameter)~^~implicit
VALIDATION_ERROR_27e1da01~^~Y~^~Unknown~^~vkEnumeratePhysicalDeviceGroupsKHX~^~VUID-vkEnumeratePhysicalDeviceGroupsKHX-pPhysicalDeviceGroupProperties-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupPropertiesKHX structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumeratePhysicalDeviceGroupsKHX-pPhysicalDeviceGroupProperties-parameter)~^~implicit
VALIDATION_ERROR_2800bc01~^~Y~^~None~^~vkEnumeratePhysicalDevices~^~VUID-vkEnumeratePhysicalDevices-instance-parameter~^~core~^~The spec valid usage text states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkEnumeratePhysicalDevices-instance-parameter)~^~implicit
@@ -2785,15 +2785,15 @@
VALIDATION_ERROR_28c00568~^~N~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-localDeviceIndex-00692~^~core~^~The spec valid usage text states 'localDeviceIndex must be a valid device index' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-localDeviceIndex-00692)~^~
VALIDATION_ERROR_28c0056a~^~N~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-remoteDeviceIndex-00693~^~core~^~The spec valid usage text states 'remoteDeviceIndex must be a valid device index' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-remoteDeviceIndex-00693)~^~
VALIDATION_ERROR_28c0056c~^~N~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-localDeviceIndex-00694~^~core~^~The spec valid usage text states 'localDeviceIndex must not equal remoteDeviceIndex' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-localDeviceIndex-00694)~^~
-VALIDATION_ERROR_28c05601~^~N~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-device-parameter)~^~implicit
+VALIDATION_ERROR_28c05601~^~Y~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-device-parameter)~^~implicit
VALIDATION_ERROR_28c1d401~^~Y~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-pPeerMemoryFeatures-parameter~^~core~^~The spec valid usage text states 'pPeerMemoryFeatures must be a pointer to a combination of VkPeerMemoryFeatureFlagBitsKHX values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-pPeerMemoryFeatures-parameter)~^~implicit
VALIDATION_ERROR_28c1d403~^~N~^~Unknown~^~vkGetDeviceGroupPeerMemoryFeaturesKHX~^~VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-pPeerMemoryFeatures-requiredbitmask~^~core~^~The spec valid usage text states 'pPeerMemoryFeatures must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPeerMemoryFeaturesKHX-pPeerMemoryFeatures-requiredbitmask)~^~implicit
-VALIDATION_ERROR_28e05601~^~N~^~Unknown~^~vkGetDeviceGroupPresentCapabilitiesKHX~^~VUID-vkGetDeviceGroupPresentCapabilitiesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPresentCapabilitiesKHX-device-parameter)~^~implicit
+VALIDATION_ERROR_28e05601~^~Y~^~Unknown~^~vkGetDeviceGroupPresentCapabilitiesKHX~^~VUID-vkGetDeviceGroupPresentCapabilitiesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPresentCapabilitiesKHX-device-parameter)~^~implicit
VALIDATION_ERROR_28e13c01~^~N~^~Unknown~^~vkGetDeviceGroupPresentCapabilitiesKHX~^~VUID-vkGetDeviceGroupPresentCapabilitiesKHX-pDeviceGroupPresentCapabilities-parameter~^~core~^~The spec valid usage text states 'pDeviceGroupPresentCapabilities must be a pointer to a VkDeviceGroupPresentCapabilitiesKHX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupPresentCapabilitiesKHX-pDeviceGroupPresentCapabilities-parameter)~^~implicit
-VALIDATION_ERROR_29005601~^~N~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-device-parameter)~^~implicit
+VALIDATION_ERROR_29005601~^~Y~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-device-parameter)~^~implicit
VALIDATION_ERROR_2901be01~^~Y~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-pModes-parameter~^~core~^~The spec valid usage text states 'pModes must be a pointer to a combination of VkDeviceGroupPresentModeFlagBitsKHX values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-pModes-parameter)~^~implicit
VALIDATION_ERROR_2901be03~^~N~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-pModes-requiredbitmask~^~core~^~The spec valid usage text states 'pModes must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-pModes-requiredbitmask)~^~implicit
-VALIDATION_ERROR_2902ec01~^~N~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-surface-parameter)~^~implicit
+VALIDATION_ERROR_2902ec01~^~Y~^~Unknown~^~vkGetDeviceGroupSurfacePresentModesKHX~^~VUID-vkGetDeviceGroupSurfacePresentModesKHX-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceGroupSurfacePresentModesKHX-surface-parameter)~^~implicit
VALIDATION_ERROR_29200564~^~N~^~Unknown~^~vkGetDeviceMemoryCommitment~^~VUID-vkGetDeviceMemoryCommitment-memory-00690~^~core~^~The spec valid usage text states 'memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceMemoryCommitment-memory-00690)~^~
VALIDATION_ERROR_29205601~^~Y~^~None~^~vkGetDeviceMemoryCommitment~^~VUID-vkGetDeviceMemoryCommitment-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceMemoryCommitment-device-parameter)~^~implicit
VALIDATION_ERROR_2920c601~^~Y~^~None~^~vkGetDeviceMemoryCommitment~^~VUID-vkGetDeviceMemoryCommitment-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetDeviceMemoryCommitment-memory-parameter)~^~implicit
@@ -2842,7 +2842,7 @@
VALIDATION_ERROR_2a81c001~^~N~^~Unknown~^~vkGetInstanceProcAddr~^~VUID-vkGetInstanceProcAddr-pName-parameter~^~core~^~The spec valid usage text states 'pName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetInstanceProcAddr-pName-parameter)~^~implicit, The loader uses strcmp to dispatch and can fail to dispatch when name is not null-terminated. i.e. Validation layers are never called.
VALIDATION_ERROR_2aa0053e~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-handleType-00671~^~core~^~The spec valid usage text states 'handleType must have been included in VkExportMemoryAllocateInfoKHR::handleTypes when memory was created.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-handleType-00671)~^~
VALIDATION_ERROR_2aa00540~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-handleType-00672~^~core~^~The spec valid usage text states 'handleType must be defined as a POSIX file descriptor handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-handleType-00672)~^~
-VALIDATION_ERROR_2aa05601~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_2aa05601~^~Y~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-device-parameter)~^~implicit
VALIDATION_ERROR_2aa09c01~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_2aa0c601~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-memory-parameter)~^~implicit
VALIDATION_ERROR_2aa0c607~^~N~^~Unknown~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-memory-parent~^~core~^~The spec valid usage text states 'memory must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-memory-parent)~^~implicit
@@ -2850,13 +2850,13 @@
VALIDATION_ERROR_2aa39e01~^~N~^~None~^~vkGetMemoryFdKHR~^~VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter~^~core~^~The spec valid usage text states 'pGetFdInfo must be a pointer to a valid VkMemoryGetFdInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter)~^~implicit
VALIDATION_ERROR_2ac00542~^~N~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-fd-00673~^~core~^~The spec valid usage text states 'fd must be an external memory handle created outside of the Vulkan API.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-fd-00673)~^~
VALIDATION_ERROR_2ac00544~^~N~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-handleType-00674~^~core~^~The spec valid usage text states 'handleType must not be one of the handle types defined as opaque.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-handleType-00674)~^~
-VALIDATION_ERROR_2ac05601~^~N~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_2ac05601~^~Y~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-device-parameter)~^~implicit
VALIDATION_ERROR_2ac09c01~^~Y~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_2ac1ae01~^~N~^~Unknown~^~vkGetMemoryFdPropertiesKHR~^~VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter~^~core~^~The spec valid usage text states 'pMemoryFdProperties must be a pointer to a VkMemoryFdPropertiesKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter)~^~implicit
VALIDATION_ERROR_2ae0052c~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-handleType-00662~^~core~^~The spec valid usage text states 'handleType must have been included in VkExportMemoryAllocateInfoKHR::handleTypes when memory was created.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-handleType-00662)~^~
VALIDATION_ERROR_2ae0052e~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-handleType-00663~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-handleType-00663)~^~
VALIDATION_ERROR_2ae00530~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-handleType-00664~^~core~^~The spec valid usage text states 'handleType must be defined as an NT handle or a global share handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-handleType-00664)~^~
-VALIDATION_ERROR_2ae05601~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_2ae05601~^~Y~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-device-parameter)~^~implicit
VALIDATION_ERROR_2ae09c01~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_2ae0c601~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-memory-parameter)~^~implicit
VALIDATION_ERROR_2ae0c607~^~N~^~Unknown~^~vkGetMemoryWin32HandleKHR~^~VUID-vkGetMemoryWin32HandleKHR-memory-parent~^~core~^~The spec valid usage text states 'memory must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleKHR-memory-parent)~^~implicit
@@ -2871,7 +2871,7 @@
VALIDATION_ERROR_2b017c01~^~Y~^~Unknown~^~vkGetMemoryWin32HandleNV~^~VUID-vkGetMemoryWin32HandleNV-pHandle-parameter~^~core~^~The spec valid usage text states 'pHandle must be a pointer to a HANDLE value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandleNV-pHandle-parameter)~^~implicit
VALIDATION_ERROR_2b200532~^~N~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665~^~core~^~The spec valid usage text states 'handle must be an external memory handle created outside of the Vulkan API.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665)~^~
VALIDATION_ERROR_2b200534~^~N~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666~^~core~^~The spec valid usage text states 'handleType must not be one of the handle types defined as opaque.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666)~^~
-VALIDATION_ERROR_2b205601~^~N~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_2b205601~^~Y~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter)~^~implicit
VALIDATION_ERROR_2b209c01~^~Y~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_2b21b601~^~N~^~Unknown~^~vkGetMemoryWin32HandlePropertiesKHR~^~VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter~^~core~^~The spec valid usage text states 'pMemoryWin32HandleProperties must be a pointer to a VkMemoryWin32HandlePropertiesKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter)~^~implicit
VALIDATION_ERROR_2b405601~^~Y~^~Unknown~^~vkGetPastPresentationTimingGOOGLE~^~VUID-vkGetPastPresentationTimingGOOGLE-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPastPresentationTimingGOOGLE-device-parameter)~^~implicit
@@ -2886,7 +2886,7 @@
VALIDATION_ERROR_2b827a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceDisplayPropertiesKHR~^~VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2ba16201~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalBufferPropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-pExternalBufferInfo-parameter~^~core~^~The spec valid usage text states 'pExternalBufferInfo must be a pointer to a valid VkPhysicalDeviceExternalBufferInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-pExternalBufferInfo-parameter)~^~implicit
VALIDATION_ERROR_2ba16401~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalBufferPropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-pExternalBufferProperties-parameter~^~core~^~The spec valid usage text states 'pExternalBufferProperties must be a pointer to a VkExternalBufferPropertiesKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-pExternalBufferProperties-parameter)~^~implicit
-VALIDATION_ERROR_2ba27a01~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalBufferPropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2ba27a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalBufferPropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalBufferPropertiesKHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2bc08201~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalImageFormatPropertiesNV~^~VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter~^~core~^~The spec valid usage text states 'externalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter)~^~implicit
VALIDATION_ERROR_2bc09001~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalImageFormatPropertiesNV~^~VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkImageCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_2bc09201~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalImageFormatPropertiesNV~^~VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter)~^~implicit
@@ -2898,20 +2898,20 @@
VALIDATION_ERROR_2bc30603~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalImageFormatPropertiesNV~^~VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask~^~core~^~The spec valid usage text states 'usage must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask)~^~implicit
VALIDATION_ERROR_2be16801~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-pExternalSemaphoreInfo-parameter~^~core~^~The spec valid usage text states 'pExternalSemaphoreInfo must be a pointer to a valid VkPhysicalDeviceExternalSemaphoreInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-pExternalSemaphoreInfo-parameter)~^~implicit
VALIDATION_ERROR_2be16a01~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-pExternalSemaphoreProperties-parameter~^~core~^~The spec valid usage text states 'pExternalSemaphoreProperties must be a pointer to a VkExternalSemaphorePropertiesKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-pExternalSemaphoreProperties-parameter)~^~implicit
-VALIDATION_ERROR_2be27a01~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2be27a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalSemaphorePropertiesKHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2c016e01~^~Y~^~None~^~vkGetPhysicalDeviceFeatures~^~VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter~^~core~^~The spec valid usage text states 'pFeatures must be a pointer to a VkPhysicalDeviceFeatures structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter)~^~implicit
-VALIDATION_ERROR_2c027a01~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures~^~VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2c027a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceFeatures~^~VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2c216e01~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~VUID-vkGetPhysicalDeviceFeatures2KHR-pFeatures-parameter~^~core~^~The spec valid usage text states 'pFeatures must be a pointer to a VkPhysicalDeviceFeatures2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures2KHR-pFeatures-parameter)~^~implicit
-VALIDATION_ERROR_2c227a01~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~VUID-vkGetPhysicalDeviceFeatures2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2c227a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~VUID-vkGetPhysicalDeviceFeatures2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFeatures2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2c409201~^~Y~^~Unknown~^~vkGetPhysicalDeviceFormatProperties~^~VUID-vkGetPhysicalDeviceFormatProperties-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties-format-parameter)~^~implicit
VALIDATION_ERROR_2c417601~^~Y~^~Unknown~^~vkGetPhysicalDeviceFormatProperties~^~VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter~^~core~^~The spec valid usage text states 'pFormatProperties must be a pointer to a VkFormatProperties structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter)~^~implicit
VALIDATION_ERROR_2c427a01~^~Y~^~None~^~vkGetPhysicalDeviceFormatProperties~^~VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2c609201~^~Y~^~Unknown~^~vkGetPhysicalDeviceFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceFormatProperties2KHR-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties2KHR-format-parameter)~^~implicit
VALIDATION_ERROR_2c617601~^~N~^~Unknown~^~vkGetPhysicalDeviceFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceFormatProperties2KHR-pFormatProperties-parameter~^~core~^~The spec valid usage text states 'pFormatProperties must be a pointer to a VkFormatProperties2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties2KHR-pFormatProperties-parameter)~^~implicit
-VALIDATION_ERROR_2c627a01~^~N~^~Unknown~^~vkGetPhysicalDeviceFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2c627a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2c816e01~^~N~^~Unknown~^~vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX~^~VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pFeatures-parameter~^~core~^~The spec valid usage text states 'pFeatures must be a pointer to a VkDeviceGeneratedCommandsFeaturesNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pFeatures-parameter)~^~implicit
VALIDATION_ERROR_2c81a401~^~N~^~Unknown~^~vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX~^~VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pLimits-parameter~^~core~^~The spec valid usage text states 'pLimits must be a pointer to a VkDeviceGeneratedCommandsLimitsNVX structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-pLimits-parameter)~^~implicit
-VALIDATION_ERROR_2c827a01~^~N~^~Unknown~^~vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX~^~VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2c827a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX~^~VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2ca09001~^~Y~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties~^~VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkImageCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_2ca09201~^~Y~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties~^~VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter)~^~implicit
VALIDATION_ERROR_2ca18401~^~Y~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties~^~VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter~^~core~^~The spec valid usage text states 'pImageFormatProperties must be a pointer to a VkImageFormatProperties structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter)~^~implicit
@@ -2922,22 +2922,22 @@
VALIDATION_ERROR_2ca30603~^~Y~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties~^~VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask~^~core~^~The spec valid usage text states 'usage must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask)~^~implicit
VALIDATION_ERROR_2cc18201~^~N~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-pImageFormatInfo-parameter~^~core~^~The spec valid usage text states 'pImageFormatInfo must be a pointer to a valid VkPhysicalDeviceImageFormatInfo2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-pImageFormatInfo-parameter)~^~implicit
VALIDATION_ERROR_2cc18401~^~N~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-pImageFormatProperties-parameter~^~core~^~The spec valid usage text states 'pImageFormatProperties must be a pointer to a VkImageFormatProperties2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-pImageFormatProperties-parameter)~^~implicit
-VALIDATION_ERROR_2cc27a01~^~N~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2cc27a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceImageFormatProperties2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2ce1b001~^~Y~^~Unknown~^~vkGetPhysicalDeviceMemoryProperties~^~VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter~^~core~^~The spec valid usage text states 'pMemoryProperties must be a pointer to a VkPhysicalDeviceMemoryProperties structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter)~^~implicit
VALIDATION_ERROR_2ce27a01~^~Y~^~None~^~vkGetPhysicalDeviceMemoryProperties~^~VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2d01b001~^~N~^~Unknown~^~vkGetPhysicalDeviceMemoryProperties2KHR~^~VUID-vkGetPhysicalDeviceMemoryProperties2KHR-pMemoryProperties-parameter~^~core~^~The spec valid usage text states 'pMemoryProperties must be a pointer to a VkPhysicalDeviceMemoryProperties2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMemoryProperties2KHR-pMemoryProperties-parameter)~^~implicit
-VALIDATION_ERROR_2d027a01~^~N~^~Unknown~^~vkGetPhysicalDeviceMemoryProperties2KHR~^~VUID-vkGetPhysicalDeviceMemoryProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMemoryProperties2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2d027a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceMemoryProperties2KHR~^~VUID-vkGetPhysicalDeviceMemoryProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMemoryProperties2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2d2009e2~^~Y~^~Unknown~^~vkGetPhysicalDeviceMirPresentationSupportKHR~^~VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-queueFamilyIndex-01265~^~core~^~The spec valid usage text states 'queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-queueFamilyIndex-01265)~^~
VALIDATION_ERROR_2d203001~^~Y~^~Unknown~^~vkGetPhysicalDeviceMirPresentationSupportKHR~^~VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-connection-parameter~^~core~^~The spec valid usage text states 'connection must be a pointer to a MirConnection value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-connection-parameter)~^~implicit
VALIDATION_ERROR_2d227a01~^~Y~^~None~^~vkGetPhysicalDeviceMirPresentationSupportKHR~^~VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2d420a01~^~N~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-pRectCount-parameter~^~core~^~The spec valid usage text states 'pRectCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-pRectCount-parameter)~^~implicit
VALIDATION_ERROR_2d420e01~^~Y~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-pRects-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a pointer to an array of pRectCount VkRect2D structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-pRects-parameter)~^~implicit
-VALIDATION_ERROR_2d427a01~^~N~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-physicalDevice-parameter)~^~implicit
-VALIDATION_ERROR_2d42ec01~^~N~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-surface-parameter)~^~implicit
+VALIDATION_ERROR_2d427a01~^~Y~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2d42ec01~^~Y~^~Unknown~^~vkGetPhysicalDevicePresentRectanglesKHX~^~VUID-vkGetPhysicalDevicePresentRectanglesKHX-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDevicePresentRectanglesKHX-surface-parameter)~^~implicit
VALIDATION_ERROR_2d61f401~^~Y~^~Unknown~^~vkGetPhysicalDeviceProperties~^~VUID-vkGetPhysicalDeviceProperties-pProperties-parameter~^~core~^~The spec valid usage text states 'pProperties must be a pointer to a VkPhysicalDeviceProperties structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceProperties-pProperties-parameter)~^~implicit
VALIDATION_ERROR_2d627a01~^~Y~^~None~^~vkGetPhysicalDeviceProperties~^~VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2d81f401~^~N~^~Unknown~^~vkGetPhysicalDeviceProperties2KHR~^~VUID-vkGetPhysicalDeviceProperties2KHR-pProperties-parameter~^~core~^~The spec valid usage text states 'pProperties must be a pointer to a VkPhysicalDeviceProperties2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceProperties2KHR-pProperties-parameter)~^~implicit
-VALIDATION_ERROR_2d827a01~^~N~^~Unknown~^~vkGetPhysicalDeviceProperties2KHR~^~VUID-vkGetPhysicalDeviceProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceProperties2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2d827a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceProperties2KHR~^~VUID-vkGetPhysicalDeviceProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceProperties2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2da20001~^~Y~^~Unknown~^~vkGetPhysicalDeviceQueueFamilyProperties~^~VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter)~^~implicit
VALIDATION_ERROR_2da20201~^~N~^~Unknown~^~vkGetPhysicalDeviceQueueFamilyProperties~^~VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter~^~core~^~The spec valid usage text states 'pQueueFamilyPropertyCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter)~^~implicit
VALIDATION_ERROR_2da27a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceQueueFamilyProperties~^~VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter)~^~implicit
@@ -2957,10 +2957,10 @@
VALIDATION_ERROR_2e017401~^~N~^~Unknown~^~vkGetPhysicalDeviceSparseImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pFormatInfo-parameter~^~core~^~The spec valid usage text states 'pFormatInfo must be a pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pFormatInfo-parameter)~^~implicit
VALIDATION_ERROR_2e01f401~^~Y~^~Unknown~^~vkGetPhysicalDeviceSparseImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pProperties-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a pointer to an array of pPropertyCount VkSparseImageFormatProperties2KHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pProperties-parameter)~^~implicit
VALIDATION_ERROR_2e01f601~^~N~^~Unknown~^~vkGetPhysicalDeviceSparseImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pPropertyCount-parameter~^~core~^~The spec valid usage text states 'pPropertyCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-pPropertyCount-parameter)~^~implicit
-VALIDATION_ERROR_2e027a01~^~N~^~Unknown~^~vkGetPhysicalDeviceSparseImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2e027a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceSparseImageFormatProperties2KHR~^~VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSparseImageFormatProperties2KHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2e224a01~^~N~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2EXT~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter~^~core~^~The spec valid usage text states 'pSurfaceCapabilities must be a pointer to a VkSurfaceCapabilities2EXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter)~^~implicit
-VALIDATION_ERROR_2e227a01~^~N~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2EXT~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter)~^~implicit
-VALIDATION_ERROR_2e22ec01~^~N~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2EXT~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter)~^~implicit
+VALIDATION_ERROR_2e227a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2EXT~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2e22ec01~^~Y~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2EXT~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter~^~core~^~The spec valid usage text states 'surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter)~^~implicit
VALIDATION_ERROR_2e424a01~^~N~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2KHR~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter~^~core~^~The spec valid usage text states 'pSurfaceCapabilities must be a pointer to a VkSurfaceCapabilities2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter)~^~implicit
VALIDATION_ERROR_2e425001~^~N~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2KHR~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter~^~core~^~The spec valid usage text states 'pSurfaceInfo must be a pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter)~^~implicit
VALIDATION_ERROR_2e427a01~^~Y~^~Unknown~^~vkGetPhysicalDeviceSurfaceCapabilities2KHR~^~VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter)~^~implicit
@@ -3013,7 +3013,7 @@
VALIDATION_ERROR_2fa29807~^~Y~^~Unknown~^~vkGetQueryPoolResults~^~VUID-vkGetQueryPoolResults-queryPool-parent~^~core~^~The spec valid usage text states 'queryPool must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetQueryPoolResults-queryPool-parent)~^~implicit
VALIDATION_ERROR_2fc06601~^~Y~^~Unknown~^~vkGetRandROutputDisplayEXT~^~VUID-vkGetRandROutputDisplayEXT-dpy-parameter~^~core~^~The spec valid usage text states 'dpy must be a pointer to a Display value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRandROutputDisplayEXT-dpy-parameter)~^~implicit
VALIDATION_ERROR_2fc14801~^~Y~^~Unknown~^~vkGetRandROutputDisplayEXT~^~VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter~^~core~^~The spec valid usage text states 'pDisplay must be a pointer to a VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter)~^~implicit
-VALIDATION_ERROR_2fc27a01~^~N~^~Unknown~^~vkGetRandROutputDisplayEXT~^~VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_2fc27a01~^~Y~^~Unknown~^~vkGetRandROutputDisplayEXT~^~VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_2fe05601~^~Y~^~Unknown~^~vkGetRefreshCycleDurationGOOGLE~^~VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter)~^~implicit
VALIDATION_ERROR_2fe15001~^~Y~^~Unknown~^~vkGetRefreshCycleDurationGOOGLE~^~VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter~^~core~^~The spec valid usage text states 'pDisplayTimingProperties must be a pointer to a VkRefreshCycleDurationGOOGLE structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter)~^~implicit
VALIDATION_ERROR_2fe2f001~^~Y~^~Unknown~^~vkGetRefreshCycleDurationGOOGLE~^~VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter)~^~implicit
@@ -3026,7 +3026,7 @@
VALIDATION_ERROR_302008dc~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-handleType-01134~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-handleType-01134)~^~
VALIDATION_ERROR_302008de~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-handleType-01135~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-handleType-01135)~^~
VALIDATION_ERROR_302008e0~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-handleType-01136~^~core~^~The spec valid usage text states 'handleType must be defined as a POSIX file descriptor handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-handleType-01136)~^~
-VALIDATION_ERROR_30205601~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_30205601~^~Y~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30209c01~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_30216c01~^~Y~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-pFd-parameter~^~core~^~The spec valid usage text states 'pFd must be a pointer to a int value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-pFd-parameter)~^~implicit
VALIDATION_ERROR_3022b801~^~N~^~Unknown~^~vkGetSemaphoreFdKHR~^~VUID-vkGetSemaphoreFdKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreFdKHR-semaphore-parameter)~^~implicit
@@ -3038,7 +3038,7 @@
VALIDATION_ERROR_304008d2~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-handleType-01129~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-handleType-01129)~^~
VALIDATION_ERROR_304008d4~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-handleType-01130~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-handleType-01130)~^~
VALIDATION_ERROR_304008d6~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-handleType-01131~^~core~^~The spec valid usage text states 'handleType must be defined as an NT handle or a global share handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-handleType-01131)~^~
-VALIDATION_ERROR_30405601~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_30405601~^~Y~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30409c01~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_30417c01~^~Y~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter~^~core~^~The spec valid usage text states 'pHandle must be a pointer to a HANDLE value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter)~^~implicit
VALIDATION_ERROR_3042b801~^~N~^~Unknown~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-semaphore-parameter)~^~implicit
@@ -3046,19 +3046,19 @@
VALIDATION_ERROR_3043a001~^~N~^~None~^~vkGetSemaphoreWin32HandleKHR~^~VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter~^~core~^~The spec valid usage text states 'pGetWin32HandleInfo must be a pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter)~^~implicit
VALIDATION_ERROR_306009ba~^~N~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-swapchain-01245~^~core~^~The spec valid usage text states 'One or more present commands on swapchain must have been processed by the presentation engine.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-swapchain-01245)~^~
VALIDATION_ERROR_30603601~^~Y~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-counter-parameter~^~core~^~The spec valid usage text states 'counter must be a valid VkSurfaceCounterFlagBitsEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-counter-parameter)~^~implicit
-VALIDATION_ERROR_30605601~^~N~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-device-parameter)~^~implicit
+VALIDATION_ERROR_30605601~^~Y~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-device-parameter)~^~implicit
VALIDATION_ERROR_30611c01~^~Y~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter~^~core~^~The spec valid usage text states 'pCounterValue must be a pointer to a uint64_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter)~^~implicit
-VALIDATION_ERROR_3062f001~^~N~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-swapchain-parameter)~^~implicit
+VALIDATION_ERROR_3062f001~^~Y~^~Unknown~^~vkGetSwapchainCounterEXT~^~VUID-vkGetSwapchainCounterEXT-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainCounterEXT-swapchain-parameter)~^~implicit
VALIDATION_ERROR_30805601~^~Y~^~None~^~vkGetSwapchainImagesKHR~^~VUID-vkGetSwapchainImagesKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainImagesKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30825401~^~N~^~Unknown~^~vkGetSwapchainImagesKHR~^~VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter~^~core~^~The spec valid usage text states 'pSwapchainImageCount must be a pointer to a uint32_t value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter)~^~implicit
VALIDATION_ERROR_30825601~^~Y~^~Unknown~^~vkGetSwapchainImagesKHR~^~VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter~^~core~^~The spec valid usage text states 'If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a pointer to an array of pSwapchainImageCount VkImage handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter)~^~implicit
-VALIDATION_ERROR_3082f001~^~N~^~Unknown~^~vkGetSwapchainImagesKHR~^~VUID-vkGetSwapchainImagesKHR-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainImagesKHR-swapchain-parameter)~^~implicit
+VALIDATION_ERROR_3082f001~^~Y~^~Unknown~^~vkGetSwapchainImagesKHR~^~VUID-vkGetSwapchainImagesKHR-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainImagesKHR-swapchain-parameter)~^~implicit
VALIDATION_ERROR_30a05601~^~Y~^~Unknown~^~vkGetSwapchainStatusKHR~^~VUID-vkGetSwapchainStatusKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainStatusKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30a2f001~^~Y~^~Unknown~^~vkGetSwapchainStatusKHR~^~VUID-vkGetSwapchainStatusKHR-swapchain-parameter~^~core~^~The spec valid usage text states 'swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetSwapchainStatusKHR-swapchain-parameter)~^~implicit
VALIDATION_ERROR_30c008ec~^~N~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-vkImportSemaphoreFdKHR-semaphore-01142~^~core~^~The spec valid usage text states 'semaphore must not be associated with any queue command that has not yet completed execution on that queue' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreFdKHR-semaphore-01142)~^~
-VALIDATION_ERROR_30c05601~^~N~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-vkImportSemaphoreFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreFdKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_30c05601~^~Y~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-vkImportSemaphoreFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreFdKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30c18e01~^~N~^~Unknown~^~vkImportSemaphoreFdKHR~^~VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter~^~core~^~The spec valid usage text states 'pImportSemaphoreFdInfo must be a pointer to a valid VkImportSemaphoreFdInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter)~^~implicit
-VALIDATION_ERROR_30e05601~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-vkImportSemaphoreWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreWin32HandleKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_30e05601~^~Y~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-vkImportSemaphoreWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreWin32HandleKHR-device-parameter)~^~implicit
VALIDATION_ERROR_30e19001~^~N~^~Unknown~^~vkImportSemaphoreWin32HandleKHR~^~VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter~^~core~^~The spec valid usage text states 'pImportSemaphoreWin32HandleInfo must be a pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter)~^~implicit
VALIDATION_ERROR_31005601~^~Y~^~None~^~vkInvalidateMappedMemoryRanges~^~VUID-vkInvalidateMappedMemoryRanges-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkInvalidateMappedMemoryRanges-device-parameter)~^~implicit
VALIDATION_ERROR_3100c81b~^~N~^~Unknown~^~vkInvalidateMappedMemoryRanges~^~VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength~^~core~^~The spec valid usage text states 'memoryRangeCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength)~^~implicit
@@ -3114,26 +3114,26 @@
VALIDATION_ERROR_31a24001~^~Y~^~Unknown~^~vkQueueSubmit~^~VUID-vkQueueSubmit-pSubmits-parameter~^~core~^~The spec valid usage text states 'If submitCount is not 0, pSubmits must be a pointer to an array of submitCount valid VkSubmitInfo structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkQueueSubmit-pSubmits-parameter)~^~implicit
VALIDATION_ERROR_31a29c01~^~Y~^~None~^~vkQueueSubmit~^~VUID-vkQueueSubmit-queue-parameter~^~core~^~The spec valid usage text states 'queue must be a valid VkQueue handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkQueueSubmit-queue-parameter)~^~implicit
VALIDATION_ERROR_31c29c01~^~Y~^~None~^~vkQueueWaitIdle~^~VUID-vkQueueWaitIdle-queue-parameter~^~core~^~The spec valid usage text states 'queue must be a valid VkQueue handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkQueueWaitIdle-queue-parameter)~^~implicit
-VALIDATION_ERROR_31e05601~^~N~^~Unknown~^~vkRegisterDeviceEventEXT~^~VUID-vkRegisterDeviceEventEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDeviceEventEXT-device-parameter)~^~implicit
+VALIDATION_ERROR_31e05601~^~Y~^~Unknown~^~vkRegisterDeviceEventEXT~^~VUID-vkRegisterDeviceEventEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDeviceEventEXT-device-parameter)~^~implicit
VALIDATION_ERROR_31e0ec01~^~Y~^~Unknown~^~vkRegisterDeviceEventEXT~^~VUID-vkRegisterDeviceEventEXT-pAllocator-parameter~^~core~^~The spec valid usage text states 'pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDeviceEventEXT-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_31e13a01~^~N~^~Unknown~^~vkRegisterDeviceEventEXT~^~VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter~^~core~^~The spec valid usage text states 'pDeviceEventInfo must be a pointer to a valid VkDeviceEventInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter)~^~implicit
VALIDATION_ERROR_31e17001~^~Y~^~Unknown~^~vkRegisterDeviceEventEXT~^~VUID-vkRegisterDeviceEventEXT-pFence-parameter~^~core~^~The spec valid usage text states 'pFence must be a pointer to a VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDeviceEventEXT-pFence-parameter)~^~implicit
-VALIDATION_ERROR_32005601~^~N~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-device-parameter)~^~implicit
-VALIDATION_ERROR_32006001~^~N~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-display-parameter)~^~implicit
+VALIDATION_ERROR_32005601~^~Y~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-device-parameter)~^~implicit
+VALIDATION_ERROR_32006001~^~Y~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-display-parameter)~^~implicit
VALIDATION_ERROR_3200ec01~^~Y~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-pAllocator-parameter~^~core~^~The spec valid usage text states 'pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-pAllocator-parameter)~^~implicit
VALIDATION_ERROR_32014c01~^~N~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter~^~core~^~The spec valid usage text states 'pDisplayEventInfo must be a pointer to a valid VkDisplayEventInfoEXT structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter)~^~implicit
VALIDATION_ERROR_32017001~^~Y~^~Unknown~^~vkRegisterDisplayEventEXT~^~VUID-vkRegisterDisplayEventEXT-pFence-parameter~^~core~^~The spec valid usage text states 'pFence must be a pointer to a VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterDisplayEventEXT-pFence-parameter)~^~implicit
VALIDATION_ERROR_32200aa8~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-pObjectTableEntry-01364~^~core~^~The spec valid usage text states 'The contents of pObjectTableEntry must yield plausible bindings supported by the device.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-pObjectTableEntry-01364)~^~
VALIDATION_ERROR_32200aaa~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-pObjectIndices-01365~^~core~^~The spec valid usage text states 'At any pObjectIndices there must not be a registered resource already.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-pObjectIndices-01365)~^~
VALIDATION_ERROR_32200aac~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-pObjectIndices-01366~^~core~^~The spec valid usage text states 'Any value inside pObjectIndices must be below the appropriate VkObjectTableCreateInfoNVX::pObjectEntryCounts limits provided at objectTable creation time.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-pObjectIndices-01366)~^~
-VALIDATION_ERROR_32205601~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_32205601~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-device-parameter)~^~implicit
VALIDATION_ERROR_3220d61b~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-objectCount-arraylength~^~core~^~The spec valid usage text states 'objectCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-objectCount-arraylength)~^~implicit
-VALIDATION_ERROR_3220d801~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-objectTable-parameter)~^~implicit
-VALIDATION_ERROR_3220d807~^~N~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-objectTable-parent)~^~implicit
+VALIDATION_ERROR_3220d801~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-objectTable-parameter)~^~implicit
+VALIDATION_ERROR_3220d807~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-objectTable-parent)~^~implicit
VALIDATION_ERROR_3221cc01~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-pObjectIndices-parameter~^~core~^~The spec valid usage text states 'pObjectIndices must be a pointer to an array of objectCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-pObjectIndices-parameter)~^~implicit
VALIDATION_ERROR_32229201~^~Y~^~Unknown~^~vkRegisterObjectsNVX~^~VUID-vkRegisterObjectsNVX-ppObjectTableEntries-parameter~^~core~^~The spec valid usage text states 'ppObjectTableEntries must be a pointer to an array of objectCount valid VkObjectTableEntryNVX structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkRegisterObjectsNVX-ppObjectTableEntries-parameter)~^~implicit
-VALIDATION_ERROR_32406001~^~N~^~Unknown~^~vkReleaseDisplayEXT~^~VUID-vkReleaseDisplayEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkReleaseDisplayEXT-display-parameter)~^~implicit
-VALIDATION_ERROR_32427a01~^~N~^~Unknown~^~vkReleaseDisplayEXT~^~VUID-vkReleaseDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkReleaseDisplayEXT-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_32406001~^~Y~^~Unknown~^~vkReleaseDisplayEXT~^~VUID-vkReleaseDisplayEXT-display-parameter~^~core~^~The spec valid usage text states 'display must be a valid VkDisplayKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkReleaseDisplayEXT-display-parameter)~^~implicit
+VALIDATION_ERROR_32427a01~^~Y~^~Unknown~^~vkReleaseDisplayEXT~^~VUID-vkReleaseDisplayEXT-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkReleaseDisplayEXT-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_3260005a~^~Y~^~Unknown~^~vkResetCommandBuffer~^~VUID-vkResetCommandBuffer-commandBuffer-00045~^~core~^~The spec valid usage text states 'commandBuffer must not be in the pending state' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkResetCommandBuffer-commandBuffer-00045)~^~
VALIDATION_ERROR_3260005c~^~Y~^~CommandBufferResetErrors~^~vkResetCommandBuffer~^~VUID-vkResetCommandBuffer-commandBuffer-00046~^~core~^~The spec valid usage text states 'commandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkResetCommandBuffer-commandBuffer-00046)~^~
VALIDATION_ERROR_32602401~^~Y~^~Unknown~^~vkResetCommandBuffer~^~VUID-vkResetCommandBuffer-commandBuffer-parameter~^~core~^~The spec valid usage text states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkResetCommandBuffer-commandBuffer-parameter)~^~implicit
@@ -3160,13 +3160,13 @@
VALIDATION_ERROR_33005601~^~Y~^~None~^~vkSetEvent~^~VUID-vkSetEvent-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetEvent-device-parameter)~^~implicit
VALIDATION_ERROR_33007e01~^~Y~^~None~^~vkSetEvent~^~VUID-vkSetEvent-event-parameter~^~core~^~The spec valid usage text states 'event must be a valid VkEvent handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetEvent-event-parameter)~^~implicit
VALIDATION_ERROR_33007e07~^~Y~^~Unknown~^~vkSetEvent~^~VUID-vkSetEvent-event-parent~^~core~^~The spec valid usage text states 'event must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetEvent-event-parent)~^~implicit
-VALIDATION_ERROR_33205601~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-device-parameter)~^~implicit
+VALIDATION_ERROR_33205601~^~Y~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-device-parameter)~^~implicit
VALIDATION_ERROR_3321ba01~^~Y~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-pMetadata-parameter~^~core~^~The spec valid usage text states 'pMetadata must be a pointer to an array of swapchainCount valid VkHdrMetadataEXT structures' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-pMetadata-parameter)~^~implicit
-VALIDATION_ERROR_33225801~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-pSwapchains-parameter~^~core~^~The spec valid usage text states 'pSwapchains must be a pointer to an array of swapchainCount valid VkSwapchainKHR handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-pSwapchains-parameter)~^~implicit
+VALIDATION_ERROR_33225801~^~Y~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-pSwapchains-parameter~^~core~^~The spec valid usage text states 'pSwapchains must be a pointer to an array of swapchainCount valid VkSwapchainKHR handles' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-pSwapchains-parameter)~^~implicit
VALIDATION_ERROR_3322f21b~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength~^~core~^~The spec valid usage text states 'swapchainCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength)~^~implicit
-VALIDATION_ERROR_33402801~^~N~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-commandPool-parameter~^~core~^~The spec valid usage text states 'commandPool must be a valid VkCommandPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-commandPool-parameter)~^~implicit
-VALIDATION_ERROR_33402807~^~N~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-commandPool-parent~^~core~^~The spec valid usage text states 'commandPool must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-commandPool-parent)~^~implicit
-VALIDATION_ERROR_33405601~^~N~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_33402801~^~Y~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-commandPool-parameter~^~core~^~The spec valid usage text states 'commandPool must be a valid VkCommandPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-commandPool-parameter)~^~implicit
+VALIDATION_ERROR_33402807~^~Y~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-commandPool-parent~^~core~^~The spec valid usage text states 'commandPool must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-commandPool-parent)~^~implicit
+VALIDATION_ERROR_33405601~^~Y~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-device-parameter)~^~implicit
VALIDATION_ERROR_33409005~^~Y~^~Unknown~^~vkTrimCommandPoolKHR~^~VUID-vkTrimCommandPoolKHR-flags-zerobitmask~^~core~^~The spec valid usage text states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkTrimCommandPoolKHR-flags-zerobitmask)~^~implicit
VALIDATION_ERROR_33600562~^~Y~^~Unknown~^~vkUnmapMemory~^~VUID-vkUnmapMemory-memory-00689~^~core~^~The spec valid usage text states 'memory must currently be mapped' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnmapMemory-memory-00689)~^~
VALIDATION_ERROR_33605601~^~Y~^~None~^~vkUnmapMemory~^~VUID-vkUnmapMemory-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnmapMemory-device-parameter)~^~implicit
@@ -3175,10 +3175,10 @@
VALIDATION_ERROR_33800aba~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-pObjectIndices-01373~^~core~^~The spec valid usage text states 'At any pObjectIndices there must be a registered resource already.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-pObjectIndices-01373)~^~
VALIDATION_ERROR_33800abc~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-01374~^~core~^~The spec valid usage text states 'The pObjectEntryTypes of the resource at pObjectIndices must match.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-01374)~^~
VALIDATION_ERROR_33800abe~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-None-01375~^~core~^~The spec valid usage text states 'All operations on the device using the registered resource must have been completed.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-None-01375)~^~
-VALIDATION_ERROR_33805601~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-device-parameter)~^~implicit
+VALIDATION_ERROR_33805601~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-device-parameter)~^~implicit
VALIDATION_ERROR_3380d61b~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-objectCount-arraylength~^~core~^~The spec valid usage text states 'objectCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-objectCount-arraylength)~^~implicit
-VALIDATION_ERROR_3380d801~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-objectTable-parameter)~^~implicit
-VALIDATION_ERROR_3380d807~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-objectTable-parent)~^~implicit
+VALIDATION_ERROR_3380d801~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-objectTable-parameter~^~core~^~The spec valid usage text states 'objectTable must be a valid VkObjectTableNVX handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-objectTable-parameter)~^~implicit
+VALIDATION_ERROR_3380d807~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-objectTable-parent~^~core~^~The spec valid usage text states 'objectTable must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-objectTable-parent)~^~implicit
VALIDATION_ERROR_3381c801~^~N~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-parameter~^~core~^~The spec valid usage text states 'pObjectEntryTypes must be a pointer to an array of objectCount valid VkObjectEntryTypeNVX values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-pObjectEntryTypes-parameter)~^~implicit
VALIDATION_ERROR_3381cc01~^~Y~^~Unknown~^~vkUnregisterObjectsNVX~^~VUID-vkUnregisterObjectsNVX-pObjectIndices-parameter~^~core~^~The spec valid usage text states 'pObjectIndices must be a pointer to an array of objectCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUnregisterObjectsNVX-pObjectIndices-parameter)~^~implicit
VALIDATION_ERROR_33a04801~^~Y~^~Unknown~^~vkUpdateDescriptorSetWithTemplateKHR~^~VUID-vkUpdateDescriptorSetWithTemplateKHR-descriptorSet-parameter~^~core~^~The spec valid usage text states 'descriptorSet must be a valid VkDescriptorSet handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkUpdateDescriptorSetWithTemplateKHR-descriptorSet-parameter)~^~implicit
@@ -3259,12 +3259,12 @@
VALIDATION_ERROR_3962b00b~^~Y~^~None~^~VkPhysicalDeviceExternalFenceInfoKHR~^~VUID-VkPhysicalDeviceExternalFenceInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDeviceExternalFenceInfoKHR-sType-sType)~^~implicit
VALIDATION_ERROR_3981c40d~^~N~^~None~^~VkExternalFencePropertiesKHR~^~VUID-VkExternalFencePropertiesKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkExternalFencePropertiesKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3982b00b~^~Y~^~None~^~VkExternalFencePropertiesKHR~^~VUID-VkExternalFencePropertiesKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkExternalFencePropertiesKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_39a27a01~^~N~^~None~^~vkGetPhysicalDeviceExternalFencePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-physicalDevice-parameter)~^~implicit
+VALIDATION_ERROR_39a27a01~^~Y~^~None~^~vkGetPhysicalDeviceExternalFencePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-physicalDevice-parameter~^~core~^~The spec valid usage text states 'physicalDevice must be a valid VkPhysicalDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-physicalDevice-parameter)~^~implicit
VALIDATION_ERROR_39a3a201~^~N~^~None~^~vkGetPhysicalDeviceExternalFencePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-pExternalFenceInfo-parameter~^~core~^~The spec valid usage text states 'pExternalFenceInfo must be a pointer to a valid VkPhysicalDeviceExternalFenceInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-pExternalFenceInfo-parameter)~^~implicit
VALIDATION_ERROR_39a3a401~^~N~^~None~^~vkGetPhysicalDeviceExternalFencePropertiesKHR~^~VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-pExternalFenceProperties-parameter~^~core~^~The spec valid usage text states 'pExternalFenceProperties must be a pointer to a VkExternalFencePropertiesKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetPhysicalDeviceExternalFencePropertiesKHR-pExternalFenceProperties-parameter)~^~implicit
VALIDATION_ERROR_39c00b70~^~N~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-handleType-01464~^~core~^~The spec valid usage text states 'handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-handleType-01464)~^~
VALIDATION_ERROR_39c00b72~^~N~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-handleType-01465~^~core~^~The spec valid usage text states 'The fence from which handleType was exported must have been created on the same underlying physical device as fence.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-handleType-01465)~^~
-VALIDATION_ERROR_39c08801~^~N~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-fence-parameter)~^~implicit
+VALIDATION_ERROR_39c08801~^~Y~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-fence-parameter)~^~implicit
VALIDATION_ERROR_39c09001~^~Y~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkFenceImportFlagBitsKHR values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-flags-parameter)~^~implicit
VALIDATION_ERROR_39c09c01~^~Y~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalFenceHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_39c1c40d~^~Y~^~None~^~VkImportFenceFdInfoKHR~^~VUID-VkImportFenceFdInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-pNext-pNext)~^~implicit
@@ -3273,14 +3273,14 @@
VALIDATION_ERROR_39e00b5c~^~N~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-handleType-01454~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-handleType-01454)~^~
VALIDATION_ERROR_39e00b5e~^~N~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-fence-01455~^~core~^~The spec valid usage text states '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 VkExternalFencePropertiesKHR::exportFromImportedHandleTypes for handleType.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-fence-01455)~^~
VALIDATION_ERROR_39e00b60~^~N~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-handleType-01456~^~core~^~The spec valid usage text states 'handleType must be defined as a POSIX file descriptor handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-handleType-01456)~^~
-VALIDATION_ERROR_39e08801~^~N~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-fence-parameter)~^~implicit
+VALIDATION_ERROR_39e08801~^~Y~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-fence-parameter)~^~implicit
VALIDATION_ERROR_39e09c01~^~Y~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalFenceHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_39e1c40d~^~Y~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_39e2b00b~^~Y~^~None~^~VkFenceGetFdInfoKHR~^~VUID-VkFenceGetFdInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetFdInfoKHR-sType-sType)~^~implicit
VALIDATION_ERROR_3a000b6e~^~N~^~None~^~vkImportFenceFdKHR~^~VUID-vkImportFenceFdKHR-fence-01463~^~core~^~The spec valid usage text states 'fence must not be associated with any queue command that has not yet completed execution on that queue' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceFdKHR-fence-01463)~^~
-VALIDATION_ERROR_3a005601~^~N~^~None~^~vkImportFenceFdKHR~^~VUID-vkImportFenceFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceFdKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3a005601~^~Y~^~None~^~vkImportFenceFdKHR~^~VUID-vkImportFenceFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceFdKHR-device-parameter)~^~implicit
VALIDATION_ERROR_3a03a801~^~N~^~None~^~vkImportFenceFdKHR~^~VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter~^~core~^~The spec valid usage text states 'pImportFenceFdInfo must be a pointer to a valid VkImportFenceFdInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter)~^~implicit
-VALIDATION_ERROR_3a205601~^~N~^~None~^~vkGetFenceFdKHR~^~VUID-vkGetFenceFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceFdKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3a205601~^~Y~^~None~^~vkGetFenceFdKHR~^~VUID-vkGetFenceFdKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceFdKHR-device-parameter)~^~implicit
VALIDATION_ERROR_3a216c01~^~Y~^~None~^~vkGetFenceFdKHR~^~VUID-vkGetFenceFdKHR-pFd-parameter~^~core~^~The spec valid usage text states 'pFd must be a pointer to a int value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceFdKHR-pFd-parameter)~^~implicit
VALIDATION_ERROR_3a239e01~^~N~^~None~^~vkGetFenceFdKHR~^~VUID-vkGetFenceFdKHR-pGetFdInfo-parameter~^~core~^~The spec valid usage text states 'pGetFdInfo must be a pointer to a valid VkFenceGetFdInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceFdKHR-pGetFdInfo-parameter)~^~implicit
VALIDATION_ERROR_3a400b62~^~N~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457~^~core~^~The spec valid usage text states 'handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457)~^~
@@ -3289,7 +3289,7 @@
VALIDATION_ERROR_3a400b68~^~N~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460~^~core~^~The spec valid usage text states 'If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460)~^~
VALIDATION_ERROR_3a400b6a~^~N~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461~^~core~^~The spec valid usage text states 'If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461)~^~
VALIDATION_ERROR_3a400b6c~^~N~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-handle-01462~^~core~^~The spec valid usage text states 'If handle is not NULL, name must be NULL.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-handle-01462)~^~
-VALIDATION_ERROR_3a408801~^~N~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter)~^~implicit
+VALIDATION_ERROR_3a408801~^~Y~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter)~^~implicit
VALIDATION_ERROR_3a409001~^~Y~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkFenceImportFlagBitsKHR values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter)~^~implicit
VALIDATION_ERROR_3a409c01~^~Y~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'If handleType is not 0, handleType must be a valid VkExternalFenceHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_3a41c40d~^~Y~^~None~^~VkImportFenceWin32HandleInfoKHR~^~VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext)~^~implicit
@@ -3303,29 +3303,29 @@
VALIDATION_ERROR_3a800b54~^~N~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-fence-01450~^~core~^~The spec valid usage text states '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 VkExternalFencePropertiesKHR::exportFromImportedHandleTypes for handleType.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-fence-01450)~^~
VALIDATION_ERROR_3a800b56~^~N~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451~^~core~^~The spec valid usage text states '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.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451)~^~
VALIDATION_ERROR_3a800b58~^~N~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452~^~core~^~The spec valid usage text states 'handleType must be defined as an NT handle or a global share handle.' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452)~^~
-VALIDATION_ERROR_3a808801~^~N~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter)~^~implicit
+VALIDATION_ERROR_3a808801~^~Y~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter~^~core~^~The spec valid usage text states 'fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter)~^~implicit
VALIDATION_ERROR_3a809c01~^~Y~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalFenceHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_3a81c40d~^~Y~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3a82b00b~^~Y~^~None~^~VkFenceGetWin32HandleInfoKHR~^~VUID-VkFenceGetWin32HandleInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkFenceGetWin32HandleInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3aa05601~^~N~^~None~^~vkImportFenceWin32HandleKHR~^~VUID-vkImportFenceWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceWin32HandleKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3aa05601~^~Y~^~None~^~vkImportFenceWin32HandleKHR~^~VUID-vkImportFenceWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceWin32HandleKHR-device-parameter)~^~implicit
VALIDATION_ERROR_3aa3aa01~^~N~^~None~^~vkImportFenceWin32HandleKHR~^~VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter~^~core~^~The spec valid usage text states 'pImportFenceWin32HandleInfo must be a pointer to a valid VkImportFenceWin32HandleInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter)~^~implicit
-VALIDATION_ERROR_3ac05601~^~N~^~None~^~vkGetFenceWin32HandleKHR~^~VUID-vkGetFenceWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceWin32HandleKHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3ac05601~^~Y~^~None~^~vkGetFenceWin32HandleKHR~^~VUID-vkGetFenceWin32HandleKHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceWin32HandleKHR-device-parameter)~^~implicit
VALIDATION_ERROR_3ac17c01~^~Y~^~None~^~vkGetFenceWin32HandleKHR~^~VUID-vkGetFenceWin32HandleKHR-pHandle-parameter~^~core~^~The spec valid usage text states 'pHandle must be a pointer to a HANDLE value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceWin32HandleKHR-pHandle-parameter)~^~implicit
VALIDATION_ERROR_3ac3a001~^~N~^~None~^~vkGetFenceWin32HandleKHR~^~VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter~^~core~^~The spec valid usage text states 'pGetWin32HandleInfo must be a pointer to a valid VkFenceGetWin32HandleInfoKHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter)~^~implicit
VALIDATION_ERROR_3ae09c01~^~Y~^~None~^~VkSemaphoreGetFdInfoKHR~^~VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_3ae1c40d~^~Y~^~None~^~VkSemaphoreGetFdInfoKHR~^~VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3ae2b00b~^~Y~^~None~^~VkSemaphoreGetFdInfoKHR~^~VUID-VkSemaphoreGetFdInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetFdInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3ae2b801~^~N~^~None~^~VkSemaphoreGetFdInfoKHR~^~VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter)~^~implicit
+VALIDATION_ERROR_3ae2b801~^~Y~^~None~^~VkSemaphoreGetFdInfoKHR~^~VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter)~^~implicit
VALIDATION_ERROR_3b009c01~^~Y~^~None~^~VkSemaphoreGetWin32HandleInfoKHR~^~VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter)~^~implicit
VALIDATION_ERROR_3b01c40d~^~Y~^~None~^~VkSemaphoreGetWin32HandleInfoKHR~^~VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3b02b00b~^~Y~^~None~^~VkSemaphoreGetWin32HandleInfoKHR~^~VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3b02b801~^~N~^~None~^~VkSemaphoreGetWin32HandleInfoKHR~^~VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter)~^~implicit
+VALIDATION_ERROR_3b02b801~^~Y~^~None~^~VkSemaphoreGetWin32HandleInfoKHR~^~VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter~^~core~^~The spec valid usage text states 'semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter)~^~implicit
VALIDATION_ERROR_3b209c01~^~Y~^~None~^~VkMemoryGetFdInfoKHR~^~VUID-VkMemoryGetFdInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetFdInfoKHR-handleType-parameter)~^~implicit
-VALIDATION_ERROR_3b20c601~^~N~^~None~^~VkMemoryGetFdInfoKHR~^~VUID-VkMemoryGetFdInfoKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetFdInfoKHR-memory-parameter)~^~implicit
+VALIDATION_ERROR_3b20c601~^~Y~^~None~^~VkMemoryGetFdInfoKHR~^~VUID-VkMemoryGetFdInfoKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetFdInfoKHR-memory-parameter)~^~implicit
VALIDATION_ERROR_3b21c40d~^~Y~^~None~^~VkMemoryGetFdInfoKHR~^~VUID-VkMemoryGetFdInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetFdInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3b22b00b~^~Y~^~None~^~VkMemoryGetFdInfoKHR~^~VUID-VkMemoryGetFdInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetFdInfoKHR-sType-sType)~^~implicit
VALIDATION_ERROR_3b409c01~^~Y~^~None~^~VkMemoryGetWin32HandleInfoKHR~^~VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter~^~core~^~The spec valid usage text states 'handleType must be a valid VkExternalMemoryHandleTypeFlagBitsKHR value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter)~^~implicit
-VALIDATION_ERROR_3b40c601~^~N~^~None~^~VkMemoryGetWin32HandleInfoKHR~^~VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter)~^~implicit
+VALIDATION_ERROR_3b40c601~^~Y~^~None~^~VkMemoryGetWin32HandleInfoKHR~^~VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter~^~core~^~The spec valid usage text states 'memory must be a valid VkDeviceMemory handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter)~^~implicit
VALIDATION_ERROR_3b41c40d~^~Y~^~None~^~VkMemoryGetWin32HandleInfoKHR~^~VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3b42b00b~^~Y~^~None~^~VkMemoryGetWin32HandleInfoKHR~^~VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType)~^~implicit
VALIDATION_ERROR_3b61c40d~^~N~^~None~^~VkMemoryDedicatedRequirementsKHR~^~VUID-VkMemoryDedicatedRequirementsKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryDedicatedRequirementsKHR-pNext-pNext)~^~implicit
@@ -3342,18 +3342,18 @@
VALIDATION_ERROR_3b80a001~^~N~^~None~^~VkMemoryDedicatedAllocateInfoKHR~^~VUID-VkMemoryDedicatedAllocateInfoKHR-image-parameter~^~core~^~The spec valid usage text states 'If image is not VK_NULL_HANDLE, image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryDedicatedAllocateInfoKHR-image-parameter)~^~implicit
VALIDATION_ERROR_3b81c40d~^~N~^~None~^~VkMemoryDedicatedAllocateInfoKHR~^~VUID-VkMemoryDedicatedAllocateInfoKHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryDedicatedAllocateInfoKHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3b82b00b~^~N~^~None~^~VkMemoryDedicatedAllocateInfoKHR~^~VUID-VkMemoryDedicatedAllocateInfoKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryDedicatedAllocateInfoKHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3ba01a01~^~N~^~None~^~VkBufferMemoryRequirementsInfo2KHR~^~VUID-VkBufferMemoryRequirementsInfo2KHR-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryRequirementsInfo2KHR-buffer-parameter)~^~implicit
+VALIDATION_ERROR_3ba01a01~^~Y~^~None~^~VkBufferMemoryRequirementsInfo2KHR~^~VUID-VkBufferMemoryRequirementsInfo2KHR-buffer-parameter~^~core~^~The spec valid usage text states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryRequirementsInfo2KHR-buffer-parameter)~^~implicit
VALIDATION_ERROR_3ba1c40d~^~Y~^~None~^~VkBufferMemoryRequirementsInfo2KHR~^~VUID-VkBufferMemoryRequirementsInfo2KHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryRequirementsInfo2KHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3ba2b00b~^~Y~^~None~^~VkBufferMemoryRequirementsInfo2KHR~^~VUID-VkBufferMemoryRequirementsInfo2KHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferMemoryRequirementsInfo2KHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3bc0a001~^~N~^~None~^~VkImageMemoryRequirementsInfo2KHR~^~VUID-VkImageMemoryRequirementsInfo2KHR-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryRequirementsInfo2KHR-image-parameter)~^~implicit
+VALIDATION_ERROR_3bc0a001~^~Y~^~None~^~VkImageMemoryRequirementsInfo2KHR~^~VUID-VkImageMemoryRequirementsInfo2KHR-image-parameter~^~core~^~The spec valid usage text states 'image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryRequirementsInfo2KHR-image-parameter)~^~implicit
VALIDATION_ERROR_3bc1c40d~^~Y~^~None~^~VkImageMemoryRequirementsInfo2KHR~^~VUID-VkImageMemoryRequirementsInfo2KHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryRequirementsInfo2KHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3bc2b00b~^~Y~^~None~^~VkImageMemoryRequirementsInfo2KHR~^~VUID-VkImageMemoryRequirementsInfo2KHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageMemoryRequirementsInfo2KHR-sType-sType)~^~implicit
VALIDATION_ERROR_3c01c40d~^~N~^~None~^~VkMemoryRequirements2KHR~^~VUID-VkMemoryRequirements2KHR-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirementsKHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryRequirements2KHR-pNext-pNext)~^~implicit
VALIDATION_ERROR_3c02b00b~^~Y~^~None~^~VkMemoryRequirements2KHR~^~VUID-VkMemoryRequirements2KHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkMemoryRequirements2KHR-sType-sType)~^~implicit
-VALIDATION_ERROR_3c405601~^~N~^~None~^~vkGetImageMemoryRequirements2KHR~^~VUID-vkGetImageMemoryRequirements2KHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetImageMemoryRequirements2KHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3c405601~^~Y~^~None~^~vkGetImageMemoryRequirements2KHR~^~VUID-vkGetImageMemoryRequirements2KHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetImageMemoryRequirements2KHR-device-parameter)~^~implicit
VALIDATION_ERROR_3c41b401~^~N~^~None~^~vkGetImageMemoryRequirements2KHR~^~VUID-vkGetImageMemoryRequirements2KHR-pMemoryRequirements-parameter~^~core~^~The spec valid usage text states 'pMemoryRequirements must be a pointer to a VkMemoryRequirements2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetImageMemoryRequirements2KHR-pMemoryRequirements-parameter)~^~implicit
VALIDATION_ERROR_3c439c01~^~N~^~None~^~vkGetImageMemoryRequirements2KHR~^~VUID-vkGetImageMemoryRequirements2KHR-pInfo-parameter~^~core~^~The spec valid usage text states 'pInfo must be a pointer to a valid VkImageMemoryRequirementsInfo2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetImageMemoryRequirements2KHR-pInfo-parameter)~^~implicit
-VALIDATION_ERROR_3c605601~^~N~^~None~^~vkGetBufferMemoryRequirements2KHR~^~VUID-vkGetBufferMemoryRequirements2KHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetBufferMemoryRequirements2KHR-device-parameter)~^~implicit
+VALIDATION_ERROR_3c605601~^~Y~^~None~^~vkGetBufferMemoryRequirements2KHR~^~VUID-vkGetBufferMemoryRequirements2KHR-device-parameter~^~core~^~The spec valid usage text states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetBufferMemoryRequirements2KHR-device-parameter)~^~implicit
VALIDATION_ERROR_3c61b401~^~N~^~None~^~vkGetBufferMemoryRequirements2KHR~^~VUID-vkGetBufferMemoryRequirements2KHR-pMemoryRequirements-parameter~^~core~^~The spec valid usage text states 'pMemoryRequirements must be a pointer to a VkMemoryRequirements2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetBufferMemoryRequirements2KHR-pMemoryRequirements-parameter)~^~implicit
VALIDATION_ERROR_3c639c01~^~N~^~None~^~vkGetBufferMemoryRequirements2KHR~^~VUID-vkGetBufferMemoryRequirements2KHR-pInfo-parameter~^~core~^~The spec valid usage text states 'pInfo must be a pointer to a valid VkBufferMemoryRequirementsInfo2KHR structure' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkGetBufferMemoryRequirements2KHR-pInfo-parameter)~^~implicit
VALIDATION_ERROR_3ca2b00b~^~N~^~None~^~VkPhysicalDevice16BitStorageFeaturesKHR~^~VUID-VkPhysicalDevice16BitStorageFeaturesKHR-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkPhysicalDevice16BitStorageFeaturesKHR-sType-sType)~^~implicit