From 21aa7b8f24247a9825b93539edd7cce76f46e236 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Tue, 3 Apr 2018 14:33:49 -0400 Subject: limit cpu features of skcms on bots we limit skia Valgrind doesn't support half<->float x86 conversion instructions, so we build those bots with SK_CPU_LIMIT_SSE41. We now also need to limit skcms on those same bots. Easiest thing to do is build completely portable scalar code, using the existing -DSKCMS_PORTABLE. We can get fancier later if needed. Change-Id: Icf14c72a220818be9df7b97bcf203e4412c3c6b7 Reviewed-on: https://skia-review.googlesource.com/118264 Reviewed-by: Brian Osman Commit-Queue: Mike Klein --- ...ian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json | 70 ++++++++++++++++++++++ infra/bots/recipe_modules/flavor/examples/full.py | 1 + infra/bots/recipe_modules/flavor/gn_flavor.py | 4 ++ 3 files changed, 75 insertions(+) create mode 100644 infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json (limited to 'infra/bots/recipe_modules/flavor') diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json new file mode 100644 index 0000000000..e9455576d1 --- /dev/null +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41.json @@ -0,0 +1,70 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[CUSTOM_/_B_WORK]/skia/infra/bots/assets/clang_linux/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get clang_linux VERSION" + }, + { + "cmd": [ + "python", + "-u", + "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41" + }, + "infra_step": true, + "name": "fetch-gn" + }, + { + "cmd": [ + "[CUSTOM_/_B_WORK]/skia/bin/gn", + "gen", + "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug", + "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DDUMMY_clang_linux_version=42\", \"-O1\", \"-DSK_CPU_LIMIT_SSE41\", \"-DSKCMS_PORTABLE\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\"] target_cpu=\"x86_64\"" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41" + }, + "name": "gn gen" + }, + { + "cmd": [ + "ninja", + "-k", + "0", + "-C", + "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41/Debug" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41" + }, + "name": "ninja" + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +] \ No newline at end of file diff --git a/infra/bots/recipe_modules/flavor/examples/full.py b/infra/bots/recipe_modules/flavor/examples/full.py index 7cd98a686d..7a30fa0907 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.py +++ b/infra/bots/recipe_modules/flavor/examples/full.py @@ -64,6 +64,7 @@ TEST_BUILDERS = [ 'Build-Debian9-Clang-universal-devrel-Android_SKQP', 'Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES', 'Build-Debian9-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE', + 'Build-Debian9-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41', 'Build-Debian9-Clang-x86_64-Release-Fast', 'Build-Debian9-Clang-x86_64-Release-Mini', 'Build-Debian9-Clang-x86_64-Release-NoDEPS', diff --git a/infra/bots/recipe_modules/flavor/gn_flavor.py b/infra/bots/recipe_modules/flavor/gn_flavor.py index 1ea7cfe831..86b8b7968d 100644 --- a/infra/bots/recipe_modules/flavor/gn_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_flavor.py @@ -83,6 +83,10 @@ class GNFlavorUtils(default_flavor.DefaultFlavorUtils): if len(extra_tokens) == 1 and extra_tokens[0].startswith('SK'): extra_cflags.append('-D' + extra_tokens[0]) + # If we're limiting Skia at all, drop skcms to portable code. + if 'SK_CPU_LIMIT' in extra_tokens[0]: + extra_cflags.append('-DSKCMS_PORTABLE') + if 'MSAN' in extra_tokens: extra_ldflags.append('-L' + clang_linux + '/msan') -- cgit v1.2.3