ab7181daad
This is a reland of 328490c6a1
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>
Bug: chromium: 829614
Change-Id: I7b539f99caa3032c8c595dd5068dc3b179747ccd
Reviewed-on: https://skia-review.googlesource.com/127304
Commit-Queue: Adrienne Walker <enne@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
52 lines
1.3 KiB
C++
52 lines
1.3 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 "GrDriverBugWorkaroundsAutogen.h"
|
|
#endif
|
|
|
|
#include "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();
|
|
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
|