aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Adrienne Walker <enne@chromium.org>2018-05-08 10:26:44 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-10 16:01:15 +0000
commitf31fece6581a46b40403fc78c83c7eebe50816ba (patch)
tree6fe81842db38d23a30f17f06d4c205699388719d
parent27d5a3661ba76852c0c8b7935f47e88d7edd1cda (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.h4
-rw-r--r--include/gpu/GrDriverBugWorkaroundsAutogen.h10
-rw-r--r--src/gpu/gl/GrGLCaps.cpp5
-rw-r--r--src/gpu/gpu_workaround_list.txt1
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