#include <pipeline_vk.h>
Public Member Functions | |
~PipelineVK () override | |
vk::Pipeline | GetPipeline () const |
const vk::PipelineLayout & | GetPipelineLayout () const |
const vk::DescriptorSetLayout & | GetDescriptorSetLayout () const |
std::shared_ptr< PipelineVK > | CreateVariantForImmutableSamplers (const std::shared_ptr< SamplerVK > &immutable_sampler) const |
![]() | |
virtual | ~Pipeline () |
virtual bool | IsValid () const=0 |
const PipelineDescriptor & | GetDescriptor () const |
Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to create a pipeline variant. More... | |
PipelineFuture< PipelineDescriptor > | CreateVariant (std::function< void(PipelineDescriptor &desc)> descriptor_callback) const |
Static Public Member Functions | |
static std::unique_ptr< PipelineVK > | Create (const PipelineDescriptor &desc, const std::shared_ptr< DeviceHolderVK > &device_holder, const std::weak_ptr< PipelineLibrary > &weak_library, std::shared_ptr< SamplerVK > immutable_sampler={}) |
![]() | |
static PipelineVK & | Cast (Pipeline< PipelineDescriptor > &base) |
static const PipelineVK & | Cast (const Pipeline< PipelineDescriptor > &base) |
static PipelineVK * | Cast (Pipeline< PipelineDescriptor > *base) |
static const PipelineVK * | Cast (const Pipeline< PipelineDescriptor > *base) |
Friends | |
class | PipelineLibraryVK |
Additional Inherited Members | |
![]() | |
Pipeline (std::weak_ptr< PipelineLibrary > library, PipelineDescriptor desc) | |
![]() | |
const std::weak_ptr< PipelineLibrary > | library_ |
const PipelineDescriptor | desc_ |
Definition at line 28 of file pipeline_vk.h.
|
override |
Definition at line 484 of file pipeline_vk.cc.
|
static |
Dynamic States
Viewport State
Shader Stages
Rasterization State
Multi-sample State
Primitive Input Assembly State
Color Blend State
Vertex Input Setup
Pipeline Layout a.k.a the descriptor sets and uniforms.
Create the pipeline layout.
Create the depth stencil state.
Setup the optional pipeline creation feedback struct so we can understand how Vulkan created the PSO.
Finally, all done with the setup info. Create the pipeline itself.
Definition at line 167 of file pipeline_vk.cc.
References impeller::BackendCast< PipelineLibraryVK, PipelineLibrary >::Cast(), impeller::BackendCast< ShaderFunctionVK, ShaderFunction >::Cast(), impeller::CreateCompatRenderPassForPipeline(), impeller::EmptyFeedback(), impeller::PipelineDescriptor::GetBackStencilAttachmentDescriptor(), impeller::PipelineDescriptor::GetColorAttachmentDescriptors(), impeller::PipelineDescriptor::GetCullMode(), impeller::PipelineDescriptor::GetDepthStencilAttachmentDescriptor(), impeller::PipelineDescriptor::GetFrontStencilAttachmentDescriptor(), impeller::PipelineDescriptor::GetLabel(), impeller::PipelineDescriptor::GetPolygonMode(), impeller::PipelineDescriptor::GetPrimitiveType(), impeller::PipelineLibraryVK::GetPSOCache(), impeller::PipelineDescriptor::GetSampleCount(), impeller::PipelineDescriptor::GetSpecializationConstants(), impeller::PipelineDescriptor::GetStageEntrypoints(), impeller::PipelineDescriptor::GetVertexDescriptor(), impeller::PipelineDescriptor::GetWindingOrder(), impeller::kEXTPipelineCreationFeedback, impeller::kSampledImage, impeller::ReportPipelineCreationFeedback(), impeller::ContextVK::SetDebugName(), impeller::ToVertexDescriptorFormat(), impeller::ToVKCullModeFlags(), impeller::ToVKDescriptorType(), impeller::ToVKFrontFace(), impeller::ToVKPipelineColorBlendAttachmentState(), impeller::ToVKPipelineDepthStencilStateCreateInfo(), impeller::ToVKPolygonMode(), impeller::ToVKPrimitiveTopology(), impeller::ToVKSampleCountFlagBits(), impeller::ToVkShaderStage(), impeller::ToVKShaderStageFlagBits(), and VALIDATION_LOG.
Referenced by CreateVariantForImmutableSamplers().
std::shared_ptr< PipelineVK > impeller::PipelineVK::CreateVariantForImmutableSamplers | ( | const std::shared_ptr< SamplerVK > & | immutable_sampler | ) | const |
Definition at line 509 of file pipeline_vk.cc.
References Create(), impeller::Pipeline< PipelineDescriptor >::desc_, and impeller::Pipeline< PipelineDescriptor >::library_.
const vk::DescriptorSetLayout & impeller::PipelineVK::GetDescriptorSetLayout | ( | ) | const |
Definition at line 505 of file pipeline_vk.cc.
vk::Pipeline impeller::PipelineVK::GetPipeline | ( | ) | const |
Definition at line 497 of file pipeline_vk.cc.
const vk::PipelineLayout & impeller::PipelineVK::GetPipelineLayout | ( | ) | const |
Definition at line 501 of file pipeline_vk.cc.
|
friend |
Definition at line 51 of file pipeline_vk.h.