aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2018-05-10 17:25:52 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-10 17:30:00 +0000
commit024615e9752d93c842ad3cad597fd65382ddb678 (patch)
tree0a8f4fdc93c5b18ec3860770add7d33bdb66d9b4 /src
parent636d8033229e1a70944e77470b9ed593bedf78e5 (diff)
Revert "Add driver bug workarounds to GrCaps"
This reverts commit 328490c6a1625ce51d0e81688e0c85c79c400d86. Reason for revert: Breaking compiles inside chrome Original change's description: > Add driver bug workarounds to GrCaps > > This moves GrDriverBugWorkarounds to include so that it can be included > by GrCaps. This also makes GrContextOptions a nearly empty class in > the case of !SK_SUPPORT_GPU so that non-gpu builds don't need to build > in GrDriverBugWorkarounds.cpp. > > Bug: chromium: 829614 > Change-Id: Iedf73677fd09e9a487cfe618a696fd4b25c8703d > Reviewed-on: https://skia-review.googlesource.com/126581 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Adrienne Walker <enne@chromium.org> TBR=bsalomon@google.com,enne@chromium.org Change-Id: I3b35bf65a7b78d2fe16d7c2bcd0e4b3f9bb7fdff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium: 829614 Reviewed-on: https://skia-review.googlesource.com/127303 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/gpu/GrCaps.cpp4
-rw-r--r--src/gpu/GrDriverBugWorkarounds.cpp9
-rw-r--r--src/gpu/GrDriverBugWorkarounds.h44
-rw-r--r--src/gpu/GrDriverBugWorkaroundsAutogen.h13
4 files changed, 57 insertions, 13 deletions
diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp
index 42d3d4c51a..0507a3fdfb 100644
--- a/src/gpu/GrCaps.cpp
+++ b/src/gpu/GrCaps.cpp
@@ -94,8 +94,6 @@ GrCaps::GrCaps(const GrContextOptions& options) {
fAvoidStencilBuffers = false;
fPreferVRAMUseOverFlushes = true;
-
- fDriverBugWorkarounds = options.fDriverBugWorkarounds;
}
void GrCaps::applyOptionsOverrides(const GrContextOptions& options) {
@@ -125,8 +123,6 @@ void GrCaps::applyOptionsOverrides(const GrContextOptions& options) {
fMaxWindowRectangles = GrWindowRectangles::kMaxWindows;
}
fAvoidStencilBuffers = options.fAvoidStencilBuffers;
-
- fDriverBugWorkarounds.applyOverrides(options.fDriverBugWorkarounds);
}
static SkString map_flags_to_string(uint32_t flags) {
diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp
index a1f27a3205..5ed9d8d2ef 100644
--- a/src/gpu/GrDriverBugWorkarounds.cpp
+++ b/src/gpu/GrDriverBugWorkarounds.cpp
@@ -29,13 +29,4 @@ GrDriverBugWorkarounds::GrDriverBugWorkarounds(
}
}
-void GrDriverBugWorkarounds::applyOverrides(
- const GrDriverBugWorkarounds& workarounds) {
-#define GPU_OP(type, name) \
- name |= workarounds.name;
-
- GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
-#undef GPU_OP
-}
-
GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
diff --git a/src/gpu/GrDriverBugWorkarounds.h b/src/gpu/GrDriverBugWorkarounds.h
new file mode 100644
index 0000000000..bca5dc99f1
--- /dev/null
+++ b/src/gpu/GrDriverBugWorkarounds.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2018 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrDriverBugWorkarounds_DEFINED
+#define GrDriverBugWorkarounds_DEFINED
+
+// External embedders of Skia can override this to use their own list
+// of workaround names.
+#ifdef SK_GPU_WORKAROUNDS_HEADER
+#include SK_GPU_WORKAROUNDS_HEADER
+#else
+// To regenerate this file, set gn arg "skia_generate_workarounds = true".
+// This is not rebuilt by default to avoid embedders having to have extra
+// build steps.
+#include "GrDriverBugWorkaroundsAutogen.h"
+#endif
+
+#include <stdint.h>
+#include <vector>
+
+enum GrDriverBugWorkaroundType {
+#define GPU_OP(type, name) type,
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+#undef GPU_OP
+ NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
+};
+
+class GrDriverBugWorkarounds {
+ public:
+ GrDriverBugWorkarounds();
+ explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
+
+ ~GrDriverBugWorkarounds();
+
+#define GPU_OP(type, name) bool name = false;
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+#undef GPU_OP
+};
+
+#endif
diff --git a/src/gpu/GrDriverBugWorkaroundsAutogen.h b/src/gpu/GrDriverBugWorkaroundsAutogen.h
new file mode 100644
index 0000000000..87aa46172e
--- /dev/null
+++ b/src/gpu/GrDriverBugWorkaroundsAutogen.h
@@ -0,0 +1,13 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file is auto-generated from build_workaround_header.py
+// 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) \
+// The End