aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrDriverBugWorkarounds.cpp
diff options
context:
space:
mode:
authorGravatar Adrienne Walker <enne@chromium.org>2018-04-18 13:46:25 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-20 17:50:45 +0000
commit1df7cd871224adeca1d0491c061a16fe4e6d28bc (patch)
tree234d3f3b6fe200bbd961fc797a1c6a02ff08747b /src/gpu/GrDriverBugWorkarounds.cpp
parent2748391716b04f700a689ac99bc13fd67d812418 (diff)
Reland "Add stub gpu workaround generators"
This is a reland of 94d25b970b97c68ddd0b4ceb71f2233aac05e6b5 Original change's description: > Add stub gpu workaround generators > > Like https://chromium-review.googlesource.com/c/chromium/src/+/1005362, > this patch adds a way for Chrome and Skia to share a set of driver > workaround names so that they can be turned on by Chrome (or Skia) as > needed. > > To avoid weird cross-repository dependencies, the generator script is > duplicated in Skia. > > This patch just adds a few dummy workaround names to make sure the build > process is working. The followup to this is to add workaround init > to GrContext/GrContextOptions and to start implementing individual > workarounds. > > Implementing these workarounds is to support Chrome's "out of process > raster" which will use Ganesh without a command buffer, and so will not > have the workarounds that the command buffer provides. > > Bug: chromium:829614 > Change-Id: I40745a777a95805995991fedb81657ae418b52d9 > Reviewed-on: https://skia-review.googlesource.com/120608 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Adrienne Walker <enne@chromium.org> Bug: chromium:829614 Change-Id: Idb3309ffa894f7585ee493388b56565e9d4a3101 Reviewed-on: https://skia-review.googlesource.com/122800 Auto-Submit: Adrienne Walker <enne@chromium.org> Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/GrDriverBugWorkarounds.cpp')
-rw-r--r--src/gpu/GrDriverBugWorkarounds.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp
new file mode 100644
index 0000000000..5ed9d8d2ef
--- /dev/null
+++ b/src/gpu/GrDriverBugWorkarounds.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2018 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "GrDriverBugWorkarounds.h"
+
+#include "SkTypes.h"
+
+GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default;
+
+GrDriverBugWorkarounds::GrDriverBugWorkarounds(
+ const std::vector<int>& enabled_driver_bug_workarounds) {
+ for (auto id : enabled_driver_bug_workarounds) {
+ switch (id) {
+#define GPU_OP(type, name) \
+ case GrDriverBugWorkaroundType::type: \
+ name = true; \
+ break;
+
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+#undef GPU_OP
+ default:
+ SK_ABORT("Not implemented");
+ break;
+ }
+ }
+}
+
+GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;