From de4d301881e7fd084f1f0b359ec6f9b2bf8bd4c5 Mon Sep 17 00:00:00 2001 From: Ethan Nicholas Date: Thu, 19 Jan 2017 16:58:02 -0500 Subject: 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 Reviewed-by: Brian Salomon --- src/gpu/vk/GrVkPipelineStateBuilder.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/gpu/vk/GrVkPipelineStateBuilder.cpp') 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, -- cgit v1.2.3