Flutter Engine
 
Loading...
Searching...
No Matches
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, PipelineKey pipeline_key)
 
 ~ComputePipelineVK () override
 
const vk::Pipeline & GetPipeline () const
 
const vk::PipelineLayout & GetPipelineLayout () const
 
const vk::DescriptorSetLayout & GetDescriptorSetLayout () const
 
PipelineKey GetPipelineKey () const
 Retrieve the unique identifier for this pipeline's descriptor set layout.
 
- 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 (bool async, const std::function< void(ComputePipelineDescriptor &desc)> &descriptor_callback) const
 

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, const ComputePipelineDescriptor &desc)
 
- Protected Attributes inherited from impeller::Pipeline< ComputePipelineDescriptor >
const std::weak_ptr< PipelineLibrarylibrary_
 
const ComputePipelineDescriptor desc_
 

Detailed Description

Definition at line 17 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,
PipelineKey  pipeline_key 
)

Definition at line 9 of file compute_pipeline_vk.cc.

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

◆ ~ComputePipelineVK()

impeller::ComputePipelineVK::~ComputePipelineVK ( )
override

Definition at line 26 of file compute_pipeline_vk.cc.

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

Member Function Documentation

◆ GetDescriptorSetLayout()

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

Definition at line 51 of file compute_pipeline_vk.cc.

52 {
53 return *descriptor_set_layout_;
54}

◆ GetPipeline()

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

Definition at line 43 of file compute_pipeline_vk.cc.

43 {
44 return *pipeline_;
45}

◆ GetPipelineKey()

PipelineKey impeller::ComputePipelineVK::GetPipelineKey ( ) const

Retrieve the unique identifier for this pipeline's descriptor set layout.

Definition at line 56 of file compute_pipeline_vk.cc.

56 {
57 return pipeline_key_;
58}

◆ GetPipelineLayout()

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

Definition at line 47 of file compute_pipeline_vk.cc.

47 {
48 return *layout_;
49}

Friends And Related Symbol Documentation

◆ PipelineLibraryVK

friend class PipelineLibraryVK
friend

Definition at line 44 of file compute_pipeline_vk.h.


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