Add shaderCompiler() to ProgramBuilders

This will be used by the DSL.

Change-Id: Iadc5d06fd463b08cf6edf954f03aaf8ffa1fa56b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364578
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This commit is contained in:
Ethan Nicholas 2021-02-02 11:59:09 -05:00 committed by Skia Commit-Bot
parent 3d2291cd75
commit ee9cb6aec3
11 changed files with 32 additions and 0 deletions

View File

@ -58,6 +58,10 @@ const GrCaps* GrD3DPipelineStateBuilder::caps() const {
return fGpu->caps();
}
SkSL::Compiler* GrD3DPipelineStateBuilder::shaderCompiler() const {
return fGpu->shaderCompiler();
}
void GrD3DPipelineStateBuilder::finalizeFragmentOutputColor(GrShaderVar& outputColor) {
outputColor.addLayoutQualifier("location = 0, index = 0");
}

View File

@ -36,6 +36,8 @@ public:
GrD3DGpu* gpu() const { return fGpu; }
SkSL::Compiler* shaderCompiler() const override;
void finalizeFragmentOutputColor(GrShaderVar& outputColor) override;
void finalizeFragmentSecondaryColor(GrShaderVar& outputColor) override;

View File

@ -450,6 +450,10 @@ const GrCaps* GrDawnProgramBuilder::caps() const {
return fGpu->caps();
}
SkSL::Compiler* GrDawnProgramBuilder::shaderCompiler() const {
return fGpu->shaderCompiler();
}
void GrDawnProgram::setRenderTargetState(const GrRenderTarget* rt, GrSurfaceOrigin origin) {
// Load the RT height uniform if it is needed to y-flip gl_FragCoord.
if (fBuiltinUniformHandles.fRTHeightUni.isValid() &&

View File

@ -86,6 +86,8 @@ public:
GrDawnGpu* gpu() const { return fGpu; }
SkSL::Compiler* shaderCompiler() const override;
private:
GrDawnProgramBuilder(GrDawnGpu*,
GrRenderTarget*,

View File

@ -92,6 +92,10 @@ const GrCaps* GrGLProgramBuilder::caps() const {
return fGpu->caps();
}
SkSL::Compiler* GrGLProgramBuilder::shaderCompiler() const {
return fGpu->shaderCompiler();
}
bool GrGLProgramBuilder::compileAndAttachShaders(const SkSL::String& glsl,
GrGLuint programId,
GrGLenum type,

View File

@ -56,6 +56,8 @@ public:
GrGLGpu* gpu() const { return fGpu; }
SkSL::Compiler* shaderCompiler() const override;
private:
GrGLProgramBuilder(GrGLGpu*, GrRenderTarget*, const GrProgramDesc&, const GrProgramInfo&);

View File

@ -19,6 +19,7 @@
#include "src/gpu/glsl/GrGLSLUniformHandler.h"
#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
#include "src/gpu/glsl/GrGLSLXferProcessor.h"
#include "src/sksl/SkSLCompiler.h"
class GrProgramDesc;
class GrShaderVar;
@ -46,6 +47,7 @@ public:
return fProgramInfo.pipeline().snapVerticesToPixelCenters();
}
bool hasPointSize() const { return fProgramInfo.primitiveType() == GrPrimitiveType::kPoints; }
virtual SkSL::Compiler* shaderCompiler() const = 0;
// TODO: stop passing in the renderTarget for just the sampleLocations
int effectiveSampleCnt() {

View File

@ -45,6 +45,8 @@ private:
const GrCaps* caps() const override;
SkSL::Compiler* shaderCompiler() const override;
void finalizeFragmentOutputColor(GrShaderVar& outputColor) override;
void finalizeFragmentSecondaryColor(GrShaderVar& outputColor) override;

View File

@ -54,6 +54,10 @@ const GrCaps* GrMtlPipelineStateBuilder::caps() const {
return fGpu->caps();
}
SkSL::Compiler* GrMtlPipelineStateBuilder::shaderCompiler() const {
return fGpu->shaderCompiler();
}
void GrMtlPipelineStateBuilder::finalizeFragmentOutputColor(GrShaderVar& outputColor) {
outputColor.addLayoutQualifier("location = 0, index = 0");
}

View File

@ -58,6 +58,10 @@ const GrCaps* GrVkPipelineStateBuilder::caps() const {
return fGpu->caps();
}
SkSL::Compiler* GrVkPipelineStateBuilder::shaderCompiler() const {
return fGpu->shaderCompiler();
}
void GrVkPipelineStateBuilder::finalizeFragmentOutputColor(GrShaderVar& outputColor) {
outputColor.addLayoutQualifier("location = 0, index = 0");
}

View File

@ -40,6 +40,8 @@ public:
GrVkGpu* gpu() const { return fGpu; }
SkSL::Compiler* shaderCompiler() const override;
void finalizeFragmentOutputColor(GrShaderVar& outputColor) override;
void finalizeFragmentSecondaryColor(GrShaderVar& outputColor) override;