diff options
author | Adrienne Walker <enne@chromium.org> | 2018-05-08 10:26:44 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-10 16:01:15 +0000 |
commit | f31fece6581a46b40403fc78c83c7eebe50816ba (patch) | |
tree | 6fe81842db38d23a30f17f06d4c205699388719d | |
parent | 27d5a3661ba76852c0c8b7935f47e88d7edd1cda (diff) |
Driver bug workaround: disable_blend_equation_advanced
Bug: chromium: 829614
Change-Id: If8eaec6d22412ec36aad8a143f84080be05f2926
Reviewed-on: https://skia-review.googlesource.com/126748
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Adrienne Walker <enne@chromium.org>
-rw-r--r-- | include/gpu/GrCaps.h | 4 | ||||
-rw-r--r-- | include/gpu/GrDriverBugWorkaroundsAutogen.h | 10 | ||||
-rw-r--r-- | src/gpu/gl/GrGLCaps.cpp | 5 | ||||
-rw-r--r-- | src/gpu/gpu_workaround_list.txt | 1 |
4 files changed, 14 insertions, 6 deletions
diff --git a/include/gpu/GrCaps.h b/include/gpu/GrCaps.h index 7d77bdac92..82c8f41fd6 100644 --- a/include/gpu/GrCaps.h +++ b/include/gpu/GrCaps.h @@ -328,6 +328,8 @@ protected: int fMaxWindowRectangles; int fMaxClipAnalyticFPs; + GrDriverBugWorkarounds fDriverBugWorkarounds; + private: virtual void onApplyOptionsOverrides(const GrContextOptions&) {} virtual void onDumpJSON(SkJSONWriter*) const {} @@ -341,8 +343,6 @@ private: bool fSuppressPrints : 1; bool fWireframeMode : 1; - GrDriverBugWorkarounds fDriverBugWorkarounds; - typedef SkRefCnt INHERITED; }; diff --git a/include/gpu/GrDriverBugWorkaroundsAutogen.h b/include/gpu/GrDriverBugWorkaroundsAutogen.h index 87aa46172e..a41237f675 100644 --- a/include/gpu/GrDriverBugWorkaroundsAutogen.h +++ b/include/gpu/GrDriverBugWorkaroundsAutogen.h @@ -6,8 +6,10 @@ // DO NOT EDIT! #define GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)\ - GPU_OP(AVOID_STENCIL_BUFFERS, \ - avoid_stencil_buffers) \ - GPU_OP(CLEAR_TO_ZERO_OR_ONE_BROKEN, \ - clear_to_zero_or_one_broken) \ + GPU_OP(AVOID_STENCIL_BUFFERS, \ + avoid_stencil_buffers) \ + GPU_OP(CLEAR_TO_ZERO_OR_ONE_BROKEN, \ + clear_to_zero_or_one_broken) \ + GPU_OP(DISABLE_BLEND_EQUATION_ADVANCED, \ + disable_blend_equation_advanced) \ // The End diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 4b77fc0421..43f285e941 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -2624,6 +2624,11 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kNotSupported_AdvBlendEqInteraction; } + if (fDriverBugWorkarounds.disable_blend_equation_advanced) { + fBlendEquationSupport = kBasic_BlendEquationSupport; + shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kNotSupported_AdvBlendEqInteraction; + } + if (this->advancedBlendEquationSupport()) { if (kNVIDIA_GrGLDriver == ctxInfo.driver() && ctxInfo.driverVersion() < GR_GL_DRIVER_VER(355, 00, 0)) { diff --git a/src/gpu/gpu_workaround_list.txt b/src/gpu/gpu_workaround_list.txt index 89a7231e9c..17b5beb104 100644 --- a/src/gpu/gpu_workaround_list.txt +++ b/src/gpu/gpu_workaround_list.txt @@ -1,2 +1,3 @@ avoid_stencil_buffers +disable_blend_equation_advanced clear_to_zero_or_one_broken |