diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-01-19 16:58:02 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-19 22:36:26 +0000 |
commit | de4d301881e7fd084f1f0b359ec6f9b2bf8bd4c5 (patch) | |
tree | edbe55dab521fec2922e3826b4e3d26150254411 /src/gpu/vk/GrVkPipelineStateBuilder.cpp | |
parent | 5bee0b6de6b3ad1166d067e6b5046b48b8240a29 (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.cpp | 23 |
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, |