5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_TRACKED_OBJECTS_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_TRACKED_OBJECTS_VK_H_
22 const std::shared_ptr<CommandPoolVK>& pool,
23 std::shared_ptr<DescriptorPoolVK> descriptor_pool,
24 std::unique_ptr<GPUProbe> probe);
30 void Track(
const std::shared_ptr<SharedObjectVK>&
object);
32 void Track(
const std::shared_ptr<const DeviceBuffer>& buffer);
34 void Track(
const std::shared_ptr<const TextureSourceVK>& texture);
43 std::shared_ptr<DescriptorPoolVK> desc_pool_;
45 std::shared_ptr<CommandPoolVK> pool_;
46 vk::UniqueCommandBuffer buffer_;
47 std::vector<std::shared_ptr<SharedObjectVK>> tracked_objects_;
48 std::vector<std::shared_ptr<const DeviceBuffer>> tracked_buffers_;
49 std::vector<std::shared_ptr<const TextureSourceVK>> tracked_textures_;
50 std::unique_ptr<GPUProbe> probe_;
51 bool is_valid_ =
false;
A per-frame descriptor pool. Descriptors from this pool don't need to be freed individually....
A per-frame object used to track resource lifetimes and allocate command buffers and descriptor sets.
void Track(const std::shared_ptr< SharedObjectVK > &object)
GPUProbe & GetGPUProbe() const
DescriptorPoolVK & GetDescriptorPool()
vk::CommandBuffer GetCommandBuffer() const
TrackedObjectsVK(const std::weak_ptr< const ContextVK > &context, const std::shared_ptr< CommandPoolVK > &pool, std::shared_ptr< DescriptorPoolVK > descriptor_pool, std::unique_ptr< GPUProbe > probe)