Skip to content

Add vk::device_queue::submit to allow for submissions for non-present queues. #92

Description

@mrparmesan01

Task Brief

Currently, there is the vk::device_present_queue which acts as a way to perform queue submissions that relies on being supplied for performing submission to the display.

We should have a similar functionality but for vk::device_queue, with the only difference is this queue does not provide an API to perform queue submissions.

API Design

The form for vk::device_queue is going to look quite similar. I am still unsure whether to go this route of having two separate implementations or simply just have a singular implementation to combine vk::device_present_queue and vk::device_queue under a single implementation for simplicity.

The way this would work is also introduce a better way of controlling how semaphores are specified for queue submissions.

vk::device_queue graphics_queue(logical_device, { .family = 0, .index = 0});

// Specify the semaphroes for wait and signaling for the current workload
std::array<VkSemaphore, 1> wait_semaphores = { wait };
std::array<VkSemaphore, 1> signal_semaphores = { signal_sem };
std::array<VkCommandBuffer, 1> commands = { current };
graphics_queue.submit(commands, wait_semaphores, signal_semaphores);
graphics_queue.wait(); // performing vkQueueWaitIdle

Task Completion

There are still discussions whether we should go about this or if it make sense to have this be separated. As this issue is to keep track of this idea as it is TBD, currently.

Metadata

Metadata

Assignees

No one assigned

    Labels

    📐designTasks that involve the core systems. Highly involve in API design.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions