39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
#include "render/vulkan_queue.h"
|
|
|
|
namespace mirai {
|
|
vulkan_queue::vulkan_queue(vk::Device device, vk::Queue queue, u32 family_index, u32 queue_index) : device_(device)
|
|
, queue_(queue)
|
|
, family_index_(family_index),
|
|
queue_index_(queue_index) {
|
|
}
|
|
|
|
vk::Result vulkan_queue::submit(
|
|
const std::vector<vk::CommandBufferSubmitInfo>& command_buffers,
|
|
const std::vector<vk::SemaphoreSubmitInfo>& wait_semaphores,
|
|
const std::vector<vk::SemaphoreSubmitInfo>& signal_semaphores,
|
|
vk::Fence fence) {
|
|
std::lock_guard lock(get_lock());
|
|
|
|
vk::SubmitInfo2 submit_info;
|
|
submit_info.setCommandBufferInfos(command_buffers);
|
|
submit_info.setWaitSemaphoreInfos(wait_semaphores);
|
|
submit_info.setSignalSemaphoreInfos(signal_semaphores);
|
|
|
|
return queue_.submit2(submit_info, fence);
|
|
}
|
|
|
|
vk::Result vulkan_queue::wait_idle() {
|
|
std::lock_guard lock(get_lock());
|
|
return queue_.waitIdle();
|
|
}
|
|
|
|
void_result_t vulkan_graphics_queue::submit(const std::vector<vk::CommandBufferSubmitInfo>& command_buffers) {
|
|
vk::PipelineStageFlags waitStages[] = {vk::PipelineStageFlagBits::eColorAttachmentOutput};
|
|
submitInfo.setWaitSemaphores(imageAvailableSemaphore);
|
|
submitInfo.setPWaitDstStageMask(waitStages);
|
|
}
|
|
|
|
void_result_t vulkan_present_queue::present(const vk::PresentInfoKHR& present_info) {
|
|
}
|
|
} // namespace mirai
|