Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
GrVkPipelineStateBuilder Class Reference

#include <GrVkPipelineStateBuilder.h>

Inheritance diagram for GrVkPipelineStateBuilder:
GrGLSLProgramBuilder

Public Member Functions

const GrCapscaps () const override
 
GrVkGpugpu () const
 
void finalizeFragmentSecondaryColor (GrShaderVar &outputColor) override
 
- Public Member Functions inherited from GrGLSLProgramBuilder
virtual ~GrGLSLProgramBuilder ()
 
const GrShaderCapsshaderCaps () const
 
GrSurfaceOrigin origin () const
 
const GrPipelinepipeline () const
 
const GrGeometryProcessorgeometryProcessor () const
 
bool snapVerticesToPixelCenters () const
 
bool hasPointSize () const
 
const GrProgramDescdesc () const
 
void appendUniformDecls (GrShaderFlags visibility, SkString *) const
 
const char * samplerVariable (SamplerHandle handle) const
 
skgpu::Swizzle samplerSwizzle (SamplerHandle handle) const
 
const char * inputSamplerVariable (SamplerHandle handle) const
 
skgpu::Swizzle inputSamplerSwizzle (SamplerHandle handle) const
 
void addRTFlipUniform (const char *name)
 
SkString nameVariable (char prefix, const char *name, bool mangle=true)
 
bool emitTextureSamplersForFPs (const GrFragmentProcessor &fp, GrFragmentProcessor::ProgramImpl &impl, int *samplerIndex)
 
void advanceStage ()
 
void writeFPFunction (const GrFragmentProcessor &fp, GrFragmentProcessor::ProgramImpl &impl)
 
std::string invokeFP (const GrFragmentProcessor &fp, const GrFragmentProcessor::ProgramImpl &impl, const char *inputColor, const char *destColor, const char *coords) const
 
bool fragmentProcessorHasCoordsParam (const GrFragmentProcessor *) const
 

Static Public Member Functions

static GrVkPipelineStateCreatePipelineState (GrVkGpu *, const GrProgramDesc &, const GrProgramInfo &, VkRenderPass compatibleRenderPass, bool overrideSubpassForResolveLoad)
 

Private Member Functions

GrGLSLUniformHandleruniformHandler () override
 
const GrGLSLUniformHandleruniformHandler () const override
 
GrGLSLVaryingHandlervaryingHandler () override
 

Additional Inherited Members

- Public Types inherited from GrGLSLProgramBuilder
using UniformHandle = GrGLSLUniformHandler::UniformHandle
 
using SamplerHandle = GrGLSLUniformHandler::SamplerHandle
 
- Public Attributes inherited from GrGLSLProgramBuilder
GrGLSLVertexBuilder fVS
 
GrGLSLFragmentShaderBuilder fFS
 
const GrProgramDescfDesc
 
const GrProgramInfofProgramInfo
 
GrGLSLBuiltinUniformHandles fUniformHandles
 
std::unique_ptr< GrGeometryProcessor::ProgramImplfGPImpl
 
std::unique_ptr< GrXferProcessor::ProgramImplfXPImpl
 
std::vector< std::unique_ptr< GrFragmentProcessor::ProgramImpl > > fFPImpls
 
SamplerHandle fDstTextureSamplerHandle
 
GrSurfaceOrigin fDstTextureOrigin
 
- Static Public Attributes inherited from GrGLSLProgramBuilder
static const int kVarsPerBlock = 8
 
- Protected Member Functions inherited from GrGLSLProgramBuilder
 GrGLSLProgramBuilder (const GrProgramDesc &, const GrProgramInfo &)
 
void addFeature (GrShaderFlags shaders, uint32_t featureBit, const char *extensionName)
 
bool emitAndInstallProcs ()
 
void finalizeShaders ()
 
bool fragColorIsInOut () const
 

Detailed Description

Definition at line 25 of file GrVkPipelineStateBuilder.h.

Member Function Documentation

◆ caps()

const GrCaps * GrVkPipelineStateBuilder::caps ( ) const
overridevirtual

Implements GrGLSLProgramBuilder.

Definition at line 59 of file GrVkPipelineStateBuilder.cpp.

59 {
60 return fGpu->caps();
61}
const GrCaps * caps() const
Definition GrGpu.h:73

◆ CreatePipelineState()

GrVkPipelineState * GrVkPipelineStateBuilder::CreatePipelineState ( GrVkGpu gpu,
const GrProgramDesc desc,
const GrProgramInfo programInfo,
VkRenderPass  compatibleRenderPass,
bool  overrideSubpassForResolveLoad 
)
static

Generates a pipeline state.

The return GrVkPipelineState implements the supplied GrProgramInfo.

Returns
the created pipeline if generation was successful; nullptr otherwise

Definition at line 26 of file GrVkPipelineStateBuilder.cpp.

31 {
32
33 GrVkResourceProvider& resourceProvider = gpu->resourceProvider();
34
35 resourceProvider.pipelineStateCache()->stats()->incShaderCompilations();
36
37 // ensure that we use "." as a decimal separator when creating SkSL code
38 GrAutoLocaleSetter als("C");
39
40 // create a builder. This will be handed off to effects so they can use it to add
41 // uniforms, varyings, textures, etc
43
44 if (!builder.emitAndInstallProcs()) {
45 return nullptr;
46 }
47
48 return builder.finalize(desc, compatibleRenderPass, overrideSubpassForResolveLoad);
49}
const GrProgramDesc & desc() const
GrVkResourceProvider & resourceProvider()
Definition GrVkGpu.h:83
GrThreadSafePipelineBuilder * pipelineStateCache()

◆ finalizeFragmentSecondaryColor()

void GrVkPipelineStateBuilder::finalizeFragmentSecondaryColor ( GrShaderVar outputColor)
overridevirtual

Reimplemented from GrGLSLProgramBuilder.

Definition at line 63 of file GrVkPipelineStateBuilder.cpp.

63 {
64 outputColor.addLayoutQualifier("location = 0, index = 1");
65}
void addLayoutQualifier(const char *layoutQualifier)

◆ gpu()

GrVkGpu * GrVkPipelineStateBuilder::gpu ( ) const
inline

Definition at line 41 of file GrVkPipelineStateBuilder.h.

41{ return fGpu; }

◆ uniformHandler() [1/2]

const GrGLSLUniformHandler * GrVkPipelineStateBuilder::uniformHandler ( ) const
inlineoverrideprivatevirtual

Implements GrGLSLProgramBuilder.

Definition at line 75 of file GrVkPipelineStateBuilder.h.

75{ return &fUniformHandler; }

◆ uniformHandler() [2/2]

GrGLSLUniformHandler * GrVkPipelineStateBuilder::uniformHandler ( )
inlineoverrideprivatevirtual

Implements GrGLSLProgramBuilder.

Definition at line 74 of file GrVkPipelineStateBuilder.h.

74{ return &fUniformHandler; }

◆ varyingHandler()

GrGLSLVaryingHandler * GrVkPipelineStateBuilder::varyingHandler ( )
inlineoverrideprivatevirtual

Implements GrGLSLProgramBuilder.

Definition at line 76 of file GrVkPipelineStateBuilder.h.

76{ return &fVaryingHandler; }

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