mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-02-05 13:28:16 +00:00
c/main: comp_renderer uses queue from vk bundle;
The vk bundle currently creates a single queue, calls vkGetDeviceQueue, and stores it in the bundle. There's only ever 1 queue from 1 queue family right now, even when using the compute compositor. It doesn't really make sense for the renderer to re-request this queue instead of using the one in the bundle. If we wanted to store a local version to it, it should probably be assigned directly (i.e. r->queue = vk->queue) to ensure that it's the same. If we decide we want multiple queues later, that would be a good time to add this sort of thing back.
This commit is contained in:
parent
12fab0653c
commit
6275c4de10
|
@ -88,8 +88,6 @@ struct comp_renderer
|
|||
VkSemaphore present_complete;
|
||||
VkSemaphore render_complete;
|
||||
} semaphores;
|
||||
|
||||
VkQueue queue;
|
||||
//! @}
|
||||
|
||||
//! @name Image-dependent members
|
||||
|
@ -553,14 +551,10 @@ renderer_create(struct comp_renderer *r, struct comp_compositor *c)
|
|||
|
||||
r->acquired_buffer = -1;
|
||||
r->fenced_buffer = -1;
|
||||
r->queue = VK_NULL_HANDLE;
|
||||
r->semaphores.present_complete = VK_NULL_HANDLE;
|
||||
r->semaphores.render_complete = VK_NULL_HANDLE;
|
||||
r->rtr_array = NULL;
|
||||
|
||||
struct vk_bundle *vk = &r->c->base.vk;
|
||||
|
||||
vk->vkGetDeviceQueue(vk->device, vk->queue_family_index, 0, &r->queue);
|
||||
renderer_init_semaphores(r);
|
||||
|
||||
// Try to early-allocate these, in case we can.
|
||||
|
@ -585,6 +579,8 @@ renderer_create(struct comp_renderer *r, struct comp_compositor *c)
|
|||
|
||||
u_sink_debug_init(&r->mirror_to_debug_gui.debug_sink);
|
||||
|
||||
struct vk_bundle *vk = &r->c->base.vk;
|
||||
|
||||
vk_image_readback_to_xf_pool_create(vk, r->mirror_to_debug_gui.image_extent, &r->mirror_to_debug_gui.pool,
|
||||
XRT_FORMAT_R8G8B8X8);
|
||||
}
|
||||
|
@ -643,7 +639,7 @@ renderer_submit_queue(struct comp_renderer *r, VkCommandBuffer cmd, VkPipelineSt
|
|||
.pSignalSemaphores = &r->semaphores.render_complete,
|
||||
};
|
||||
|
||||
ret = vk_locked_submit(vk, r->queue, 1, &comp_submit_info, r->fences[r->acquired_buffer]);
|
||||
ret = vk_locked_submit(vk, vk->queue, 1, &comp_submit_info, r->fences[r->acquired_buffer]);
|
||||
if (ret != VK_SUCCESS) {
|
||||
COMP_ERROR(r->c, "vkQueueSubmit: %s", vk_result_string(ret));
|
||||
}
|
||||
|
@ -756,7 +752,7 @@ renderer_present_swapchain_image(struct comp_renderer *r, uint64_t desired_prese
|
|||
|
||||
ret = comp_target_present( //
|
||||
r->c->target, //
|
||||
r->queue, //
|
||||
r->c->base.vk.queue, //
|
||||
r->acquired_buffer, //
|
||||
r->semaphores.render_complete, //
|
||||
desired_present_time_ns, //
|
||||
|
|
Loading…
Reference in a new issue