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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions