[Vulkan] Validation errors encoutered with a few cores
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
Here's a collection of some Vulkan validation errors I've encountered:
- With PPSSPP, SwanStation and Flycast, just by launching a game:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-VkSamplerCreateInfo-addressModeU-01079 ] Object 0: handle = 0x1f1426633b0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x1aa95c2b | vkCreateSampler(): addressModeU is set to VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE but the VK_KHR_sampler_mirror_clamp_to_edge extension or samplerMirrorClampToEdge feature has not been enabled. The Vulkan spec states: If samplerMirrorClampToEdge is not enabled, and if the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-VkSamplerCreateInfo-addressModeU-01079)
- Fast forwarding with Beetle PSX HW:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkQueueSubmit-pWaitSemaphores-00069 ] Object 0: handle = 0xf878780000001de1, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x1f14253bce0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0xef858864 | vkQueueSubmit(): pSubmits[0].pWaitSemaphores[0] Queue VkQueue 0x1f14253bce0[] is waiting on semaphore (VkSemaphore 0xf878780000001de1[]) that has no way to be signaled. The Vulkan spec states: All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkQueueSubmit-pWaitSemaphores-00069)
- Fast forwarding with PPSSPP:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ UNASSIGNED-Threading-MultipleThreads ] Object 0: handle = 0x1f142501920, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x141cb623 | THREADING ERROR : vkQueueSubmit(): object of type VkQueue is simultaneously used in thread 32848 and thread 24980
- Switching fullscreen<->windowed with PPSSPP (RA crashes):
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkResetCommandPool-device-parameter ] Object 0: handle = 0x2218c0889f0, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0xe5d64275 | Invalid VkDevice 0x221950b0b40[]. The Vulkan spec states: device must be a valid VkDevice handle (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkResetCommandPool-device-parameter)
- Non-stop with Flycast:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkUpdateDescriptorSets-None-03047 ] Object 0: handle = 0x50cf9000000065d, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0x35d7ea98 | vkUpdateDescriptorSets() pDescriptorWrites[0] failed write update validation for VkDescriptorSet 0x50cf9000000065d[] with error: Cannot call vkUpdateDescriptorSets() to perform write update on VkDescriptorSet 0x50cf9000000065d[] allocated with VkDescriptorSetLayout 0x88693900000000c0[] that is in use by a command buffer. The Vulkan spec states: Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkUpdateDescriptorSets-None-03047)
- Huge spam on launch with PCSX ReARMed with frame duping enabled and Mupen64Plus-Next with Angrylion:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-VkWriteDescriptorSet-descriptorType-04150 ] Object 0: handle = 0x91a42100000006c1, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xf72a82b8 | vkUpdateDescriptorSets() pDescriptorWrites[0] failed write update validation for VkDescriptorSet 0x91a42100000006c1[] with error: Write update to VkDescriptorSet 0x91a42100000006c1[] allocated with VkDescriptorSetLayout 0xc331a400000006bd[] binding #2 failed with error message: Attempted write update to combined image sampler descriptor failed due to: Descriptor update with descriptorType VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER is being updated with invalid imageLayout VK_IMAGE_LAYOUT_UNDEFINED for image VkImage 0xc30e3100000006d1[RetroArch image (462)] in imageView VkImageView 0xeae97200000006d2[]. Allowed layouts are: VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL. The Vulkan spec states: If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-VkWriteDescriptorSet-descriptorType-04150)
- Appearing only once during the spam mentioned above with PCSX ReARMed with frame duping enabled and Mupen64Plus-Next with Angrylion:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkDestroyImageView-imageView-01026 ] Object 0: handle = 0x20e61aa23e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x63ac21f0 | Cannot call vkDestroyImageView on VkImageView 0x51819500000005f5[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to imageView must have completed execution (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkDestroyImageView-imageView-01026)
- Once on launch with ParaLLEl with parallel plugin:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkBindBufferMemory-memory-02727 ] Object 0: handle = 0x9c8eeb00000000dc, type = VK_OBJECT_TYPE_BUFFER; Object 1: handle = 0x18ea4a00000000dd, type = VK_OBJECT_TYPE_DEVICE_MEMORY; | MessageID = 0x8fa29e0d | vkBindBufferMemory(): The VkDeviceMemory (VkDeviceMemory 0x18ea4a00000000dd[]) was created with an import operation with handleType of VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT which is not set in the VkBuffer (VkBuffer 0x9c8eeb00000000dc[]) VkExternalMemoryBufferCreateInfo::handleType (Unhandled VkExternalMemoryHandleTypeFlagBits) The Vulkan spec states: If memory was allocated by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkBindBufferMemory-memory-02727)
- Once on launch with Dolphin:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object 0: handle = 0x23f85e22e60, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x12537a2c | Missing extension required by the device extension VK_EXT_full_screen_exclusive: VK_KHR_get_surface_capabilities2. The Vulkan spec states: All required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list (https://vulkan.lunarg.com/doc/view/1.3.236.0/windows/1.3-extensions/vkspec.html#VUID-vkCreateDevice-ppEnabledExtensionNames-01387)
then this 2 times:
[ERROR] [Vulkan]: Validation Error: Validation Error: [ UNASSIGNED-GeneralParameterError-ExtensionNotEnabled ] Object 0: handle = 0x23f85e22e60, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0xe92b452d | Attempted to call vkGetPhysicalDeviceSurfaceCapabilities2KHR() but its required extension VK_KHR_get_surface_capabilities2 has not been enabled
Version/Commit
- RetroArch: 1.16.0 / 64bcbbc
Environment information
- OS: Windows 10
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file or test is named. Start by reproducing the listed Vulkan validation errors on RetroArch 1.16.0 at commit 64bcbbc on Windows 10, then trace the affected core and frontend paths around the reported Vulkan calls. Done means the individual validation errors are isolated to their responsible paths and each has a verified resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100