class CommandBufferPool

Defined at line 23 of file ../../src/ui/lib/escher/impl/command_buffer_pool.h

Manages the lifecycle of CommandBuffers.

Not thread-safe.

Public Methods

void CommandBufferPool (vk::Device device, vk::Queue queue, uint32_t queue_family_index, CommandBufferSequencer * sequencer, bool supports_graphics_and_compute, bool use_protected_memory)

The CommandBufferPool does not take ownership of the device and queue.

Defined at line 16 of file ../../src/ui/lib/escher/impl/command_buffer_pool.cc

vk::Device device ()

Defined at line 46 of file ../../src/ui/lib/escher/impl/command_buffer_pool.h

vk::Queue queue ()

Defined at line 47 of file ../../src/ui/lib/escher/impl/command_buffer_pool.h

void ~CommandBufferPool ()

If there are still any pending buffers, this will block until they are

finished.

Defined at line 56 of file ../../src/ui/lib/escher/impl/command_buffer_pool.cc

CommandBuffer * GetCommandBuffer ()

Get a ready-to-use CommandBuffer; a new one will be allocated if necessary.

If a callback is provided, it will be run at some time after the buffer

has finished running on the GPU.

Defined at line 82 of file ../../src/ui/lib/escher/impl/command_buffer_pool.cc

bool Cleanup ()

Do periodic housekeeping. Return true if cleanup was complete, i.e. all

pending command buffers are now finished. A call made from inside a

`CommandBufferFinishedCallback` does no work and returns false because the

active `Cleanup()` call on the stack finishes the drain, so callers must

not retry from inside a callback.

Defined at line 108 of file ../../src/ui/lib/escher/impl/command_buffer_pool.cc