Files
mirai/src/render/vulkan_queue.cpp
2026-01-08 10:03:19 +08:00

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