15 : vk_(p_vk), device_(
device), pool_(pool), valid_(false) {
16 const VkCommandBufferAllocateInfo allocate_info = {
17 .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
20 .level = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
21 .commandBufferCount = 1,
24 VkCommandBuffer buffer = VK_NULL_HANDLE;
27 &buffer)) != VK_SUCCESS) {
28 FML_DLOG(INFO) <<
"Could not allocate command buffers.";
32 auto buffer_collect = [
this](VkCommandBuffer buffer) {
33 vk_.FreeCommandBuffers(device_, pool_, 1, &buffer);
68 VkPipelineStageFlagBits src_stage_flags,
69 VkPipelineStageFlagBits dest_stage_flags,
70 uint32_t dependency_flags,
71 uint32_t memory_barrier_count,
72 const VkMemoryBarrier* memory_barriers,
73 uint32_t buffer_memory_barrier_count,
74 const VkBufferMemoryBarrier* buffer_memory_barriers,
75 uint32_t image_memory_barrier_count,
76 const VkImageMemoryBarrier* image_memory_barriers)
const {
77 vk_.CmdPipelineBarrier(handle_, src_stage_flags, dest_stage_flags,
78 dependency_flags, memory_barrier_count,
79 memory_barriers, buffer_memory_barrier_count,
80 buffer_memory_barriers, image_memory_barrier_count,
81 image_memory_barriers);
bool InsertPipelineBarrier(VkPipelineStageFlagBits src_stage_flags, VkPipelineStageFlagBits dest_stage_flags, uint32_t dependency_flags, uint32_t memory_barrier_count, const VkMemoryBarrier *memory_barriers, uint32_t buffer_memory_barrier_count, const VkBufferMemoryBarrier *buffer_memory_barriers, uint32_t image_memory_barrier_count, const VkImageMemoryBarrier *image_memory_barriers) const