diff options
author | Leon Scroggins <scroggo@google.com> | 2018-04-19 12:25:03 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-19 12:25:14 +0000 |
commit | 2ae45ae83a5778910a86afdbda5329a92bfef066 (patch) | |
tree | 88ea32bf11b57c916200012e519e427812f865e4 | |
parent | dbc59ba23b5cb70cdf77cfdb6cbe372223a17832 (diff) |
Revert "Add stub gpu workaround generators"
This reverts commit 94d25b970b97c68ddd0b4ceb71f2233aac05e6b5.
Reason for revert: Breaking the Chromium roll
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>
TBR=bsalomon@google.com,enne@chromium.org
Change-Id: Ie0b69d7d028dabca1fd70813b6920386c8838247
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:829614
Reviewed-on: https://skia-review.googlesource.com/122240
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
-rw-r--r-- | BUILD.gn | 32 | ||||
-rw-r--r-- | gn/gpu.gni | 2 | ||||
-rw-r--r-- | src/gpu/GrDriverBugWorkarounds.cpp | 32 | ||||
-rw-r--r-- | src/gpu/GrDriverBugWorkarounds.h | 44 | ||||
-rw-r--r-- | src/gpu/GrDriverBugWorkaroundsAutogen.h | 14 | ||||
-rw-r--r-- | src/gpu/gpu_workaround_list.txt | 2 | ||||
-rwxr-xr-x | tools/build_workaround_header.py | 69 |
7 files changed, 1 insertions, 194 deletions
@@ -46,7 +46,6 @@ declare_args() { skia_vulkan_sdk = getenv("VULKAN_SDK") skia_qt_path = getenv("QT_PATH") skia_compile_processors = false - skia_generate_workarounds = false skia_lex = false skia_skqp_enable_driver_correctness_workarounds = false @@ -585,9 +584,6 @@ optional("gpu") { ":compile_processors", ":run_sksllex", ] - if (skia_generate_workarounds) { - deps += [ ":workaround_list" ] - } public_defines = [] sources = skia_gpu_sources + skia_sksl_sources + skia_gpu_processor_outputs @@ -693,7 +689,7 @@ optional("pdf") { "//third_party/zlib", ] if (skia_use_libjpeg_turbo) { - deps += [ ":jpeg" ] + deps += [ ":jpeg"] } sources = skia_pdf_sources sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ] @@ -792,32 +788,6 @@ optional("xml") { ] } -if (skia_enable_gpu && skia_generate_workarounds) { - action("workaround_list") { - script = "tools/build_workaround_header.py" - - inputs = [ - "src/gpu/gpu_workaround_list.txt", - ] - - # see comments in skia_compile_processors about out dir path shenanigans. - output_file = - rebase_path("src/gpu/GrDriverBugWorkaroundsAutogen.h", root_out_dir) - - outputs = [ - "$root_out_dir/$output_file", - ] - args = [ - "--output-file", - "$output_file", - ] - - foreach(file, inputs) { - args += [ rebase_path(file, root_build_dir) ] - } - } -} - component("skia") { public_configs = [ ":skia_public" ] configs += skia_library_configs diff --git a/gn/gpu.gni b/gn/gpu.gni index 31035ff32d..913270dd43 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -86,8 +86,6 @@ skia_gpu_sources = [ "$_src/gpu/GrDrawOpAtlas.h", "$_src/gpu/GrDrawOpTest.cpp", "$_src/gpu/GrDrawOpTest.h", - "$_src/gpu/GrDriverBugWorkarounds.cpp", - "$_src/gpu/GrDriverBugWorkarounds.h", "$_src/gpu/GrFixedClip.cpp", "$_src/gpu/GrFixedClip.h", "$_src/gpu/GrFragmentProcessor.cpp", diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp deleted file mode 100644 index 5ed9d8d2ef..0000000000 --- a/src/gpu/GrDriverBugWorkarounds.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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; diff --git a/src/gpu/GrDriverBugWorkarounds.h b/src/gpu/GrDriverBugWorkarounds.h deleted file mode 100644 index bca5dc99f1..0000000000 --- a/src/gpu/GrDriverBugWorkarounds.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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 deleted file mode 100644 index 4ff99bb98c..0000000000 --- a/src/gpu/GrDriverBugWorkaroundsAutogen.h +++ /dev/null @@ -1,14 +0,0 @@ -// 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 -// ../../tools/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 diff --git a/src/gpu/gpu_workaround_list.txt b/src/gpu/gpu_workaround_list.txt deleted file mode 100644 index 89a7231e9c..0000000000 --- a/src/gpu/gpu_workaround_list.txt +++ /dev/null @@ -1,2 +0,0 @@ -avoid_stencil_buffers -clear_to_zero_or_one_broken diff --git a/tools/build_workaround_header.py b/tools/build_workaround_header.py deleted file mode 100755 index b8558326ad..0000000000 --- a/tools/build_workaround_header.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 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. -"""code generator for gpu workaround definitions""" - -import os -import os.path -import sys -from optparse import OptionParser - -_LICENSE = """// 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. - -""" - -_DO_NOT_EDIT_WARNING = ("// This file is auto-generated from\n" + - "// " + __file__ + "\n" + - "// DO NOT EDIT!\n\n") - -def merge_files_into_workarounds(files): - workarounds = set() - for filename in files: - with open(filename, 'r') as f: - workarounds.update([workaround.strip() for workaround in f]) - return sorted(list(workarounds)) - - -def write_header(filename, workarounds): - max_workaround_len = len(max(workarounds, key=len)) - - with open(filename, 'w') as f: - f.write(_LICENSE) - f.write(_DO_NOT_EDIT_WARNING) - - indent = ' ' - macro = 'GPU_OP' - - # length of max string passed to write + 1 - max_len = len(indent) + len(macro) + 1 + max_workaround_len + 1 + 1 - write = lambda line: f.write(line + ' ' * (max_len - len(line)) + '\\\n') - - write('#define GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)') - for w in workarounds: - write(indent + macro + '(' + w.upper() + ',') - write(indent + ' ' * (len(macro) + 1) + w + ')') - - # one extra line to consume the the last \ - f.write('// The End\n') - - -def main(argv): - usage = "usage: %prog [options] file1 file2 file3 etc" - parser = OptionParser(usage=usage) - parser.add_option( - "--output-file", - dest="output_file", - default="gpu_driver_bug_workaround_autogen.h", - help="the name of the header file to write") - - (options, _) = parser.parse_args(args=argv) - - workarounds = merge_files_into_workarounds(parser.largs) - write_header(options.output_file, workarounds) - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) |