aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkPipelineStateBuilder.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-01-19 16:58:02 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-19 22:36:26 +0000
commitde4d301881e7fd084f1f0b359ec6f9b2bf8bd4c5 (patch)
treeedbe55dab521fec2922e3826b4e3d26150254411 /src/gpu/vk/GrVkPipelineStateBuilder.cpp
parent5bee0b6de6b3ad1166d067e6b5046b48b8240a29 (diff)
Replaced all calls to fragmentPosition() with sk_FragCoord
BUG=skia: Change-Id: I179576e148ea6caf6e1c40f0a216421898bcb35d Reviewed-on: https://skia-review.googlesource.com/5941 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/vk/GrVkPipelineStateBuilder.cpp')
-rw-r--r--src/gpu/vk/GrVkPipelineStateBuilder.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.cpp b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
index 4125938bae..f7a61730a5 100644
--- a/src/gpu/vk/GrVkPipelineStateBuilder.cpp
+++ b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
@@ -19,7 +19,7 @@ GrVkPipelineState* GrVkPipelineStateBuilder::CreatePipelineState(
const GrStencilSettings& stencil,
const GrPrimitiveProcessor& primProc,
GrPrimitiveType primitiveType,
- const GrVkPipelineState::Desc& desc,
+ GrVkPipelineState::Desc* desc,
const GrVkRenderPass& renderPass) {
// create a builder. This will be handed off to effects so they can use it to add
// uniforms, varyings, textures, etc
@@ -39,7 +39,7 @@ GrVkPipelineState* GrVkPipelineStateBuilder::CreatePipelineState(
GrVkPipelineStateBuilder::GrVkPipelineStateBuilder(GrVkGpu* gpu,
const GrPipeline& pipeline,
const GrPrimitiveProcessor& primProc,
- const GrProgramDesc& desc)
+ GrProgramDesc* desc)
: INHERITED(pipeline, primProc, desc)
, fGpu(gpu)
, fVaryingHandler(this)
@@ -62,7 +62,8 @@ bool GrVkPipelineStateBuilder::createVkShaderModule(VkShaderStageFlagBits stage,
const GrGLSLShaderBuilder& builder,
VkShaderModule* shaderModule,
VkPipelineShaderStageCreateInfo* stageInfo,
- const SkSL::Program::Settings& settings) {
+ const SkSL::Program::Settings& settings,
+ GrVkPipelineState::Desc* desc) {
SkString shaderString;
for (int i = 0; i < builder.fCompilerStrings.count(); ++i) {
if (builder.fCompilerStrings[i]) {
@@ -80,13 +81,19 @@ bool GrVkPipelineStateBuilder::createVkShaderModule(VkShaderStageFlagBits stage,
if (inputs.fRTHeight) {
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
}
+ if (!inputs.fFlipY) {
+ // the program doesn't care about the surface origin, set the key to zero to indicate that
+ // it doesn't matter
+ desc->setSurfaceOriginKey(0);
+ desc->finalize();
+ }
return result;
}
GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& stencil,
GrPrimitiveType primitiveType,
const GrVkRenderPass& renderPass,
- const GrVkPipelineState::Desc& desc) {
+ GrVkPipelineState::Desc* desc) {
VkDescriptorSetLayout dsLayout[2];
VkPipelineLayout pipelineLayout;
VkShaderModule vertShaderModule;
@@ -133,7 +140,8 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
fVS,
&vertShaderModule,
&shaderStageInfo[0],
- settings));
+ settings,
+ desc));
// TODO: geometry shader support.
SkASSERT(!this->primitiveProcessor().willUseGeoShader());
@@ -142,7 +150,8 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
fFS,
&fragShaderModule,
&shaderStageInfo[1],
- settings));
+ settings,
+ desc));
GrVkPipeline* pipeline = resourceProvider.createPipeline(fPipeline,
stencil,
@@ -165,7 +174,7 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
}
return new GrVkPipelineState(fGpu,
- desc,
+ *desc,
pipeline,
pipelineLayout,
samplerDSHandle,