Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Friends | List of all members
impeller::ComputePipelineVK Class Referencefinal

#include <compute_pipeline_vk.h>

Inheritance diagram for impeller::ComputePipelineVK:
impeller::Pipeline< ComputePipelineDescriptor > impeller::BackendCast< ComputePipelineVK, Pipeline< ComputePipelineDescriptor > >

Public Member Functions

 ComputePipelineVK (std::weak_ptr< DeviceHolderVK > device_holder, std::weak_ptr< PipelineLibrary > library, const ComputePipelineDescriptor &desc, vk::UniquePipeline pipeline, vk::UniquePipelineLayout layout, vk::UniqueDescriptorSetLayout descriptor_set_layout)
 
 ~ComputePipelineVK () override
 
const vk::Pipeline & GetPipeline () const
 
const vk::PipelineLayout & GetPipelineLayout () const
 
const vk::DescriptorSetLayout & GetDescriptorSetLayout () const
 
- Public Member Functions inherited from impeller::Pipeline< ComputePipelineDescriptor >
virtual ~Pipeline ()
 
const ComputePipelineDescriptorGetDescriptor () const
 Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to create a pipeline variant.
 
PipelineFuture< ComputePipelineDescriptorCreateVariant (std::function< void(ComputePipelineDescriptor &desc)> descriptor_callback) const
 

Private Member Functions

bool IsValid () const override
 

Friends

class PipelineLibraryVK
 

Additional Inherited Members

- Static Public Member Functions inherited from impeller::BackendCast< ComputePipelineVK, Pipeline< ComputePipelineDescriptor > >
static ComputePipelineVKCast (Pipeline< ComputePipelineDescriptor > &base)
 
static const ComputePipelineVKCast (const Pipeline< ComputePipelineDescriptor > &base)
 
static ComputePipelineVKCast (Pipeline< ComputePipelineDescriptor > *base)
 
static const ComputePipelineVKCast (const Pipeline< ComputePipelineDescriptor > *base)
 
- Protected Member Functions inherited from impeller::Pipeline< ComputePipelineDescriptor >
 Pipeline (std::weak_ptr< PipelineLibrary > library, ComputePipelineDescriptor desc)
 
- Protected Attributes inherited from impeller::Pipeline< ComputePipelineDescriptor >
const std::weak_ptr< PipelineLibrarylibrary_
 
const ComputePipelineDescriptor desc_
 

Detailed Description

Definition at line 18 of file compute_pipeline_vk.h.

Constructor & Destructor Documentation

◆ ComputePipelineVK()

impeller::ComputePipelineVK::ComputePipelineVK ( std::weak_ptr< DeviceHolderVK device_holder,
std::weak_ptr< PipelineLibrary library,
const ComputePipelineDescriptor desc,
vk::UniquePipeline  pipeline,
vk::UniquePipelineLayout  layout,
vk::UniqueDescriptorSetLayout  descriptor_set_layout 
)

Definition at line 9 of file compute_pipeline_vk.cc.

16 : Pipeline(std::move(library), desc),
17 device_holder_(std::move(device_holder)),
18 pipeline_(std::move(pipeline)),
19 layout_(std::move(layout)),
20 descriptor_set_layout_(std::move(descriptor_set_layout)) {
21 is_valid_ = pipeline_ && layout_ && descriptor_set_layout_;
22}
Pipeline(std::weak_ptr< PipelineLibrary > library, ComputePipelineDescriptor desc)
Definition pipeline.cc:18

◆ ~ComputePipelineVK()

impeller::ComputePipelineVK::~ComputePipelineVK ( )
override

Definition at line 24 of file compute_pipeline_vk.cc.

24 {
25 std::shared_ptr<DeviceHolderVK> device_holder = device_holder_.lock();
26 if (device_holder) {
27 descriptor_set_layout_.reset();
28 layout_.reset();
29 pipeline_.reset();
30 } else {
31 descriptor_set_layout_.release();
32 layout_.release();
33 pipeline_.release();
34 }
35}

Member Function Documentation

◆ GetDescriptorSetLayout()

const vk::DescriptorSetLayout & impeller::ComputePipelineVK::GetDescriptorSetLayout ( ) const

Definition at line 49 of file compute_pipeline_vk.cc.

50 {
51 return *descriptor_set_layout_;
52}

◆ GetPipeline()

const vk::Pipeline & impeller::ComputePipelineVK::GetPipeline ( ) const

Definition at line 41 of file compute_pipeline_vk.cc.

41 {
42 return *pipeline_;
43}

◆ GetPipelineLayout()

const vk::PipelineLayout & impeller::ComputePipelineVK::GetPipelineLayout ( ) const

Definition at line 45 of file compute_pipeline_vk.cc.

45 {
46 return *layout_;
47}

◆ IsValid()

bool impeller::ComputePipelineVK::IsValid ( ) const
overrideprivatevirtual

Implements impeller::Pipeline< ComputePipelineDescriptor >.

Definition at line 37 of file compute_pipeline_vk.cc.

37 {
38 return is_valid_;
39}

Friends And Related Symbol Documentation

◆ PipelineLibraryVK

friend class PipelineLibraryVK
friend

Definition at line 40 of file compute_pipeline_vk.h.


The documentation for this class was generated from the following files: