···159159 COMP_TRACE_MARKER();
160160 struct vk_bundle *vk = &r->c->base.vk;
161161162162- os_mutex_lock(&vk->queue_mutex);
163163- vk->vkQueueWaitIdle(vk->main_queue.queue);
164164- os_mutex_unlock(&vk->queue_mutex);
162162+ vk_queue_lock(vk->main_queue);
163163+ vk->vkQueueWaitIdle(vk->main_queue->queue);
164164+ vk_queue_unlock(vk->main_queue);
165165}
166166167167static void
···665665 * us avoid taking a lot of locks. The queue lock will be taken by
666666 * @ref vk_cmd_submit_locked tho.
667667 */
668668- ret = vk_cmd_submit_locked(vk, &vk->main_queue, 1, &comp_submit_info, r->fences[r->acquired_buffer]);
668668+ ret = vk_cmd_submit_locked(vk, vk->main_queue, 1, &comp_submit_info, r->fences[r->acquired_buffer]);
669669670670 // We have now completed the submit, even if we failed.
671671 comp_target_mark_submit_end(ct, frame_id, os_monotonic_get_ns());
···741741 assert(!comp_frame_is_invalid_locked(&r->c->frame.rendering));
742742 uint64_t render_complete_signal_value = (uint64_t)r->c->frame.rendering.id;
743743744744- ret = comp_target_present( //
745745- r->c->target, //
746746- r->c->base.vk.main_queue.queue, //
747747- r->acquired_buffer, //
748748- render_complete_signal_value, //
749749- desired_present_time_ns, //
750750- present_slop_ns); //
744744+ ret = comp_target_present( //
745745+ r->c->target, //
746746+ r->c->base.vk.main_queue->queue, //
747747+ r->acquired_buffer, //
748748+ render_complete_signal_value, //
749749+ desired_present_time_ns, //
750750+ present_slop_ns); //
751751 r->acquired_buffer = -1;
752752753753 if (ret == VK_ERROR_OUT_OF_DATE_KHR || ret == VK_SUBOPTIMAL_KHR) {
+3-3
src/xrt/compositor/main/comp_target_swapchain.c
···682682 // Can we create swapchains from the surface on this device and queue.
683683 ret = vk->vkGetPhysicalDeviceSurfaceSupportKHR( //
684684 vk->physical_device, // physicalDevice
685685- vk->main_queue.family_index, // queueFamilyIndex
685685+ vk->main_queue->family_index, // queueFamilyIndex
686686 cts->surface.handle, // surface
687687 &supported); // pSupported
688688 if (ret != VK_SUCCESS) {
···923923924924925925 // Need to take the queue lock for present.
926926- os_mutex_lock(&vk->queue_mutex);
926926+ vk_queue_lock(vk->main_queue);
927927 VkResult ret = vk->vkQueuePresentKHR(queue, &present_info);
928928- os_mutex_unlock(&vk->queue_mutex);
928928+ vk_queue_unlock(vk->main_queue);
929929930930931931#ifdef VK_EXT_display_control
+6-6
src/xrt/compositor/main/comp_window_peek.c
···266266267267 struct vk_bundle *vk = get_vk(w);
268268269269- os_mutex_lock(&vk->queue_mutex);
269269+ vk_queue_lock(vk->main_queue);
270270 vk->vkDeviceWaitIdle(vk->device);
271271- os_mutex_unlock(&vk->queue_mutex);
271271+ vk_queue_unlock(vk->main_queue);
272272273273 vk_cmd_pool_lock(&w->pool);
274274 vk->vkFreeCommandBuffers(vk->device, w->pool.pool, 1, &w->cmd);
···434434 };
435435436436 // Done writing commands, submit to queue.
437437- ret = vk_cmd_submit_locked(vk, &vk->main_queue, 1, &submit, VK_NULL_HANDLE);
437437+ ret = vk_cmd_submit_locked(vk, vk->main_queue, 1, &submit, VK_NULL_HANDLE);
438438439439 // Done submitting commands, unlock pool.
440440 vk_cmd_pool_unlock(&w->pool);
···456456 .pResults = NULL,
457457 };
458458459459- os_mutex_lock(&vk->queue_mutex);
460460- ret = vk->vkQueuePresentKHR(vk->main_queue.queue, &present);
461461- os_mutex_unlock(&vk->queue_mutex);
459459+ vk_queue_lock(vk->main_queue);
460460+ ret = vk->vkQueuePresentKHR(vk->main_queue->queue, &present);
461461+ vk_queue_unlock(vk->main_queue);
462462463463 if (ret != VK_SUCCESS) {
464464 VK_ERROR(vk, "Error: could not present to queue.\n");
+2-2
src/xrt/compositor/render/render_resources.c
···595595 VkCommandPoolCreateInfo command_pool_info = {
596596 .sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
597597 .flags = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
598598- .queueFamilyIndex = vk->main_queue.family_index,
598598+ .queueFamilyIndex = vk->main_queue->family_index,
599599 };
600600601601 ret = vk->vkCreateCommandPool(vk->device, &command_pool_info, NULL, &r->cmd_pool);
···657657 r->mock.color.image); // dst
658658 VK_CHK_WITH_RET(ret, "prepare_mock_image_locked", false);
659659660660- ret = vk_cmd_end_submit_wait_and_free_cmd_buffer_locked(vk, &vk->main_queue, r->cmd_pool, cmd);
660660+ ret = vk_cmd_end_submit_wait_and_free_cmd_buffer_locked(vk, vk->main_queue, r->cmd_pool, cmd);
661661 VK_CHK_WITH_RET(ret, "vk_cmd_end_submit_wait_and_free_cmd_buffer_locked", false);
662662663663 // No need to wait, submit waits on the fence.
+2-2
src/xrt/compositor/util/comp_swapchain.c
···283283 * validation doesn't complain. This is done during image destruction so
284284 * isn't time critical.
285285 */
286286- os_mutex_lock(&vk->queue_mutex);
286286+ vk_queue_lock(vk->main_queue);
287287 vk->vkDeviceWaitIdle(vk->device);
288288- os_mutex_unlock(&vk->queue_mutex);
288288+ vk_queue_unlock(vk->main_queue);
289289290290 // The field array_size is shared, only reset once both are freed.
291291 image_view_array_cleanup(vk, image->array_size, &image->views.alpha);