• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "include/gpu/GrDriverBugWorkarounds.h"
9 
10 #include "include/core/SkTypes.h"
11 
12 GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default;
13 
GrDriverBugWorkarounds(const std::vector<int> & enabled_driver_bug_workarounds)14 GrDriverBugWorkarounds::GrDriverBugWorkarounds(
15         const std::vector<int>& enabled_driver_bug_workarounds) {
16     for (auto id : enabled_driver_bug_workarounds) {
17         switch (id) {
18 #define GPU_OP(type, name)                        \
19             case GrDriverBugWorkaroundType::type: \
20                 name = true;                      \
21                 break;
22 
23             GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
24 #undef GPU_OP
25             default:
26                 SK_ABORT("Not implemented");
27                 break;
28         }
29     }
30 }
31 
applyOverrides(const GrDriverBugWorkarounds & workarounds)32 void GrDriverBugWorkarounds::applyOverrides(
33         const GrDriverBugWorkarounds& workarounds) {
34 #define GPU_OP(type, name) \
35     name |= workarounds.name;
36 
37     GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
38 #undef GPU_OP
39 }
40 
41 GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
42