diff options
author | 2018-06-08 10:49:00 -0400 | |
---|---|---|
committer | 2018-06-08 19:43:47 +0000 | |
commit | 1471df99f0c7b5d9df43e7462d68a6635c3c59be (patch) | |
tree | 5da4a18207b47907ba3d538c38a9d8ae2dfff9ef /src/gpu/vk/GrVkPipelineState.cpp | |
parent | d0d409d3ebd083b4f5263949e404c1700c615d3b (diff) |
Remove include of GrGLProgramBuilder.h from GrGLProgram.h and GrVkPipelineState.h
Make GrGLProgram and GrCkPipelineState cons. public and remove builder friendship.
Neither GrGLProgram nor GrVkPipelineState need to know their Desc so remove it.
Move the VK desc subclass defn. to GrVkPipelineStateBuilder since it needs it while
GrVkPipelineState does not.
Some IWYU improvements.
Move declaration of the built-in uniform struct to GrGLSLUniformHandler.h from GrGLSLProgramBuilder.h.
Change-Id: Ib46817408a83a79a0f718ba2bc19411410d9065a
Reviewed-on: https://skia-review.googlesource.com/133060
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/vk/GrVkPipelineState.cpp')
-rw-r--r-- | src/gpu/vk/GrVkPipelineState.cpp | 55 |
1 files changed, 5 insertions, 50 deletions
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp index f49e636161..993f57d9e4 100644 --- a/src/gpu/vk/GrVkPipelineState.cpp +++ b/src/gpu/vk/GrVkPipelineState.cpp @@ -6,10 +6,10 @@ */ #include "GrVkPipelineState.h" - #include "GrContext.h" #include "GrContextPriv.h" #include "GrPipeline.h" +#include "GrRenderTarget.h" #include "GrTexturePriv.h" #include "GrVkBufferView.h" #include "GrVkCommandBuffer.h" @@ -19,23 +19,22 @@ #include "GrVkImageView.h" #include "GrVkMemory.h" #include "GrVkPipeline.h" -#include "GrVkRenderTarget.h" #include "GrVkSampler.h" #include "GrVkTexelBuffer.h" #include "GrVkTexture.h" #include "GrVkUniformBuffer.h" +#include "SkMipMap.h" #include "glsl/GrGLSLFragmentProcessor.h" #include "glsl/GrGLSLGeometryProcessor.h" #include "glsl/GrGLSLXferProcessor.h" -#include "SkMipMap.h" -GrVkPipelineState::GrVkPipelineState(GrVkGpu* gpu, - const GrVkPipelineState::Desc& desc, +GrVkPipelineState::GrVkPipelineState( + GrVkGpu* gpu, GrVkPipeline* pipeline, VkPipelineLayout layout, const GrVkDescriptorSetManager::Handle& samplerDSHandle, const GrVkDescriptorSetManager::Handle& texelBufferDSHandle, - const BuiltinUniformHandles& builtinUniformHandles, + const GrGLSLBuiltinUniformHandles& builtinUniformHandles, const UniformInfoArray& uniforms, uint32_t geometryUniformSize, uint32_t fragmentUniformSize, @@ -57,7 +56,6 @@ GrVkPipelineState::GrVkPipelineState(GrVkGpu* gpu, , fXferProcessor(std::move(xferProcessor)) , fFragmentProcessors(std::move(fragmentProcessors)) , fFragmentProcessorCnt(fragmentProcessorCnt) - , fDesc(desc) , fDataManager(uniforms, geometryUniformSize, fragmentUniformSize) { fSamplers.setReserve(numSamplers); fTextureViews.setReserve(numSamplers); @@ -543,46 +541,3 @@ void GrVkPipelineState::addUniformResources(GrVkCommandBuffer& commandBuffer) { commandBuffer.addResource(fTexelBuffers[i]); } } - -//////////////////////////////////////////////////////////////////////////////// - -uint32_t get_blend_info_key(const GrPipeline& pipeline) { - GrXferProcessor::BlendInfo blendInfo; - pipeline.getXferProcessor().getBlendInfo(&blendInfo); - - static const uint32_t kBlendWriteShift = 1; - static const uint32_t kBlendCoeffShift = 5; - GR_STATIC_ASSERT(kLast_GrBlendCoeff < (1 << kBlendCoeffShift)); - GR_STATIC_ASSERT(kFirstAdvancedGrBlendEquation - 1 < 4); - - uint32_t key = blendInfo.fWriteColor; - key |= (blendInfo.fSrcBlend << kBlendWriteShift); - key |= (blendInfo.fDstBlend << (kBlendWriteShift + kBlendCoeffShift)); - key |= (blendInfo.fEquation << (kBlendWriteShift + 2 * kBlendCoeffShift)); - - return key; -} - -bool GrVkPipelineState::Desc::Build(Desc* desc, - const GrPrimitiveProcessor& primProc, - const GrPipeline& pipeline, - const GrStencilSettings& stencil, - GrPrimitiveType primitiveType, - const GrShaderCaps& caps) { - if (!INHERITED::Build(desc, primProc, primitiveType == GrPrimitiveType::kPoints, pipeline, - caps)) { - return false; - } - - GrProcessorKeyBuilder b(&desc->key()); - GrVkRenderTarget* vkRT = (GrVkRenderTarget*)pipeline.renderTarget(); - vkRT->simpleRenderPass()->genKey(&b); - - stencil.genKey(&b); - - b.add32(get_blend_info_key(pipeline)); - - b.add32((uint32_t)primitiveType); - - return true; -} |