Skip to content

c/main: fix validation issues

Simon Zeni requested to merge bl4ckb0ne/monado:peek-semaphores-fix into main
  • src/xrt/compositor/main/comp_window_peek.c

The peek window was stalling in vkQueueSubmit by not having the acquire semaphore properly signaling that the acquisition is done. Now the peek window uses the semaphores from the swapchain directly.

  • src/xrt/compositor/main/comp_renderer.c

I think this one was more of a false-positive than anything, but simplifying the logic fixes the error. Seemed like a pointer/array mismatch.

VUID-vkQueueSubmit-pWaitSemaphores-03238(ERROR / SPEC): msgNum: -1258007888 - Validation Error: [ VUID-vkQueueSubmit-pWaitSemaphores-03238 ] Object 0: handle = 0x56c9bd0000000040, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x7fffdf984240, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0xb50452b0 | vkQueueSubmit(): pSubmits[0].pWaitSemaphores[0] Queue VkQueue 0x7fffdf984240[] is waiting on semaphore (VkSemaphore 0x56c9bd0000000040[]) that has no way to be signaled. The Vulkan spec states: All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkQueueSubmit-pWaitSemaphores-03238)
    Objects: 2
        [0] 0x56c9bd0000000040, type: 5, name: NULL
        [1] 0x7fffdf984240, type: 4, name: NULL
  • src/xrt/auxiliary/vk/vk_sync_objects.c
VUID-VkImportFenceFdInfoKHR-handleType-07306(ERROR / SPEC): msgNum: 1725651910 - Validation Error: [ VUID-VkImportFenceFdInfoKHR-handleType-07306 ] Object 0: handle = 0xff7e700000000f9, type = VK_OBJECT_TYPE_FENCE; | MessageID = 0x66db5bc6 | vkImportFenceFdKHR(): handleType is VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT so VK_FENCE_IMPORT_TEMPORARY_BIT must be set, but flags is 0x0 The Vulkan spec states: If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkImportFenceFdInfoKHR-handleType-07306)
    Objects: 1
        [0] 0xff7e700000000f9, type: 7, name: NULL
Edited by Simon Zeni

Merge request reports