Flutter Impeller
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. More...
 
- 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. More...
 
PipelineFuture< ComputePipelineDescriptorCreateVariant (bool async, 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, 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, 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 Function 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: