597c33a8c0
Change-Id: Idcb37644c6c657ce66390ae12d9a55d68abab6cf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317642 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
/*
|
|
* 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 "include/gpu/GrDriverBugWorkaroundsAutogen.h"
|
|
#endif
|
|
|
|
#include "include/core/SkTypes.h"
|
|
|
|
#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 SK_API GrDriverBugWorkarounds {
|
|
public:
|
|
GrDriverBugWorkarounds();
|
|
GrDriverBugWorkarounds(const GrDriverBugWorkarounds&) = default;
|
|
explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
|
|
|
|
GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&) = default;
|
|
|
|
// Turn on any workarounds listed in |workarounds| (but don't turn any off).
|
|
void applyOverrides(const GrDriverBugWorkarounds& workarounds);
|
|
|
|
~GrDriverBugWorkarounds();
|
|
|
|
#define GPU_OP(type, name) bool name = false;
|
|
GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
|
|
#undef GPU_OP
|
|
};
|
|
|
|
#endif
|