From: Mike Schuchardt Date: Wed, 7 Dec 2016 01:03:56 +0000 (-0700) Subject: layers: Add error enums to Destroy APIs X-Git-Tag: upstream/1.1.92~1962 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b865dba33a08a95f65281c77e464c1333fb28e2c;p=platform%2Fupstream%2FVulkan-Tools.git layers: Add error enums to Destroy APIs Add error enum parameters to DestroyObject helper function for use when performing checks on the pAllocator parameter of vkDestroy* APIs. Add error enum parameter to DeviceReportUndestroyedObjects helper function for use when checking for undestroyed child objects. Change-Id: I4e0960b8b14ecc30f67a1eea112aa80de9f4ca86 --- diff --git a/layers/object_tracker.cpp b/layers/object_tracker.cpp index 6a493fb..e4b8694 100644 --- a/layers/object_tracker.cpp +++ b/layers/object_tracker.cpp @@ -277,7 +277,9 @@ static void CreateObject(T1 dispatchable_object, T2 object, VkDebugReportObjectT } template -static void DestroyObject(T1 dispatchable_object, T2 object, VkDebugReportObjectTypeEXT object_type, const VkAllocationCallbacks *pAllocator) { +static void DestroyObject(T1 dispatchable_object, T2 object, VkDebugReportObjectTypeEXT object_type, + const VkAllocationCallbacks *pAllocator, enum UNIQUE_VALIDATION_ERROR_CODE expected_custom_allocator_code, + enum UNIQUE_VALIDATION_ERROR_CODE expected_default_allocator_code) { layer_data *device_data = get_my_data_ptr(get_dispatch_key(dispatchable_object), layer_data_map); auto object_handle = handle_value(object); @@ -300,12 +302,19 @@ static void DestroyObject(T1 dispatchable_object, T2 object, VkDebugReportObject device_data->num_objects[pNode->object_type], object_name[pNode->object_type]); auto allocated_with_custom = (pNode->status & OBJSTATUS_CUSTOM_ALLOCATOR) ? true : false; - if (custom_allocator ^ allocated_with_custom) { + if (allocated_with_custom && !custom_allocator && expected_custom_allocator_code != VALIDATION_ERROR_UNDEFINED) { + // This check only verifies that custom allocation callabacks were provided to both Create and Destroy calls, + // it cannot verify that these allocation callbacks are compatible with each other. log_msg(device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, object_type, object_handle, __LINE__, - OBJTRACK_ALLOCATOR_MISMATCH, LayerName, - "Custom allocator %sspecified while destroying %s obj 0x%" PRIxLEAST64 " but %sspecified at creation", - (custom_allocator ? "" : "not "), object_name[object_type], object_handle, - (allocated_with_custom ? "" : "not ")); + expected_custom_allocator_code, LayerName, + "Custom allocator not specified while destroying %s obj 0x%" PRIxLEAST64 " but specified at creation. %s", + object_name[object_type], object_handle, validation_error_map[expected_custom_allocator_code]); + } else if (!allocated_with_custom && custom_allocator && + expected_default_allocator_code != VALIDATION_ERROR_UNDEFINED) { + log_msg(device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, object_type, object_handle, __LINE__, + expected_default_allocator_code, LayerName, + "Custom allocator specified while destroying %s obj 0x%" PRIxLEAST64 " but not specified at creation. %s", + object_name[object_type], object_handle, validation_error_map[expected_default_allocator_code]); } delete pNode; @@ -321,7 +330,7 @@ static void DestroyObject(T1 dispatchable_object, T2 object, VkDebugReportObject template static bool ValidateObject(T1 dispatchable_object, T2 object, VkDebugReportObjectTypeEXT object_type, bool null_allowed, - int error_code) { + enum UNIQUE_VALIDATION_ERROR_CODE error_code) { if (null_allowed && (object == VK_NULL_HANDLE)) { return false; } @@ -341,14 +350,16 @@ static bool ValidateObject(T1 dispatchable_object, T2 object, VkDebugReportObjec return false; } -static void DeviceReportUndestroyedObjects(VkDevice device, VkDebugReportObjectTypeEXT object_type) { +static void DeviceReportUndestroyedObjects(VkDevice device, VkDebugReportObjectTypeEXT object_type, + enum UNIQUE_VALIDATION_ERROR_CODE error_code) { layer_data *device_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); for (auto item = device_data->object_map[object_type].begin(); item != device_data->object_map[object_type].end();) { OBJTRACK_NODE *object_info = item->second; log_msg(device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, object_info->object_type, object_info->handle, __LINE__, - OBJTRACK_OBJECT_LEAK, LayerName, - "OBJ ERROR : For device 0x%" PRIxLEAST64 ", %s object 0x%" PRIxLEAST64 " has not been destroyed.", - reinterpret_cast(device), object_name[object_type], object_info->handle); + error_code, LayerName, + "OBJ ERROR : For device 0x%" PRIxLEAST64 ", %s object 0x%" PRIxLEAST64 " has not been destroyed. %s", + reinterpret_cast(device), object_name[object_type], object_info->handle, + validation_error_map[error_code]); item = device_data->object_map[object_type].erase(item); } } @@ -371,7 +382,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyInstance(VkInstance instance, const VkAllocati // TODO: The instance handle can not be validated here. The loader will likely have to validate it. ValidateObject(instance, instance, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, true, VALIDATION_ERROR_00021); - DestroyObject(instance, instance, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, pAllocator); + DestroyObject(instance, instance, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, pAllocator, VALIDATION_ERROR_00019, + VALIDATION_ERROR_00020); // Report any remaining objects in LL for (auto iit = instance_data->object_map[VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT].begin(); @@ -384,28 +396,28 @@ VKAPI_ATTR void VKAPI_CALL DestroyInstance(VkInstance instance, const VkAllocati OBJTRACK_OBJECT_LEAK, LayerName, "OBJ ERROR : %s object 0x%" PRIxLEAST64 " has not been destroyed.", string_VkDebugReportObjectTypeEXT(pNode->object_type), pNode->handle); // Semaphore: - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, VALIDATION_ERROR_00018); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, VALIDATION_ERROR_00018); // DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT); } instance_data->object_map[VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT].clear(); @@ -441,31 +453,32 @@ VKAPI_ATTR void VKAPI_CALL DestroyDevice(VkDevice device, const VkAllocationCall std::unique_lock lock(global_lock); ValidateObject(device, device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, true, VALIDATION_ERROR_00052); - DestroyObject(device, device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, pAllocator); + DestroyObject(device, device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, pAllocator, VALIDATION_ERROR_00050, + VALIDATION_ERROR_00051); // Report any remaining objects associated with this VkDevice object in LL - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, VALIDATION_ERROR_00049); // DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, VALIDATION_ERROR_00049); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, VALIDATION_ERROR_00049); // DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT); - DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT); + DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, VALIDATION_ERROR_00049); // DeviceReportUndestroyedObjects(device, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT); // Clean up Queue's MemRef Linked Lists @@ -833,7 +846,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyFence(VkDevice device, VkFence fence, const Vk } { std::lock_guard lock(global_lock); - DestroyObject(device, fence, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, pAllocator); + DestroyObject(device, fence, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, pAllocator, VALIDATION_ERROR_00174, + VALIDATION_ERROR_00175); } get_dispatch_table(ot_device_table_map, device)->DestroyFence(device, fence, pAllocator); } @@ -923,7 +937,8 @@ VKAPI_ATTR void VKAPI_CALL DestroySemaphore(VkDevice device, VkSemaphore semapho } { std::lock_guard lock(global_lock); - DestroyObject(device, semaphore, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, pAllocator); + DestroyObject(device, semaphore, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, pAllocator, VALIDATION_ERROR_00200, + VALIDATION_ERROR_00201); } get_dispatch_table(ot_device_table_map, device)->DestroySemaphore(device, semaphore, pAllocator); } @@ -960,7 +975,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyEvent(VkDevice device, VkEvent event, const Vk } { std::lock_guard lock(global_lock); - DestroyObject(device, event, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, pAllocator); + DestroyObject(device, event, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, pAllocator, VALIDATION_ERROR_00214, + VALIDATION_ERROR_00215); } get_dispatch_table(ot_device_table_map, device)->DestroyEvent(device, event, pAllocator); } @@ -1039,7 +1055,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyQueryPool(VkDevice device, VkQueryPool queryPo } { std::lock_guard lock(global_lock); - DestroyObject(device, queryPool, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, pAllocator); + DestroyObject(device, queryPool, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, pAllocator, VALIDATION_ERROR_01013, + VALIDATION_ERROR_01014); } get_dispatch_table(ot_device_table_map, device)->DestroyQueryPool(device, queryPool, pAllocator); } @@ -1092,7 +1109,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyBuffer(VkDevice device, VkBuffer buffer, const } { std::lock_guard lock(global_lock); - DestroyObject(device, buffer, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, pAllocator); + DestroyObject(device, buffer, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, pAllocator, VALIDATION_ERROR_00677, + VALIDATION_ERROR_00678); } get_dispatch_table(ot_device_table_map, device)->DestroyBuffer(device, buffer, pAllocator); } @@ -1133,7 +1151,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyBufferView(VkDevice device, VkBufferView buffe } { std::lock_guard lock(global_lock); - DestroyObject(device, bufferView, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, pAllocator); + DestroyObject(device, bufferView, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, pAllocator, VALIDATION_ERROR_00702, + VALIDATION_ERROR_00703); } get_dispatch_table(ot_device_table_map, device)->DestroyBufferView(device, bufferView, pAllocator); } @@ -1170,7 +1189,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyImage(VkDevice device, VkImage image, const Vk } { std::lock_guard lock(global_lock); - DestroyObject(device, image, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, pAllocator); + DestroyObject(device, image, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, pAllocator, VALIDATION_ERROR_00744, + VALIDATION_ERROR_00745); } get_dispatch_table(ot_device_table_map, device)->DestroyImage(device, image, pAllocator); } @@ -1225,7 +1245,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyImageView(VkDevice device, VkImageView imageVi } { std::lock_guard lock(global_lock); - DestroyObject(device, imageView, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, pAllocator); + DestroyObject(device, imageView, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, pAllocator, VALIDATION_ERROR_00777, + VALIDATION_ERROR_00778); } get_dispatch_table(ot_device_table_map, device)->DestroyImageView(device, imageView, pAllocator); } @@ -1265,7 +1286,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyShaderModule(VkDevice device, VkShaderModule s } { std::lock_guard lock(global_lock); - DestroyObject(device, shaderModule, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, pAllocator); + DestroyObject(device, shaderModule, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, pAllocator, VALIDATION_ERROR_00479, + VALIDATION_ERROR_00480); } get_dispatch_table(ot_device_table_map, device)->DestroyShaderModule(device, shaderModule, pAllocator); } @@ -1305,7 +1327,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineCache(VkDevice device, VkPipelineCache } { std::lock_guard lock(global_lock); - DestroyObject(device, pipelineCache, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, pAllocator); + DestroyObject(device, pipelineCache, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, pAllocator, VALIDATION_ERROR_00583, + VALIDATION_ERROR_00584); } get_dispatch_table(ot_device_table_map, device)->DestroyPipelineCache(device, pipelineCache, pAllocator); } @@ -1362,7 +1385,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipeline(VkDevice device, VkPipeline pipeline, } { std::lock_guard lock(global_lock); - DestroyObject(device, pipeline, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, pAllocator); + DestroyObject(device, pipeline, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, pAllocator, VALIDATION_ERROR_00556, + VALIDATION_ERROR_00557); } get_dispatch_table(ot_device_table_map, device)->DestroyPipeline(device, pipeline, pAllocator); } @@ -1411,7 +1435,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineLayout(VkDevice device, VkPipelineLayo } { std::lock_guard lock(global_lock); - DestroyObject(device, pipelineLayout, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, pAllocator); + DestroyObject(device, pipelineLayout, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, pAllocator, VALIDATION_ERROR_00883, + VALIDATION_ERROR_00884); } get_dispatch_table(ot_device_table_map, device)->DestroyPipelineLayout(device, pipelineLayout, pAllocator); } @@ -1448,7 +1473,8 @@ VKAPI_ATTR void VKAPI_CALL DestroySampler(VkDevice device, VkSampler sampler, co } { std::lock_guard lock(global_lock); - DestroyObject(device, sampler, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, pAllocator); + DestroyObject(device, sampler, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, pAllocator, VALIDATION_ERROR_00838, + VALIDATION_ERROR_00839); } get_dispatch_table(ot_device_table_map, device)->DestroySampler(device, sampler, pAllocator); } @@ -1504,7 +1530,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorSetLayout(VkDevice device, VkDescrip } { std::lock_guard lock(global_lock); - DestroyObject(device, descriptorSetLayout, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, pAllocator); + DestroyObject(device, descriptorSetLayout, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, pAllocator, + VALIDATION_ERROR_00855, VALIDATION_ERROR_00856); } get_dispatch_table(ot_device_table_map, device)->DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator); } @@ -1548,8 +1575,8 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetDescriptorPool(VkDevice device, VkDescriptor OBJTRACK_NODE *pNode = (*itr).second; auto del_itr = itr++; if (pNode->parent_object == reinterpret_cast(descriptorPool)) { - DestroyObject(device, (VkDescriptorSet)((*del_itr).first), - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr); + DestroyObject(device, (VkDescriptorSet)((*del_itr).first), VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr, + VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED); } } lock.unlock(); @@ -1666,7 +1693,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyFramebuffer(VkDevice device, VkFramebuffer fra } { std::lock_guard lock(global_lock); - DestroyObject(device, framebuffer, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, pAllocator); + DestroyObject(device, framebuffer, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, pAllocator, VALIDATION_ERROR_00423, + VALIDATION_ERROR_00424); } get_dispatch_table(ot_device_table_map, device)->DestroyFramebuffer(device, framebuffer, pAllocator); } @@ -1704,7 +1732,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyRenderPass(VkDevice device, VkRenderPass rende } { std::lock_guard lock(global_lock); - DestroyObject(device, renderPass, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, pAllocator); + DestroyObject(device, renderPass, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, pAllocator, VALIDATION_ERROR_00394, + VALIDATION_ERROR_00395); } get_dispatch_table(ot_device_table_map, device)->DestroyRenderPass(device, renderPass, pAllocator); } @@ -2574,7 +2603,8 @@ VKAPI_ATTR void VKAPI_CALL DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR s } { std::lock_guard lock(global_lock); - DestroyObject(instance, surface, VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, pAllocator); + DestroyObject(instance, surface, VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, pAllocator, VALIDATION_ERROR_01845, + VALIDATION_ERROR_01846); } get_dispatch_table(ot_instance_table_map, instance)->DestroySurfaceKHR(instance, surface, pAllocator); } @@ -3023,7 +3053,8 @@ VKAPI_ATTR void VKAPI_CALL DestroyDebugReportCallbackEXT(VkInstance instance, Vk pInstanceTable->DestroyDebugReportCallbackEXT(instance, msgCallback, pAllocator); layer_data *instance_data = get_my_data_ptr(get_dispatch_key(instance), layer_data_map); layer_destroy_msg_callback(instance_data->report_data, msgCallback, pAllocator); - DestroyObject(instance, msgCallback, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT, pAllocator); + DestroyObject(instance, msgCallback, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT, pAllocator, VALIDATION_ERROR_02049, + VALIDATION_ERROR_02050); } VKAPI_ATTR void VKAPI_CALL DebugReportMessageEXT(VkInstance instance, VkDebugReportFlagsEXT flags, @@ -3330,7 +3361,8 @@ VKAPI_ATTR void VKAPI_CALL FreeMemory(VkDevice device, VkDeviceMemory memory, co get_dispatch_table(ot_device_table_map, device)->FreeMemory(device, memory, pAllocator); lock.lock(); - DestroyObject(device, memory, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, pAllocator); + DestroyObject(device, memory, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, pAllocator, VALIDATION_ERROR_UNDEFINED, + VALIDATION_ERROR_UNDEFINED); } } @@ -3450,7 +3482,8 @@ VKAPI_ATTR void VKAPI_CALL FreeCommandBuffers(VkDevice device, VkCommandPool com } for (uint32_t i = 0; i < commandBufferCount; i++) { - DestroyObject(device, pCommandBuffers[i], VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, nullptr); + DestroyObject(device, pCommandBuffers[i], VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, nullptr, + VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED); } lock.unlock(); @@ -3475,7 +3508,8 @@ VKAPI_ATTR void VKAPI_CALL DestroySwapchainKHR(VkDevice device, VkSwapchainKHR s ++itr; } } - DestroyObject(device, swapchain, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, pAllocator); + DestroyObject(device, swapchain, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, pAllocator, VALIDATION_ERROR_01938, + VALIDATION_ERROR_01939); lock.unlock(); get_dispatch_table(ot_device_table_map, device)->DestroySwapchainKHR(device, swapchain, pAllocator); @@ -3494,7 +3528,8 @@ VKAPI_ATTR VkResult VKAPI_CALL FreeDescriptorSets(VkDevice device, VkDescriptorP } for (uint32_t i = 0; i < descriptorSetCount; i++) { - DestroyObject(device, pDescriptorSets[i], VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr); + DestroyObject(device, pDescriptorSets[i], VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr, + VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED); } lock.unlock(); @@ -3526,11 +3561,12 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorPool(VkDevice device, VkDescriptorPo OBJTRACK_NODE *pNode = (*itr).second; auto del_itr = itr++; if (pNode->parent_object == reinterpret_cast(descriptorPool)) { - DestroyObject(device, (VkDescriptorSet)((*del_itr).first), - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr); + DestroyObject(device, (VkDescriptorSet)((*del_itr).first), VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, nullptr, + VALIDATION_ERROR_UNDEFINED, VALIDATION_ERROR_UNDEFINED); } } - DestroyObject(device, descriptorPool, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, pAllocator); + DestroyObject(device, descriptorPool, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, pAllocator, VALIDATION_ERROR_00902, + VALIDATION_ERROR_00903); lock.unlock(); get_dispatch_table(ot_device_table_map, device)->DestroyDescriptorPool(device, descriptorPool, pAllocator); } @@ -3556,10 +3592,12 @@ VKAPI_ATTR void VKAPI_CALL DestroyCommandPool(VkDevice device, VkCommandPool com if (pNode->parent_object == reinterpret_cast(commandPool)) { skip_call |= ValidateCommandBuffer(device, commandPool, reinterpret_cast((*del_itr).first)); DestroyObject(device, reinterpret_cast((*del_itr).first), - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, nullptr); + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, nullptr, VALIDATION_ERROR_UNDEFINED, + VALIDATION_ERROR_UNDEFINED); } } - DestroyObject(device, commandPool, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, pAllocator); + DestroyObject(device, commandPool, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, pAllocator, VALIDATION_ERROR_00078, + VALIDATION_ERROR_00079); lock.unlock(); get_dispatch_table(ot_device_table_map, device)->DestroyCommandPool(device, commandPool, pAllocator); } diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt index 04850ee..3303e37 100644 --- a/layers/vk_validation_error_database.txt +++ b/layers/vk_validation_error_database.txt @@ -26,9 +26,9 @@ VALIDATION_ERROR_00014~^~N~^~Unknown~^~vkCreateInstance~^~For more information r VALIDATION_ERROR_00015~^~N~^~Unknown~^~vkCreateInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkApplicationInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00016~^~U~^~Unknown~^~vkCreateInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'If pApplicationName is not NULL, pApplicationName must be a null-terminated string' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkApplicationInfo)~^~ VALIDATION_ERROR_00017~^~U~^~Unknown~^~vkCreateInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'If pEngineName is not NULL, pEngineName must be a null-terminated string' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkApplicationInfo)~^~ -VALIDATION_ERROR_00018~^~U~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'All child objects created using instance must have been destroyed prior to destroying instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ -VALIDATION_ERROR_00019~^~U~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which 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-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ -VALIDATION_ERROR_00020~^~U~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ +VALIDATION_ERROR_00018~^~Y~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'All child objects created using instance must have been destroyed prior to destroying instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ +VALIDATION_ERROR_00019~^~Y~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which 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-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ +VALIDATION_ERROR_00020~^~Y~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ VALIDATION_ERROR_00021~^~Y~^~None~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which states 'If instance is not NULL, instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~We have a check for this in object tracker but I believe it's bogus. This can't be validated in a layer. Validataion would have to occur in a loader. VALIDATION_ERROR_00022~^~U~^~Unknown~^~vkDestroyInstance~^~For more information refer to Vulkan Spec Section '3.2. Instances' which 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-extensions/xhtml/vkspec.html#vkDestroyInstance)~^~ VALIDATION_ERROR_00023~^~Y~^~None~^~vkEnumeratePhysicalDevices~^~For more information refer to Vulkan Spec Section '4.1. Physical Devices' which states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkEnumeratePhysicalDevices)~^~ @@ -52,9 +52,9 @@ VALIDATION_ERROR_00040~^~U~^~Unknown~^~vkCreateDevice~^~For more information ref VALIDATION_ERROR_00041~^~U~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.2.1. Device Creation' which states 'If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated strings' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceCreateInfo)~^~ VALIDATION_ERROR_00042~^~U~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.2.1. Device Creation' which states 'If pEnabledFeatures is not NULL, pEnabledFeatures must be a pointer to a valid VkPhysicalDeviceFeatures structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceCreateInfo)~^~ VALIDATION_ERROR_00043~^~U~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.2.1. Device Creation' which states 'queueCreateInfoCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceCreateInfo)~^~ -VALIDATION_ERROR_00049~^~U~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'All child objects created on device must have been destroyed prior to destroying device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ -VALIDATION_ERROR_00050~^~U~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ -VALIDATION_ERROR_00051~^~U~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ +VALIDATION_ERROR_00049~^~Y~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'All child objects created on device must have been destroyed prior to destroying device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ +VALIDATION_ERROR_00050~^~Y~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ +VALIDATION_ERROR_00051~^~Y~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ VALIDATION_ERROR_00052~^~Y~^~None~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If device is not NULL, device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ VALIDATION_ERROR_00053~^~U~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which 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-extensions/xhtml/vkspec.html#vkDestroyDevice)~^~ VALIDATION_ERROR_00054~^~U~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceQueueCreateInfo)~^~ @@ -81,8 +81,8 @@ VALIDATION_ERROR_00074~^~Y~^~None~^~vkResetCommandPool~^~For more information re VALIDATION_ERROR_00075~^~N~^~Unknown~^~vkResetCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'flags must be a valid combination of VkCommandPoolResetFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCommandPoolResetFlagBits)~^~TBD in parameter validation layer. VALIDATION_ERROR_00076~^~U~^~Unknown~^~vkResetCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'commandPool must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCommandPoolResetFlagBits)~^~ VALIDATION_ERROR_00077~^~Y~^~None~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'All VkCommandBuffer objects allocated from commandPool must not be pending execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ -VALIDATION_ERROR_00078~^~U~^~Unknown~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'If VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ -VALIDATION_ERROR_00079~^~U~^~Unknown~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'If no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ +VALIDATION_ERROR_00078~^~Y~^~Unknown~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'If VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ +VALIDATION_ERROR_00079~^~Y~^~Unknown~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'If no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ VALIDATION_ERROR_00080~^~Y~^~None~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ VALIDATION_ERROR_00081~^~Y~^~None~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which states 'If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ VALIDATION_ERROR_00082~^~U~^~Unknown~^~vkDestroyCommandPool~^~For more information refer to Vulkan Spec Section '5.1. Command Pools' which 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-extensions/xhtml/vkspec.html#vkDestroyCommandPool)~^~ @@ -177,8 +177,8 @@ VALIDATION_ERROR_00170~^~N~^~Unknown~^~vkCreateFence~^~For more information refe VALIDATION_ERROR_00171~^~N~^~Unknown~^~vkCreateFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkFenceCreateFlagBits)~^~TBD in parameter validation layer. VALIDATION_ERROR_00172~^~N~^~Unknown~^~vkCreateFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'flags must be a valid combination of VkFenceCreateFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkFenceCreateFlagBits)~^~TBD in parameter validation layer. VALIDATION_ERROR_00173~^~U~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'All queue submission commands that refer to fence must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ -VALIDATION_ERROR_00174~^~U~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'If VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ -VALIDATION_ERROR_00175~^~U~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'If no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ +VALIDATION_ERROR_00174~^~Y~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'If VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ +VALIDATION_ERROR_00175~^~Y~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'If no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ VALIDATION_ERROR_00176~^~Y~^~None~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ VALIDATION_ERROR_00177~^~Y~^~None~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which states 'If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ VALIDATION_ERROR_00178~^~U~^~Unknown~^~vkDestroyFence~^~For more information refer to Vulkan Spec Section '6.2. Fences' which 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-extensions/xhtml/vkspec.html#vkDestroyFence)~^~ @@ -203,8 +203,8 @@ VALIDATION_ERROR_00196~^~N~^~Unknown~^~vkCreateSemaphore~^~For more information VALIDATION_ERROR_00197~^~N~^~Unknown~^~vkCreateSemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSemaphoreCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00198~^~N~^~Unknown~^~vkCreateSemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSemaphoreCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00199~^~Y~^~InUseDestroyedSignaled~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'All submitted batches that refer to semaphore must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ -VALIDATION_ERROR_00200~^~U~^~Unknown~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ -VALIDATION_ERROR_00201~^~U~^~Unknown~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ +VALIDATION_ERROR_00200~^~Y~^~Unknown~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ +VALIDATION_ERROR_00201~^~Y~^~Unknown~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ VALIDATION_ERROR_00202~^~Y~^~None~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ VALIDATION_ERROR_00203~^~Y~^~None~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ VALIDATION_ERROR_00204~^~U~^~Unknown~^~vkDestroySemaphore~^~For more information refer to Vulkan Spec Section '6.3. Semaphores' which 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-extensions/xhtml/vkspec.html#vkDestroySemaphore)~^~ @@ -217,8 +217,8 @@ VALIDATION_ERROR_00210~^~N~^~Unknown~^~vkCreateEvent~^~For more information refe VALIDATION_ERROR_00211~^~N~^~Unknown~^~vkCreateEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkEventCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00212~^~N~^~Unknown~^~vkCreateEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkEventCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00213~^~Y~^~InUseDestroyedSignaled~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'All submitted commands that refer to event must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ -VALIDATION_ERROR_00214~^~U~^~Unknown~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ -VALIDATION_ERROR_00215~^~U~^~Unknown~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ +VALIDATION_ERROR_00214~^~Y~^~Unknown~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ +VALIDATION_ERROR_00215~^~Y~^~Unknown~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ VALIDATION_ERROR_00216~^~Y~^~None~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ VALIDATION_ERROR_00217~^~Y~^~None~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ VALIDATION_ERROR_00218~^~U~^~Unknown~^~vkDestroyEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which 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-extensions/xhtml/vkspec.html#vkDestroyEvent)~^~ @@ -383,8 +383,8 @@ VALIDATION_ERROR_00380~^~U~^~Unknown~^~vkCreateRenderPass~^~For more information VALIDATION_ERROR_00381~^~U~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'dstAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassDependency)~^~ VALIDATION_ERROR_00382~^~U~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'dependencyFlags must be a valid combination of VkDependencyFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassDependency)~^~ VALIDATION_ERROR_00393~^~Y~^~RenderPassInUseDestroyedSignaled~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'All submitted commands that refer to renderPass must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ -VALIDATION_ERROR_00394~^~U~^~Unknown~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ -VALIDATION_ERROR_00395~^~U~^~Unknown~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ +VALIDATION_ERROR_00394~^~Y~^~Unknown~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ +VALIDATION_ERROR_00395~^~Y~^~Unknown~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ VALIDATION_ERROR_00396~^~Y~^~None~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ VALIDATION_ERROR_00397~^~Y~^~None~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ VALIDATION_ERROR_00398~^~U~^~Unknown~^~vkDestroyRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which 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-extensions/xhtml/vkspec.html#vkDestroyRenderPass)~^~ @@ -412,8 +412,8 @@ VALIDATION_ERROR_00419~^~Y~^~None~^~vkCreateFramebuffer~^~For more information r VALIDATION_ERROR_00420~^~Y~^~None~^~vkCreateFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If attachmentCount is not 0, pAttachments must be a pointer to an array of attachmentCount valid VkImageView handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#renderpass-noattachments)~^~ VALIDATION_ERROR_00421~^~U~^~Unknown~^~vkCreateFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'Both of renderPass, and the elements of pAttachments that are valid handles must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#renderpass-noattachments)~^~ VALIDATION_ERROR_00422~^~Y~^~FramebufferInUseDestroyedSignaled~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'All submitted commands that refer to framebuffer must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ -VALIDATION_ERROR_00423~^~U~^~Unknown~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ -VALIDATION_ERROR_00424~^~U~^~Unknown~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ +VALIDATION_ERROR_00423~^~Y~^~Unknown~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ +VALIDATION_ERROR_00424~^~Y~^~Unknown~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ VALIDATION_ERROR_00425~^~Y~^~None~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ VALIDATION_ERROR_00426~^~Y~^~None~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which states 'If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ VALIDATION_ERROR_00427~^~U~^~Unknown~^~vkDestroyFramebuffer~^~For more information refer to Vulkan Spec Section '7.3. Framebuffers' which 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-extensions/xhtml/vkspec.html#vkDestroyFramebuffer)~^~ @@ -468,8 +468,8 @@ VALIDATION_ERROR_00475~^~N~^~Unknown~^~vkCreateShaderModule~^~For more informati VALIDATION_ERROR_00476~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderModuleCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00477~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderModuleCreateInfo)~^~TBD in parameter validation layer. VALIDATION_ERROR_00478~^~U~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must be a pointer to an array of $codeSize /over 4$ uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderModuleCreateInfo)~^~ -VALIDATION_ERROR_00479~^~U~^~Unknown~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'If VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ -VALIDATION_ERROR_00480~^~U~^~Unknown~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'If no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ +VALIDATION_ERROR_00479~^~Y~^~Unknown~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'If VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ +VALIDATION_ERROR_00480~^~Y~^~Unknown~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'If no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ VALIDATION_ERROR_00481~^~Y~^~None~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ VALIDATION_ERROR_00482~^~Y~^~None~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ VALIDATION_ERROR_00483~^~U~^~Unknown~^~vkDestroyShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which 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-extensions/xhtml/vkspec.html#vkDestroyShaderModule)~^~ @@ -545,8 +545,8 @@ VALIDATION_ERROR_00552~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more info VALIDATION_ERROR_00553~^~U~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'pDynamicStates must be a pointer to an array of dynamicStateCount valid VkDynamicState values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineDynamicStateCreateInfo)~^~ VALIDATION_ERROR_00554~^~U~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'dynamicStateCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineDynamicStateCreateInfo)~^~ VALIDATION_ERROR_00555~^~Y~^~PipelineInUseDestroyedSignaled~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'All submitted commands that refer to pipeline must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ -VALIDATION_ERROR_00556~^~U~^~Unknown~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which 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-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ -VALIDATION_ERROR_00557~^~U~^~Unknown~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ +VALIDATION_ERROR_00556~^~Y~^~Unknown~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which 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-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ +VALIDATION_ERROR_00557~^~Y~^~Unknown~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ VALIDATION_ERROR_00558~^~Y~^~None~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ VALIDATION_ERROR_00559~^~Y~^~None~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ VALIDATION_ERROR_00560~^~U~^~Unknown~^~vkDestroyPipeline~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which 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-extensions/xhtml/vkspec.html#vkDestroyPipeline)~^~ @@ -572,8 +572,8 @@ VALIDATION_ERROR_00579~^~Y~^~None~^~vkGetPipelineCacheData~^~For more informatio VALIDATION_ERROR_00580~^~U~^~Unknown~^~vkGetPipelineCacheData~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'pDataSize must be a pointer to a size_t value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCacheHeaderVersion)~^~ VALIDATION_ERROR_00581~^~U~^~Unknown~^~vkGetPipelineCacheData~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a pointer to an array of pDataSize bytes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCacheHeaderVersion)~^~ VALIDATION_ERROR_00582~^~U~^~Unknown~^~vkGetPipelineCacheData~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'pipelineCache must have been created, allocated, or retrieved from device' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCacheHeaderVersion)~^~ -VALIDATION_ERROR_00583~^~U~^~Unknown~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ -VALIDATION_ERROR_00584~^~U~^~Unknown~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ +VALIDATION_ERROR_00583~^~Y~^~Unknown~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ +VALIDATION_ERROR_00584~^~Y~^~Unknown~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ VALIDATION_ERROR_00585~^~Y~^~None~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ VALIDATION_ERROR_00586~^~Y~^~None~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which states 'If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ VALIDATION_ERROR_00587~^~U~^~Unknown~^~vkDestroyPipelineCache~^~For more information refer to Vulkan Spec Section '9.6. Pipeline Cache' which 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-extensions/xhtml/vkspec.html#vkDestroyPipelineCache)~^~ @@ -666,8 +666,8 @@ VALIDATION_ERROR_00673~^~N~^~None~^~vkCreateBuffer~^~For more information refer VALIDATION_ERROR_00674~^~N~^~None~^~vkCreateBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'usage must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBufferCreateFlagBits)~^~ VALIDATION_ERROR_00675~^~N~^~None~^~vkCreateBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'sharingMode must be a valid VkSharingMode value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBufferCreateFlagBits)~^~ VALIDATION_ERROR_00676~^~U~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ -VALIDATION_ERROR_00677~^~U~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ -VALIDATION_ERROR_00678~^~U~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ +VALIDATION_ERROR_00677~^~Y~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ +VALIDATION_ERROR_00678~^~Y~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ VALIDATION_ERROR_00679~^~Y~^~None~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ VALIDATION_ERROR_00680~^~Y~^~VertexBufferInvalid~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which states 'If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ VALIDATION_ERROR_00681~^~U~^~Unknown~^~vkDestroyBuffer~^~For more information refer to Vulkan Spec Section '11.1. Buffers' which 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-extensions/xhtml/vkspec.html#vkDestroyBuffer)~^~ @@ -691,8 +691,8 @@ VALIDATION_ERROR_00698~^~N~^~Unknown~^~vkCreateBufferView~^~For more information VALIDATION_ERROR_00699~^~Y~^~None~^~vkCreateBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBufferViewCreateInfo)~^~ VALIDATION_ERROR_00700~^~U~^~Unknown~^~vkCreateBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBufferViewCreateInfo)~^~ VALIDATION_ERROR_00701~^~Y~^~BufferViewInUseDestroyedSignaled~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'All submitted commands that refer to bufferView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ -VALIDATION_ERROR_00702~^~U~^~Unknown~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ -VALIDATION_ERROR_00703~^~U~^~Unknown~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ +VALIDATION_ERROR_00702~^~Y~^~Unknown~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ +VALIDATION_ERROR_00703~^~Y~^~Unknown~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ VALIDATION_ERROR_00704~^~Y~^~None~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ VALIDATION_ERROR_00705~^~Y~^~None~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ VALIDATION_ERROR_00706~^~U~^~Unknown~^~vkDestroyBufferView~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which 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-extensions/xhtml/vkspec.html#vkDestroyBufferView)~^~ @@ -733,8 +733,8 @@ VALIDATION_ERROR_00740~^~U~^~Unknown~^~vkGetImageSubresourceLayout~^~For more in VALIDATION_ERROR_00741~^~Y~^~InvalidImageViewAspect~^~vkGetImageSubresourceLayout~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'aspectMask must be a valid combination of VkImageAspectFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkImageSubresource)~^~Multi-purposing this enum for various invalid aspect usage. There is some "must" language in spec at VkImageAspectFlagBits definition that we need specific enums for. Also need more tests for these cases. VALIDATION_ERROR_00742~^~U~^~Unknown~^~vkGetImageSubresourceLayout~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'aspectMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkImageSubresource)~^~ VALIDATION_ERROR_00743~^~Y~^~FramebufferImageInUseDestroyedSignaled~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ -VALIDATION_ERROR_00744~^~U~^~Unknown~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ -VALIDATION_ERROR_00745~^~U~^~Unknown~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ +VALIDATION_ERROR_00744~^~Y~^~Unknown~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ +VALIDATION_ERROR_00745~^~Y~^~Unknown~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ VALIDATION_ERROR_00746~^~Y~^~None~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ VALIDATION_ERROR_00747~^~Y~^~None~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If image is not VK_NULL_HANDLE, image must be a valid VkImage handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ VALIDATION_ERROR_00748~^~U~^~Unknown~^~vkDestroyImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which 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-extensions/xhtml/vkspec.html#vkDestroyImage)~^~ @@ -766,8 +766,8 @@ VALIDATION_ERROR_00773~^~U~^~Unknown~^~vkCreateImageView~^~For more information VALIDATION_ERROR_00774~^~U~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'b must be a valid VkComponentSwizzle value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#resources-image-views-identity-mappings)~^~ VALIDATION_ERROR_00775~^~U~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'a must be a valid VkComponentSwizzle value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#resources-image-views-identity-mappings)~^~ VALIDATION_ERROR_00776~^~Y~^~ImageViewInUseDestroyedSignaled~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'All submitted commands that refer to imageView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ -VALIDATION_ERROR_00777~^~U~^~Unknown~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ -VALIDATION_ERROR_00778~^~U~^~Unknown~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ +VALIDATION_ERROR_00777~^~Y~^~Unknown~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ +VALIDATION_ERROR_00778~^~Y~^~Unknown~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ VALIDATION_ERROR_00779~^~Y~^~None~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ VALIDATION_ERROR_00780~^~Y~^~None~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ VALIDATION_ERROR_00781~^~U~^~Unknown~^~vkDestroyImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which 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-extensions/xhtml/vkspec.html#vkDestroyImageView)~^~ @@ -827,8 +827,8 @@ VALIDATION_ERROR_00834~^~U~^~Unknown~^~vkCreateSampler~^~For more information re VALIDATION_ERROR_00835~^~U~^~Unknown~^~vkCreateSampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'addressModeV must be a valid VkSamplerAddressMode value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSamplerAddressMode)~^~ VALIDATION_ERROR_00836~^~U~^~Unknown~^~vkCreateSampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'addressModeW must be a valid VkSamplerAddressMode value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSamplerAddressMode)~^~ VALIDATION_ERROR_00837~^~Y~^~SamplerInUseDestroyedSignaled~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'All submitted commands that refer to sampler must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ -VALIDATION_ERROR_00838~^~U~^~Unknown~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ -VALIDATION_ERROR_00839~^~U~^~Unknown~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ +VALIDATION_ERROR_00838~^~Y~^~Unknown~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ +VALIDATION_ERROR_00839~^~Y~^~Unknown~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ VALIDATION_ERROR_00840~^~Y~^~None~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ VALIDATION_ERROR_00841~^~Y~^~None~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ VALIDATION_ERROR_00842~^~U~^~Unknown~^~vkDestroySampler~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which 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-extensions/xhtml/vkspec.html#vkDestroySampler)~^~ @@ -844,8 +844,8 @@ VALIDATION_ERROR_00851~^~U~^~Unknown~^~vkCreateDescriptorSetLayout~^~For more in VALIDATION_ERROR_00852~^~Y~^~None~^~vkCreateDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a pointer to an array of descriptorCount valid VkSampler handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorSetLayoutBinding)~^~ VALIDATION_ERROR_00853~^~U~^~Unknown~^~vkCreateDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorSetLayoutBinding)~^~ VALIDATION_ERROR_00854~^~U~^~Unknown~^~vkCreateDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'descriptorType must be a valid VkDescriptorType value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorSetLayoutBinding)~^~ -VALIDATION_ERROR_00855~^~U~^~Unknown~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ -VALIDATION_ERROR_00856~^~U~^~Unknown~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ +VALIDATION_ERROR_00855~^~Y~^~Unknown~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ +VALIDATION_ERROR_00856~^~Y~^~Unknown~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ VALIDATION_ERROR_00857~^~Y~^~None~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ VALIDATION_ERROR_00858~^~Y~^~None~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which states 'If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ VALIDATION_ERROR_00859~^~U~^~Unknown~^~vkDestroyDescriptorSetLayout~^~For more information refer to Vulkan Spec Section '13.2.1. Descriptor Set Layout' which 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-extensions/xhtml/vkspec.html#vkDestroyDescriptorSetLayout)~^~ @@ -872,8 +872,8 @@ VALIDATION_ERROR_00879~^~Y~^~InvalidPushConstants~^~vkCreatePipelineLayout~^~For VALIDATION_ERROR_00880~^~Y~^~InvalidPushConstants~^~vkCreatePipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPushConstantRange)~^~ VALIDATION_ERROR_00881~^~U~^~Unknown~^~vkCreatePipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'stageFlags must be a valid combination of VkShaderStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPushConstantRange)~^~ VALIDATION_ERROR_00882~^~U~^~Unknown~^~vkCreatePipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'stageFlags must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPushConstantRange)~^~ -VALIDATION_ERROR_00883~^~U~^~Unknown~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ -VALIDATION_ERROR_00884~^~U~^~Unknown~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ +VALIDATION_ERROR_00883~^~Y~^~Unknown~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ +VALIDATION_ERROR_00884~^~Y~^~Unknown~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ VALIDATION_ERROR_00885~^~Y~^~None~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ VALIDATION_ERROR_00886~^~Y~^~None~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which states 'If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ VALIDATION_ERROR_00887~^~U~^~Unknown~^~vkDestroyPipelineLayout~^~For more information refer to Vulkan Spec Section '13.2.2. Pipeline Layouts' which 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-extensions/xhtml/vkspec.html#vkDestroyPipelineLayout)~^~ @@ -891,8 +891,8 @@ VALIDATION_ERROR_00898~^~U~^~Unknown~^~vkCreateDescriptorPool~^~For more informa VALIDATION_ERROR_00899~^~U~^~Unknown~^~vkCreateDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'descriptorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorPoolSize)~^~ VALIDATION_ERROR_00900~^~U~^~Unknown~^~vkCreateDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'type must be a valid VkDescriptorType value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorPoolSize)~^~ VALIDATION_ERROR_00901~^~Y~^~None~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ -VALIDATION_ERROR_00902~^~U~^~Unknown~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ -VALIDATION_ERROR_00903~^~U~^~Unknown~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ +VALIDATION_ERROR_00902~^~Y~^~Unknown~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ +VALIDATION_ERROR_00903~^~Y~^~Unknown~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ VALIDATION_ERROR_00904~^~Y~^~None~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ VALIDATION_ERROR_00905~^~Y~^~None~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ VALIDATION_ERROR_00906~^~U~^~Unknown~^~vkDestroyDescriptorPool~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which 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-extensions/xhtml/vkspec.html#vkDestroyDescriptorPool)~^~ @@ -1002,8 +1002,8 @@ VALIDATION_ERROR_01009~^~N~^~Unknown~^~vkCreateQueryPool~^~For more information VALIDATION_ERROR_01010~^~N~^~Unknown~^~vkCreateQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryType)~^~TBD in parameter validation layer. VALIDATION_ERROR_01011~^~U~^~Unknown~^~vkCreateQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'queryType must be a valid VkQueryType value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryType)~^~ VALIDATION_ERROR_01012~^~Y~^~QueryPoolInUseDestroyedSignaled~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'All submitted commands that refer to queryPool must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ -VALIDATION_ERROR_01013~^~U~^~Unknown~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ -VALIDATION_ERROR_01014~^~U~^~Unknown~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ +VALIDATION_ERROR_01013~^~Y~^~Unknown~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ +VALIDATION_ERROR_01014~^~Y~^~Unknown~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ VALIDATION_ERROR_01015~^~Y~^~None~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ VALIDATION_ERROR_01016~^~Y~^~None~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ VALIDATION_ERROR_01017~^~U~^~Unknown~^~vkDestroyQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which 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-extensions/xhtml/vkspec.html#vkDestroyQueryPool)~^~ @@ -1788,8 +1788,8 @@ VALIDATION_ERROR_01841~^~N~^~Unknown~^~vkCreateXlibSurfaceKHR~^~For more informa VALIDATION_ERROR_01842~^~N~^~Unknown~^~vkCreateXlibSurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.6. Xlib Platform' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkXlibSurfaceCreateInfoKHR)~^~TBD in parameter validation layer. VALIDATION_ERROR_01843~^~U~^~Unknown~^~vkCreateXlibSurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.6. Xlib Platform' which states 'dpy must point to a valid Xlib Display.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkXlibSurfaceCreateInfoKHR)~^~ VALIDATION_ERROR_01844~^~U~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ -VALIDATION_ERROR_01845~^~U~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ -VALIDATION_ERROR_01846~^~U~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ +VALIDATION_ERROR_01845~^~Y~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ +VALIDATION_ERROR_01846~^~Y~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ VALIDATION_ERROR_01847~^~Y~^~None~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ VALIDATION_ERROR_01848~^~Y~^~None~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which states 'If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ VALIDATION_ERROR_01849~^~U~^~Unknown~^~vkDestroySurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.7. Platform-Independent Information' which 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-extensions/xhtml/vkspec.html#vkDestroySurfaceKHR)~^~ @@ -1881,8 +1881,8 @@ VALIDATION_ERROR_01934~^~U~^~Unknown~^~vkCreateSwapchainKHR~^~For more informati VALIDATION_ERROR_01935~^~Y~^~None~^~vkCreateSwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSwapchainCreateInfoKHR)~^~This error applies to both vkCreateSwapchainKHR and vkCreateSharedSwapchainsKHR. VALIDATION_ERROR_01936~^~U~^~Unknown~^~vkCreateSwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which 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-extensions/xhtml/vkspec.html#VkSwapchainCreateInfoKHR)~^~ VALIDATION_ERROR_01937~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'All uses of presentable images acquired from swapchain must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ -VALIDATION_ERROR_01938~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which 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-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ -VALIDATION_ERROR_01939~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ +VALIDATION_ERROR_01938~^~Y~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which 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-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ +VALIDATION_ERROR_01939~^~Y~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ VALIDATION_ERROR_01940~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ VALIDATION_ERROR_01941~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which states 'If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ VALIDATION_ERROR_01942~^~U~^~Unknown~^~vkDestroySwapchainKHR~^~For more information refer to Vulkan Spec Section '30.6. WSI Swapchain' which 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-extensions/xhtml/vkspec.html#vkDestroySwapchainKHR)~^~ @@ -1978,8 +1978,8 @@ VALIDATION_ERROR_02045~^~U~^~Unknown~^~vkDebugReportMessageEXT~^~For more inform VALIDATION_ERROR_02046~^~U~^~Unknown~^~vkDebugReportMessageEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'objectType must be a valid VkDebugReportObjectTypeEXT value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDebugReportMessageEXT)~^~ VALIDATION_ERROR_02047~^~U~^~Unknown~^~vkDebugReportMessageEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'pLayerPrefix must be a null-terminated string' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDebugReportMessageEXT)~^~ VALIDATION_ERROR_02048~^~U~^~Unknown~^~vkDebugReportMessageEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'pMessage must be a null-terminated string' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDebugReportMessageEXT)~^~ -VALIDATION_ERROR_02049~^~U~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which 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-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ -VALIDATION_ERROR_02050~^~U~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ +VALIDATION_ERROR_02049~^~Y~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which 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-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ +VALIDATION_ERROR_02050~^~Y~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ VALIDATION_ERROR_02051~^~U~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'instance must be a valid VkInstance handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ VALIDATION_ERROR_02052~^~U~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'callback must be a valid VkDebugReportCallbackEXT handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~ VALIDATION_ERROR_02053~^~U~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which 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-extensions/xhtml/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~