5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_COMMAND_BUFFER_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_COMMAND_BUFFER_VK_H_
8 #include "fml/status_or.h"
21 class CommandEncoderFactoryVK;
22 class CommandEncoderVK;
27 public std::enable_shared_from_this<CommandBufferVK> {
36 bool Track(
const std::shared_ptr<SharedObjectVK>&
object);
40 bool Track(
const std::shared_ptr<const DeviceBuffer>& buffer);
44 bool Track(
const std::shared_ptr<const Texture>& texture);
48 bool Track(
const std::shared_ptr<const TextureSourceVK>& texture);
76 const vk::DescriptorSetLayout& layout,
86 std::weak_ptr<const DeviceHolderVK> device_holder_;
87 std::shared_ptr<TrackedObjectsVK> tracked_objects_;
90 std::weak_ptr<const DeviceHolderVK> device_holder,
91 std::shared_ptr<TrackedObjectsVK> tracked_objects);
94 void SetLabel(std::string_view label)
const override;
97 bool IsValid()
const override;
103 void OnWaitUntilCompleted()
override;
106 void OnWaitUntilScheduled()
override;
109 std::shared_ptr<RenderPass> OnCreateRenderPass(
RenderTarget target)
override;
112 std::shared_ptr<BlitPass> OnCreateBlitPass()
override;
115 std::shared_ptr<ComputePass> OnCreateComputePass()
override;
A collection of encoded commands to be submitted to the GPU for execution. A command buffer is obtain...
std::function< void(Status)> CompletionCallback
~CommandBufferVK() override
void PushDebugGroup(std::string_view label) const
Push a debug group.
void InsertDebugMarker(std::string_view label) const
Insert a new debug marker.
DescriptorPoolVK & GetDescriptorPool() const
bool Track(const std::shared_ptr< SharedObjectVK > &object)
Ensure that [object] is kept alive until this command buffer completes execution.
bool EndCommandBuffer() const
End recording of the current command buffer.
void PopDebugGroup() const
Pop the previous debug group.
fml::StatusOr< vk::DescriptorSet > AllocateDescriptorSets(const vk::DescriptorSetLayout &layout, const ContextVK &context)
Allocate a new descriptor set for the given [layout].
vk::CommandBuffer GetCommandBuffer() const
Retrieve the native command buffer from this object.
A per-frame descriptor pool. Descriptors from this pool don't need to be freed individually....