Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
pipeline_compile_queue_vulkan.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_PIPELINE_COMPILE_QUEUE_VULKAN_H_
6#define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_PIPELINE_COMPILE_QUEUE_VULKAN_H_
7
11
12namespace impeller {
13
14//------------------------------------------------------------------------------
15/// @brief A task queue designed for managing compilation of pipeline state
16/// objects for Vulkan backend.
17///
18/// This subclass uses a fml::BasicTaskRunner as the worker task
19/// runner and dispatches compile jobs directly without sequential
20/// processing constraints.
21///
22/// Key characteristics:
23/// - Uses std::shared_ptr<fml::BasicTaskRunner> for
24/// worker_task_runner_
25/// - Dispatches jobs directly to the task runner in OnJobAdded()
26/// - Does not implement sequential processing like GLES version
27///
28/// The Vulkan backend benefits from the parallel nature of pipeline
29/// compilation, allowing multiple compile jobs to be processed
30/// concurrently through the task runner.
31///
33 public:
34 static std::shared_ptr<PipelineCompileQueueVulkan> Create(
35 std::shared_ptr<fml::BasicTaskRunner> worker_task_runner);
36
38
40
42 delete;
43
44 void PostJob(const fml::closure& job) override;
45
46 void OnJobAdded() override;
47
48 private:
50 std::shared_ptr<fml::BasicTaskRunner> worker_task_runner);
51 std::shared_ptr<fml::BasicTaskRunner> worker_task_runner_;
52};
53
54} // namespace impeller
55
56#endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_PIPELINE_COMPILE_QUEUE_VULKAN_H_
A task queue designed for managing compilation of pipeline state objects.
A task queue designed for managing compilation of pipeline state objects for Vulkan backend.
static std::shared_ptr< PipelineCompileQueueVulkan > Create(std::shared_ptr< fml::BasicTaskRunner > worker_task_runner)
PipelineCompileQueueVulkan(const PipelineCompileQueueVulkan &)=delete
PipelineCompileQueueVulkan & operator=(const PipelineCompileQueueVulkan &)=delete
void OnJobAdded() override
Called by PostJobForDescriptor after a job has been successfully added to the queue....
void PostJob(const fml::closure &job) override
Post a compilation job to the worker task runner.
std::function< void()> closure
Definition closure.h:14