Revert "[fuzzer] Remove GL from (now-Vulkan) build"
This reverts commit 805acda3f3aa3d9fc85c84bac5aa52c472ec3bb1.
Reason for revert: Looks to be breaking the Android roll. See https://android-build.googleplex.com/builds/pending/P29733268/aosp_bramble-userdebug/latest/view/logs/build_error.log
Original change's description:
> [fuzzer] Remove GL from (now-Vulkan) build
>
> The fuzzer runs against the Vulkan version of Swiftshader.
> There are no libGL.so (etc) on the fuzz runtime, so we
> want to avoid linking against those.
>
> The GL code that is #ifdef'd out is still necessary to
> avoid timeouts on TSAN with our NVIDIA jobs.
> https://skia-review.googlesource.com/c/skia/+/502638
>
> Procedure for testing this locally (and iterating):
> 1. In oss-fuzz checkout, run
> `python infra/helper.py shell skia`
> to pull up local interactive version of Docker
> fuzzer build image.
> 2. Run `compile` in fuzzer shell. Stop after
> the swiftshader compiles and is copied into /out
> with Ctrl + C.
> 3. Comment out the swiftshader compilation part [1]
> (no need to re-do this when modifying Skia code).
> `apt-get install nano -y`
> `nano ../build.sh`
> 4. Make change to Skia repo using normal methods.
> 5. Run the following in the Skia repo
> `git diff origin main > foo.patch`
> Copy the patch into the Docker shell using Ctrl+C
> and nano.
> 6. Apply the patch inside the Docker shell
> `git apply foo.patch`
> and re-compile (which should skip right to
> building the fuzzer libs)
> `compile`
> 7. Repeat 4-7 or make small changes directly in
> the Docker shell via nano.
> 8. When compilation and link succeeds, run
> `ldd /out/api_mock_gpu_canvas`
> to verify GL and friends were not dynamically linked.
>
> [1] https://github.com/google/oss-fuzz/pull/7214/files#diff-76f13875e33875cdd372f1f0933206be599cd87952f1bd1eaa57ca928ee9e3e1R49-R53
>
> Change-Id: Idf569820527c1304b0e5a68fd36295be89dfa2a0
> Bug: oss-fuzz:44132
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503016
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: oss-fuzz:44132
Change-Id: I3832417c60ff425572717d37dc9609419922b18e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503351
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 09dda8a..b9004ec 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1803,7 +1803,9 @@
}
}
- if (skia_use_gl && target_cpu != "wasm") {
+ # We need the GLTestContext on Vulkan-only builds for the persistent GL context workaround in
+ # in GrContextFactory. This only matters for OSes that can run Vulkan.
+ if ((skia_use_gl || skia_use_vulkan) && target_cpu != "wasm") {
if (is_android || skia_use_egl) {
sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
libs += [ "EGL" ]
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 9677330..c2bef2e 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -175,10 +175,8 @@
using namespace DM;
using sk_gpu_test::GrContextFactory;
-using sk_gpu_test::ContextInfo;
-#if SK_GL
using sk_gpu_test::GLTestContext;
-#endif
+using sk_gpu_test::ContextInfo;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp
index 7f8d303..e8ea03b 100644
--- a/dm/DMGpuTestProcs.cpp
+++ b/dm/DMGpuTestProcs.cpp
@@ -15,11 +15,8 @@
#endif
using sk_gpu_test::GrContextFactory;
-using sk_gpu_test::ContextInfo;
-
-#ifdef SK_GL
using sk_gpu_test::GLTestContext;
-#endif
+using sk_gpu_test::ContextInfo;
namespace skiatest {
diff --git a/infra/bots/recipe_modules/build/default.py b/infra/bots/recipe_modules/build/default.py
index ed29b33..edfaca4 100644
--- a/infra/bots/recipe_modules/build/default.py
+++ b/infra/bots/recipe_modules/build/default.py
@@ -48,6 +48,8 @@
san = None
if 'MSAN' in extra_tokens:
san = ('msan','memory')
+ elif 'TSAN' in extra_tokens:
+ san = ('tsan','thread')
if san:
short,full = san
@@ -280,12 +282,7 @@
if 'Vulkan' in extra_tokens and not 'Android' in extra_tokens:
args['skia_use_vulkan'] = 'true'
args['skia_enable_vulkan_debug_layers'] = 'true'
- # When running TSAN with Vulkan on NVidia, we experienced some timeouts. We found
- # a workaround (in GrContextFactory) that requires GL (in addition to Vulkan).
- if 'TSAN' in extra_tokens:
- args['skia_use_gl'] = 'true'
- else:
- args['skia_use_gl'] = 'false'
+ args['skia_use_gl'] = 'false'
if 'Direct3D' in extra_tokens:
args['skia_use_direct3d'] = 'true'
args['skia_use_gl'] = 'false'
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN.json
new file mode 100644
index 0000000..1ca4374
--- /dev/null
+++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN.json
@@ -0,0 +1,234 @@
+[
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "name": "Get clang_linux VERSION",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@VERSION@42@@@",
+ "@@@STEP_LOG_END@VERSION@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug/swiftshader_out"
+ ],
+ "infra_step": true,
+ "name": "makedirs swiftshader_out"
+ },
+ {
+ "cmd": [
+ "cmake",
+ "-DSWIFTSHADER_BUILD_TESTS=OFF",
+ "-DSWIFTSHADER_WARNINGS_AS_ERRORS=OFF",
+ "-DREACTOR_ENABLE_MEMORY_SANITIZER_INSTRUMENTATION=OFF",
+ "-DSWIFTSHADER_TSAN=ON",
+ "-DCMAKE_C_FLAGS=-fsanitize=thread -stdlib=libc++ -L[START_DIR]/clang_linux/tsan/lib -lc++abi -I[START_DIR]/clang_linux/tsan/include -I[START_DIR]/clang_linux/tsan/include/c++/v1 -Wno-unused-command-line-argument",
+ "-DCMAKE_CXX_FLAGS=-fsanitize=thread -stdlib=libc++ -L[START_DIR]/clang_linux/tsan/lib -lc++abi -I[START_DIR]/clang_linux/tsan/include -I[START_DIR]/clang_linux/tsan/include/c++/v1 -Wno-unused-command-line-argument",
+ "[START_DIR]/cache/work/skia/third_party/externals/swiftshader",
+ "-GNinja"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug/swiftshader_out",
+ "env": {
+ "CC": "[START_DIR]/clang_linux/bin/clang",
+ "CHROME_HEADLESS": "1",
+ "CXX": "[START_DIR]/clang_linux/bin/clang++",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]:[START_DIR]/cmake_linux/bin",
+ "SWIFTSHADER_MSAN_INSTRUMENTED_LIBCXX_PATH": "/totally/phony/path"
+ },
+ "name": "swiftshader cmake"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug/swiftshader_out",
+ "vk_swiftshader"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug/swiftshader_out",
+ "env": {
+ "CC": "[START_DIR]/clang_linux/bin/clang",
+ "CHROME_HEADLESS": "1",
+ "CXX": "[START_DIR]/clang_linux/bin/clang++",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]:[START_DIR]/cmake_linux/bin",
+ "SWIFTSHADER_MSAN_INSTRUMENTED_LIBCXX_PATH": "/totally/phony/path"
+ },
+ "name": "swiftshader ninja"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "[START_DIR]/cache/work/skia/bin/fetch-gn"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "infra_step": true,
+ "name": "fetch-gn"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/ccache_linux/bin/ccache",
+ "-s"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "CCACHE_COMPILERCHECK": "content",
+ "CCACHE_DIR": "[START_DIR]/cache/ccache",
+ "CCACHE_MAXFILES": "0",
+ "CCACHE_MAXSIZE": "75G",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "ccache stats-start"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cache/work/skia/bin/gn",
+ "gen",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug",
+ "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cc_wrapper=\"[START_DIR]/ccache_linux/bin/ccache\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DPLACEHOLDER_clang_linux_version=42\", \"-O1\", \"-DSK_GPU_TOOLS_VK_LIBRARY_NAME=[START_DIR]/[SWARM_OUT_DIR]/swiftshader_out/libvk_swiftshader.so\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/tsan\"] sanitize=\"TSAN\" skia_use_vulkan=true target_cpu=\"x86_64\" werror=true"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "CCACHE_COMPILERCHECK": "content",
+ "CCACHE_DIR": "[START_DIR]/cache/ccache",
+ "CCACHE_MAXFILES": "0",
+ "CCACHE_MAXSIZE": "75G",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "gn gen"
+ },
+ {
+ "cmd": [
+ "ninja",
+ "-C",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "CCACHE_COMPILERCHECK": "content",
+ "CCACHE_DIR": "[START_DIR]/cache/ccache",
+ "CCACHE_MAXFILES": "0",
+ "CCACHE_MAXSIZE": "75G",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "ninja"
+ },
+ {
+ "cmd": [
+ "[START_DIR]/ccache_linux/bin/ccache",
+ "-s"
+ ],
+ "cwd": "[START_DIR]/cache/work/skia",
+ "env": {
+ "CCACHE_COMPILERCHECK": "content",
+ "CCACHE_DIR": "[START_DIR]/cache/ccache",
+ "CCACHE_MAXFILES": "0",
+ "CCACHE_MAXSIZE": "75G",
+ "CHROME_HEADLESS": "1",
+ "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
+ },
+ "name": "ccache stats-end"
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print('Copying build product %s to %s' % (f, dst_path))\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug",
+ "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
+ ],
+ "infra_step": true,
+ "name": "copy build products",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print('Copying build product %s to %s' % (f, dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print('Copying build product %s to %s' % (f, dst_path))\n shutil.move(f, dst_path)\n",
+ "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN/Debug/swiftshader_out",
+ "[START_DIR]/[SWARM_OUT_DIR]/swiftshader_out"
+ ],
+ "infra_step": true,
+ "name": "copy build products (2)",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@python.inline@import errno@@@",
+ "@@@STEP_LOG_LINE@python.inline@import glob@@@",
+ "@@@STEP_LOG_LINE@python.inline@import os@@@",
+ "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
+ "@@@STEP_LOG_LINE@python.inline@import sys@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
+ "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
+ "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@try:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
+ "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ raise@@@",
+ "@@@STEP_LOG_LINE@python.inline@@@@",
+ "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
+ "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
+ "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
+ "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ print('Copying build product %s to %s' % (f, dst_path))@@@",
+ "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
+ "@@@STEP_LOG_END@python.inline@@@"
+ ]
+ },
+ {
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN.json
deleted file mode 100644
index 886059c..0000000
--- a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN.json
+++ /dev/null
@@ -1,142 +0,0 @@
-[
- {
- "cmd": [
- "vpython",
- "-u",
- "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
- "--json-output",
- "/path/to/tmp/json",
- "copy",
- "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION",
- "/path/to/tmp/"
- ],
- "infra_step": true,
- "name": "Get clang_linux VERSION",
- "~followup_annotations": [
- "@@@STEP_LOG_LINE@VERSION@42@@@",
- "@@@STEP_LOG_END@VERSION@@@"
- ]
- },
- {
- "cmd": [
- "python",
- "-u",
- "[START_DIR]/cache/work/skia/bin/fetch-gn"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
- },
- "infra_step": true,
- "name": "fetch-gn"
- },
- {
- "cmd": [
- "[START_DIR]/ccache_linux/bin/ccache",
- "-s"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "CCACHE_COMPILERCHECK": "content",
- "CCACHE_DIR": "[START_DIR]/cache/ccache",
- "CCACHE_MAXFILES": "0",
- "CCACHE_MAXSIZE": "75G",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
- },
- "name": "ccache stats-start"
- },
- {
- "cmd": [
- "[START_DIR]/cache/work/skia/bin/gn",
- "gen",
- "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN/Debug",
- "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cc_wrapper=\"[START_DIR]/ccache_linux/bin/ccache\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DPLACEHOLDER_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/tsan\"] sanitize=\"TSAN\" skia_enable_vulkan_debug_layers=true skia_use_gl=true skia_use_vulkan=true target_cpu=\"x86_64\" werror=true"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "CCACHE_COMPILERCHECK": "content",
- "CCACHE_DIR": "[START_DIR]/cache/ccache",
- "CCACHE_MAXFILES": "0",
- "CCACHE_MAXSIZE": "75G",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
- },
- "name": "gn gen"
- },
- {
- "cmd": [
- "ninja",
- "-C",
- "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN/Debug"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "CCACHE_COMPILERCHECK": "content",
- "CCACHE_DIR": "[START_DIR]/cache/ccache",
- "CCACHE_MAXFILES": "0",
- "CCACHE_MAXSIZE": "75G",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
- },
- "name": "ninja"
- },
- {
- "cmd": [
- "[START_DIR]/ccache_linux/bin/ccache",
- "-s"
- ],
- "cwd": "[START_DIR]/cache/work/skia",
- "env": {
- "CCACHE_COMPILERCHECK": "content",
- "CCACHE_DIR": "[START_DIR]/cache/ccache",
- "CCACHE_MAXFILES": "0",
- "CCACHE_MAXSIZE": "75G",
- "CHROME_HEADLESS": "1",
- "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
- },
- "name": "ccache stats-end"
- },
- {
- "cmd": [
- "python",
- "-u",
- "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print('Copying build product %s to %s' % (f, dst_path))\n shutil.move(f, dst_path)\n",
- "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN/Debug",
- "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
- ],
- "infra_step": true,
- "name": "copy build products",
- "~followup_annotations": [
- "@@@STEP_LOG_LINE@python.inline@import errno@@@",
- "@@@STEP_LOG_LINE@python.inline@import glob@@@",
- "@@@STEP_LOG_LINE@python.inline@import os@@@",
- "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
- "@@@STEP_LOG_LINE@python.inline@import sys@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
- "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
- "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@try:@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
- "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
- "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
- "@@@STEP_LOG_LINE@python.inline@ raise@@@",
- "@@@STEP_LOG_LINE@python.inline@@@@",
- "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
- "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
- "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
- "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
- "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
- "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
- "@@@STEP_LOG_LINE@python.inline@ print('Copying build product %s to %s' % (f, dst_path))@@@",
- "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
- "@@@STEP_LOG_END@python.inline@@@"
- ]
- },
- {
- "name": "$result"
- }
-]
\ No newline at end of file
diff --git a/infra/bots/recipe_modules/build/examples/full.py b/infra/bots/recipe_modules/build/examples/full.py
index 1a4171c..b5b42ec 100644
--- a/infra/bots/recipe_modules/build/examples/full.py
+++ b/infra/bots/recipe_modules/build/examples/full.py
@@ -41,12 +41,12 @@
'Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES',
'Build-Debian10-Clang-x86_64-Debug-Coverage',
'Build-Debian10-Clang-x86_64-Debug-MSAN',
+ 'Build-Debian10-Clang-x86_64-Debug-TSAN',
'Build-Debian10-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41',
'Build-Debian10-Clang-x86_64-Debug-SafeStack',
'Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN',
- 'Build-Debian10-Clang-x86_64-Debug-TSAN',
+ 'Build-Debian10-Clang-x86_64-Debug-SwiftShader_TSAN',
'Build-Debian10-Clang-x86_64-Debug-Tidy',
- 'Build-Debian10-Clang-x86_64-Debug-Vulkan_TSAN',
'Build-Debian10-Clang-x86_64-Debug-Wuffs',
'Build-Debian10-Clang-x86_64-Release-ANGLE',
'Build-Debian10-Clang-x86_64-Release-ASAN',
diff --git a/tests/PathRendererCacheTests.cpp b/tests/PathRendererCacheTests.cpp
index 81acded..c3966ab 100644
--- a/tests/PathRendererCacheTests.cpp
+++ b/tests/PathRendererCacheTests.cpp
@@ -14,7 +14,6 @@
#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrResourceCache.h"
#include "src/gpu/GrStyle.h"
-#include "src/gpu/GrUserStencilSettings.h"
#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
#include "src/gpu/geometry/GrStyledShape.h"
#include "src/gpu/ops/SoftwarePathRenderer.h"
diff --git a/tests/PremulAlphaRoundTripTest.cpp b/tests/PremulAlphaRoundTripTest.cpp
index 099b95d..61542f5 100644
--- a/tests/PremulAlphaRoundTripTest.cpp
+++ b/tests/PremulAlphaRoundTripTest.cpp
@@ -10,7 +10,6 @@
#include "include/core/SkSurface.h"
#include "include/gpu/GrDirectContext.h"
#include "src/core/SkConvertPixels.h"
-#include "src/gpu/GrDataUtils.h"
#include "src/gpu/GrPixmap.h"
#include "tests/Test.h"
#include "tools/ToolUtils.h"
diff --git a/tests/TriangulatingPathRendererTests.cpp b/tests/TriangulatingPathRendererTests.cpp
index 8f4febd..25f59fe 100644
--- a/tests/TriangulatingPathRendererTests.cpp
+++ b/tests/TriangulatingPathRendererTests.cpp
@@ -14,7 +14,6 @@
#include "src/gpu/GrDirectContextPriv.h"
#include "src/gpu/GrEagerVertexAllocator.h"
#include "src/gpu/GrStyle.h"
-#include "src/gpu/GrUserStencilSettings.h"
#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
#include "src/gpu/geometry/GrAATriangulator.h"
#include "src/gpu/geometry/GrInnerFanTriangulator.h"
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index 8702496..485d278 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -242,10 +242,10 @@
if (!testCtx) {
return ContextInfo();
}
-#ifdef SK_GL
+
// We previously had an issue where the VkDevice destruction would occasionally hang
- // on systems with NVIDIA GPUs and having an existing GL context fixed it. Now (Feb
- // 2022) we still need the GL context to keep Vulkan/TSAN bots from running incredibly
+ // on systems with NVIDIA GPUs and having an existing GL context fixed it. Now (March
+ // 2020) we still need the GL context to keep Vulkan/TSAN bots from running incredibly
// slow. Perhaps this prevents repeated driver loading/unloading? Note that keeping
// a persistent VkTestContext around instead was tried and did not work.
if (!fSentinelGLContext) {
@@ -254,7 +254,6 @@
fSentinelGLContext.reset(CreatePlatformGLTestContext(kGLES_GrGLStandard));
}
}
-#endif
break;
}
#endif
diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h
index 9f7abb2..d9ab850 100644
--- a/tools/gpu/GrContextFactory.h
+++ b/tools/gpu/GrContextFactory.h
@@ -12,11 +12,7 @@
#include "include/gpu/GrDirectContext.h"
#include "include/private/SkTArray.h"
-
-#if SK_GL
#include "tools/gpu/gl/GLTestContext.h"
-#endif
-#include "tools/gpu/TestContext.h"
struct GrVkBackendContext;
@@ -169,10 +165,7 @@
bool fAbandoned;
};
SkTArray<Context, true> fContexts;
-#ifdef SK_GL
std::unique_ptr<GLTestContext> fSentinelGLContext;
-#endif
-
const GrContextOptions fGlobalOptions;
};