diff options
author | egdaniel <egdaniel@google.com> | 2016-03-30 12:06:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-30 12:06:48 -0700 |
commit | d632bb4dfc184d7c523bb436940c182ed42551ea (patch) | |
tree | 75124748c5f9207816725f601c1326a8b788561b /src | |
parent | 128245c61d56abcacdb152ad08038c5d9c919df0 (diff) |
Enable dual source blending for Vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837213003
Review URL: https://codereview.chromium.org/1837213003
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/vk/GrVkCaps.cpp | 9 | ||||
-rw-r--r-- | src/gpu/vk/GrVkPipelineStateBuilder.cpp | 4 | ||||
-rw-r--r-- | src/gpu/vk/GrVkPipelineStateBuilder.h | 1 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp index 8f46408706..88ff8ee3e0 100644 --- a/src/gpu/vk/GrVkCaps.cpp +++ b/src/gpu/vk/GrVkCaps.cpp @@ -62,7 +62,9 @@ void GrVkCaps::init(const GrContextOptions& contextOptions, const GrVkInterface* this->initStencilFormats(vkInterface, physDev); if (SkToBool(extensionFlags & kNV_glsl_shader_GrVkExtensionFlag)) { - fCanUseGLSLForShaderModule = true; + // Currently disabling this feature since it does not play well with validation layers which + // expect a SPIR-V shader + // fCanUseGLSLForShaderModule = true; } this->applyOptionsOverrides(contextOptions); @@ -147,10 +149,9 @@ void GrVkCaps::initGLSLCaps(const VkPhysicalDeviceProperties& properties, glslCaps->fShaderDerivativeSupport = true; glslCaps->fGeometryShaderSupport = SkToBool(featureFlags & kGeometryShader_GrVkFeatureFlag); -#if 0 - // For now disabling dual source blending till we get it hooked up in the rest of system + glslCaps->fDualSourceBlendingSupport = SkToBool(featureFlags & kDualSrcBlend_GrVkFeatureFlag); -#endif + glslCaps->fIntegerSupport = true; glslCaps->fMaxVertexSamplers = diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.cpp b/src/gpu/vk/GrVkPipelineStateBuilder.cpp index 871e94e1d3..00e81d4b9c 100644 --- a/src/gpu/vk/GrVkPipelineStateBuilder.cpp +++ b/src/gpu/vk/GrVkPipelineStateBuilder.cpp @@ -53,6 +53,10 @@ void GrVkPipelineStateBuilder::finalizeFragmentOutputColor(GrGLSLShaderVar& outp outputColor.setLayoutQualifier("location = 0"); } +void GrVkPipelineStateBuilder::finalizeFragmentSecondaryColor(GrGLSLShaderVar& outputColor) { + outputColor.setLayoutQualifier("location = 1"); +} + VkShaderStageFlags visibility_to_vk_stage_flags(uint32_t visibility) { VkShaderStageFlags flags = 0; diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.h b/src/gpu/vk/GrVkPipelineStateBuilder.h index 5120e25a9a..5a4cfb8226 100644 --- a/src/gpu/vk/GrVkPipelineStateBuilder.h +++ b/src/gpu/vk/GrVkPipelineStateBuilder.h @@ -43,6 +43,7 @@ public: GrVkGpu* gpu() const { return fGpu; } void finalizeFragmentOutputColor(GrGLSLShaderVar& outputColor) override; + void finalizeFragmentSecondaryColor(GrGLSLShaderVar& outputColor) override; private: GrVkPipelineStateBuilder(GrVkGpu*, |