Commit Graph

48 Commits

Author SHA1 Message Date
Mike Klein
121563eb4a Fold extra_*_flags into GN as a config.
This should make them visible to things like gn_to_cmake.py.
I'm not exactly sure what this implies about ordering and overriding.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2938

Change-Id: I0740613993fb5bbfb8363cfa126d1f59768abf60
Reviewed-on: https://skia-review.googlesource.com/2938
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2016-10-04 21:57:31 +00:00
Mike Klein
8e6791fb9a Disable FP contraction on -Fast bot.
It's more annoying than helpful to have GCC turn mul,add into fma.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2780

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot

Change-Id: I63f4615f73aed112f10f6cb516d899b820918298
Reviewed-on: https://skia-review.googlesource.com/2780
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2016-09-29 15:52:46 +00:00
mtklein
d68f9b0038 GN: ANGLE
Angle's existing GN files only work in Chrome, so I've written a new one.

This won't work on Windows, but our GN build doesn't work on Windows anyway.  So this CL is an attempt to get a ahead of that curve on ANGLE.  It looks large but fairly straightforward.

Now working on Linux:
  $ gn gen angle --args=skia_use_angle=true
  $ ninja -C angle
  $ angle/dm --config angle-gl --src gm -w dm-out

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2361983002

Review-Url: https://codereview.chromium.org/2361983002
2016-09-23 13:18:41 -07:00
mtklein
605d952893 GN: take over CommandBuffer bot
As you suspected, I see nothing preventing us from building our side of things unconditionally.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358173002
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2358173002
2016-09-21 14:01:32 -07:00
egdaniel
e4a9bd79c6 Add define of SK_ENABLE_VK_LAYERS to gn build
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357953002

Review-Url: https://codereview.chromium.org/2357953002
2016-09-21 07:36:14 -07:00
mtklein
a627b5c3b9 GN: add skia_use_mesa for OSMesa in tools.
I tested by running
  $ out/dm --src gm --config mesa
  $ out/nanobench --config mesa --match Xfermode
... but I ran out of patience waiting for nanobench to finish.  Probably works.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357703002

Review-Url: https://codereview.chromium.org/2357703002
2016-09-20 13:36:47 -07:00
mtklein
06c35c0953 GN: add skia_enable_gpu (default true)
This lets us replace the NoGPU bot.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2356853002

NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2356853002
2016-09-20 12:28:12 -07:00
mtklein
122fac3061 GN: remove old Android recipe code.
All the Android builders, testers, and perfers are on gn_android_flavor now.

Not as scary as it looks... all the big line count changes are deletes.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2352653002

Review-Url: https://codereview.chromium.org/2352653002
2016-09-19 07:26:42 -07:00
mtklein
f29180e65a GN: enable Vulkan on Android when API >= 24.
Android API >= 24 implies Vulkan support, so we can have a more useful default here than 'false'.  If for some reason you wanted to turn it off, you can still override skia_use_vulkan.

The defined(ndk_api) guards other users of our GN files (Fuchsia) who may not have an ndk_api argument defined in their BUILDCONFIG.gn.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2347843003

Review-Url: https://codereview.chromium.org/2347843003
2016-09-16 07:01:17 -07:00
mtklein
fe6ca0f798 GN: port Valgrind bots.
This was suspiciously easy...

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342923002

Review-Url: https://codereview.chromium.org/2342923002
2016-09-15 13:50:43 -07:00
mtklein
1fbdf98d0e GN: support 32-bit x86 builds
Take over Ubuntu -x86- bots.

Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
We'll want target_cpu="x86" there too.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340463008

Committed: https://skia.googlesource.com/skia/+/1949386ae00485ae92dd5608a2614b9dee417542

CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Ubuntu-Clang-x86-Debug-GN_Android-Trybot,Build-Ubuntu-GCC-x86-Release-Trybot

Review-Url: https://codereview.chromium.org/2340463008
2016-09-15 12:07:48 -07:00
mtklein
56d5669095 Revert of GN: support 32-bit x86 builds (patchset #6 id:100001 of https://codereview.chromium.org/2340463008/ )
Reason for revert:
https://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-Clang-x86-Debug-GN_Android/builds/304

Original issue's description:
> GN: support 32-bit x86 builds
>
> Take over Ubuntu -x86- bots.
>
> Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
> We'll want target_cpu="x86" there too.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340463008
>
> Committed: https://skia.googlesource.com/skia/+/1949386ae00485ae92dd5608a2614b9dee417542

TBR=jcgregorio@google.com,borenet@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2338173004
2016-09-15 11:18:56 -07:00
mtklein
1949386ae0 GN: support 32-bit x86 builds
Take over Ubuntu -x86- bots.

Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
We'll want target_cpu="x86" there too.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340463008

Review-Url: https://codereview.chromium.org/2340463008
2016-09-15 11:06:25 -07:00
borenet
e715d2daf7 Fix NoGPU bot, which is compiling in GPU support
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342683003

Review-Url: https://codereview.chromium.org/2342683003
2016-09-15 09:08:48 -07:00
rmistry
90d0bfae4e Roll recipe DEPS
BUG=skia:5749
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339443003
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2339443003
2016-09-15 04:52:21 -07:00
mtklein
357f9d2032 Update gn_android_flavor for Vulkan.
C.f. https://codereview.chromium.org/2336343002 for basic GN support.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333293004

Review-Url: https://codereview.chromium.org/2333293004
2016-09-13 13:50:10 -07:00
mtklein
3b10b37a1c most is fine for *SAN bots now
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2326553002

Review-Url: https://codereview.chromium.org/2326553002
2016-09-08 09:30:20 -07:00
mtklein
e19c179281 Clean up target_os=llvm now that it does nothing.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2317373004

Review-Url: https://codereview.chromium.org/2317373004
2016-09-08 09:19:00 -07:00
mtklein
2b3c2a3ff9 GN: add sanitize arg
Attempt to take over all *SAN builds.

MSAN has a lot of coordination required between gn/BUILD.gn and gn_flavor.py.
I'd like to follow up to move more of this into gn/BUILD.gn, to make it easier
to use locally.

The compile steps should be much faster now.  We no longer build CMake
and Clang for every run, instead using the clang_linux CIPD package.  This
removes the need for all the third_party/externals/llvm/... dependencies.

Similarly, since we're using the clang_linux package, we no longer depend
on Chrome's Clang, and thus no longer need to sync chromium on these bots.

Instead of packaging up MSAN libraries and llvm-symbolizer in the compile
output, I have the test / perf bots also depend on the clang_linux package.
These do not vary from build to build.

No more need for the xsan.blacklist -include hack: Clang, GN, and Ninja
all track changes to xsan.blacklist without our help.

This has the incidental effect of upgrading the compiler used by *SAN
bots from Clang 3.8 to Clang 3.9.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2289343002

Review-Url: https://codereview.chromium.org/2289343002
2016-09-08 08:39:34 -07:00
mtklein
34ffb342f5 GN: do not set default GN args
It's just visual noise... this should make future gn_flavor.py
changes show fewer incidental diffs.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2324573002

Review-Url: https://codereview.chromium.org/2324573002
2016-09-08 06:49:05 -07:00
borenet
e72daf6116 Run install-sysroot script before 'gn gen' on PDFium bot
BUG=skia:5727
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2317013002

Review-Url: https://codereview.chromium.org/2317013002
2016-09-07 08:34:13 -07:00
mtklein
b58fe9b899 GN: turn off ccache
I just burned 2 days debugging a confusing interaction between ccache
and the -fsanitize-blacklist argument to Clang.  Let's see if we can
live without ccache (swarming affinity + Ninja seems pretty decent).

As a point of reference, the Mac bots have been looking for ccache but
failing to find it.  They're proof this will be fine.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2310063003

Review-Url: https://codereview.chromium.org/2310063003
2016-09-07 05:12:34 -07:00
bsalomon
b2be02bb39 Update Windows build to use VULKAN_SDK rather than VK_SDK_PATH
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2318633002

Review-Url: https://codereview.chromium.org/2318633002
2016-09-06 08:40:51 -07:00
jcgregorio
b55d98dda1 pdfium: Fix the pdfium builder.
BUG=skia:5715
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2300703007

Review-Url: https://codereview.chromium.org/2300703007
2016-09-02 12:36:05 -07:00
mtklein
795423198b GN: Build and link with LLD when using our Clang toolchain.
I am hoping this makes it easier to get *SAN bots going.
Today we're generating a libcompiler_rt.a that's using a
relocation type that the ld on the bots doesn't know about.
This lld is will know about anything our Clang generates.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2301273002

Review-Url: https://codereview.chromium.org/2301273002
2016-09-01 15:51:03 -07:00
mtklein
ae509db481 GN: expunge all environment variables that have no effect on GN
This should have no practical effect.  I just want to make sure no
environment variables beyond $PATH have any effect on GN builds.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2300173002

Review-Url: https://codereview.chromium.org/2300173002
2016-09-01 13:19:21 -07:00
mtklein
da8f6546da Add and use a clang_linux asset.
This gives us a consistent Clang toolchain on Linux bots,
most importantly for *SAN bots.  It's ~300MB unpacked.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2294353002

Review-Url: https://codereview.chromium.org/2294353002
2016-08-31 12:35:21 -07:00
mtklein
272b311298 GN: forgot Clang+ccache fix on Android. And sort.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298203002

No trybots for these yet...
NOTRY=true
TBR=jcgregorio@google.com

Review-Url: https://codereview.chromium.org/2298203002
2016-08-31 05:03:31 -07:00
mtklein
82023d590c add gn_android_flavor
This ought to support compiles for now.

Am I picking up my CIPD ndk packages right?

The main thing to note is that I'm passing the target_arch directly through
as target_cpu.  This means these bots will have a slightly different naming
convention than we've been using, but it'll agree with what you must type
yourself when using GN to build for Android:

  - Arm7 -> arm
  - Arm64 -> arm64
  - Mips -> mipsel
  - Mips64 -> mips64el
  - x86 -> x86 (unchanged)
  - x86_64 -> x64

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2292663002

Review-Url: https://codereview.chromium.org/2292663002
2016-08-29 13:14:55 -07:00
mtklein
cab0bb7fc6 GN: support compiler_prefix, use it for ccache on bots.
This makes it considerably easier to use ccache with the Android NDK.
You can now just set
  compiler_prefix = "ccache"
  ndk = "/path/to/ndk"
and we'll use the NDK clang, wrapped with ccache.

The name compiler_prefix is stolen from / compatible with Chrome.

If you have ccache, you can just always leave compiler_prefix="ccache" enabled.
This should make it an unusual thing for humans to have to change cc or cxx.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2281163002

Review-Url: https://codereview.chromium.org/2281163002
2016-08-26 13:43:19 -07:00
rmistry
3f1c9c0a72 Apply gerrit ref if it is a Gerrit patch.
Also:
* Pass through a new property 'patch_storage' to DM/Nanobench/Coverage. This will be used by the different frameworks to figure out if it is Rietveld or Gerrit issue.
* Calculate issue and patchset for Gerrit patches similar to Rietveld.

BUG=skia:5627
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263323002

Review-Url: https://codereview.chromium.org/2263323002
2016-08-24 05:07:06 -07:00
mtklein
8079ba688c GN: add extra_cflags et al.
Adding flags to the end of cc or cxx is pretty useful, but these always end up
on the command line before the GN generated flags, thus setting defaults that
GN will override.

For full flexibility we want to be able to add flags after the flags GN has
added, so that custom flags can override _it_.

I've updated the Fast bots with an example here: if we said cc="clang -O3 ...",
that '-O3' would be overriden later by the default Release-mode '-Os'.  By
putting it in extra_cflags, we get the last word: our '-O3' overrides the
default '-Os'.

Another good use case is a hypothetical Actually-Shippable-Release mode.  Our
Release mode bundles in tons of debug symbols via '-g'.  libskia.a is about 10x
larger than it needs to be when built that way, but it helps us debug the bot
failures immensely.  To build a libskia.{a,so} that you'd really ship, you can
now set extra_cflags="-g0" to override '-g'.  You could set '-march' flags there
too, '-fomit-frame-pointer', etc.

There are lots of flags that won't matter where they end up in the command line.
To keep everything simple I've put them in extra_cflags with the rest.  This means
the only time we change 'cc' or 'cxx' in our recipes is to prefix 'ccache'.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241263003

Review-Url: https://codereview.chromium.org/2241263003
2016-08-16 09:31:16 -07:00
mtklein
18655efb7a GN: take over some exisiting bots
As an experiment, instead of replacing these with -GN twins, take
them over in-place.  This should take over:

  -FAST
  -SKFOO

CQ_INCLUDE_TRYBOTS=master.client.skia:Perf-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2229463002

Review-Url: https://codereview.chromium.org/2229463002
2016-08-11 07:51:53 -07:00
rmistry
5eab99183c Move ct_skps recipe from tools repo to Skia repo.
Also move the isolate file and script from Chromium repo to the Skia repo.

BUG=skia:5620
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2221413002

Review-Url: https://codereview.chromium.org/2221413002
2016-08-09 13:46:48 -07:00
borenet
2c3112d517 [recipes] Increase test coverage
Remove a bunch of "pragma: no cover" by removing unused code or adding test bots to cover.

BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215443003

Review-Url: https://codereview.chromium.org/2215443003
2016-08-05 06:30:10 -07:00
borenet
d460a3c256 [recipes] Remove build environment vars from default_env
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209423002

Review-Url: https://codereview.chromium.org/2209423002
2016-08-05 05:18:06 -07:00
borenet
c7233ef925 [recipes] Stop pretending that buildbot_spec is a step, simplify
Since we no longer have to call out to obtain the buildbot_spec, merge
the two functions in vars API.  As a side effect, this applies
default_env to the sync steps as well, which shouldn't have an
appreciable effect on bot behavior.

BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209343002

Review-Url: https://codereview.chromium.org/2209343002
2016-08-04 11:33:02 -07:00
borenet
538d5b68e8 Move builder_spec, [dm|nanobench]_flags, builder_name_schema to recipes
- builder_name_schema becomes its own recipe module.
- builder_spec, dm, and nanobench flags move into vars module.
- recipe expectation diffs include:
  - no more buildbot_spec.py step
  - "real" dm and nanobench flags, instead of --dummy-flags
  - some inconsequential stuff in visualbench, which is removed anyway.

BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215803002

Review-Url: https://codereview.chromium.org/2215803002
2016-08-04 11:07:10 -07:00
borenet
9e3d3d8b36 Fix fake_specs.py, update recipe expectation
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2200763002

Review-Url: https://codereview.chromium.org/2200763002
2016-08-03 10:10:07 -07:00
borenet
1436a09e1f Re-organize Skia recipes
Break Skia recipe module into:
  - skia_vars: defines and stores variables (eg. paths)
  - skia_step: utilities for running Skia steps
  - skia_flavor: flavor-specific stuff
  - skia: top-level setup, checkout, test/perf steps, etc etc

This establishes a saner dependency structure for the recipes; skia_vars
is at the bottom level, skia_step depends on it, skia_flavor depends on
both of them, skia depends on all of the above, and the recipes
themselves may depend on any or all of them.

Next steps:
  - Merge buildbot_spec into skia_vars
  - Move test_steps and perf_steps from skia recipe_module into
    swarm_test and swarm_perf recipes
  - Cleaner checkout_steps process

BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2198173002

Review-Url: https://codereview.chromium.org/2198173002
2016-08-03 08:23:10 -07:00
mtklein
830c913625 GN: ccache+clang needs -Qunused-arguments
An alternative is to define CCACHE_CPP2, but
I thought I'd try this more visible way first.

(CCACHE_CPP2 may turn out to be required anyway
if we start seeing warnings about tautological compares.)

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193203002

TBR=jcgregorio@google.com
NOTRY=true

Review-Url: https://codereview.chromium.org/2193203002
2016-07-29 06:03:52 -07:00
mtklein
2a1134e3f5 GN: Always quote cc and cxx.
To fix:
    ERROR at the command-line "--args":1:34: Unexpected token '+'
    is_debug=true cc=clang cxx=clang++

TBR=jcgregorio@google.com
NOTRY=true

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193593003

Review-Url: https://codereview.chromium.org/2193593003
2016-07-29 05:39:35 -07:00
mtklein
9081ceb123 GN: use ccache if available and the requested compiler.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186553006

Review-Url: https://codereview.chromium.org/2186553006
2016-07-29 05:07:39 -07:00
jcgregorio
ba59595ea3 recipes: Add a GN flavor.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2189713003

Review-Url: https://codereview.chromium.org/2189713003
2016-07-28 09:38:59 -07:00
borenet
151aee4220 Fix silently-failing compile
Ouch...

TBR=rmistry
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2191663002

Review-Url: https://codereview.chromium.org/2191663002
2016-07-27 14:05:54 -07:00
kjlubick
e772aeea08 Add Vulkan runtime dll
This gets copied into the out/ dir on compile and allows dm.exe to run anywhere, even if the Vulkan SDK is not installed.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188543002

Review-Url: https://codereview.chromium.org/2188543002
2016-07-27 12:59:12 -07:00
egdaniel
735109c248 Add gyp define to enable vulkan debug layers
On Debug vulkan bots, running with the debug layers on seems to be adding
more than an hour to the total running time. Since we suppress any output
on the bots anyways the debug layers are serving no purpose. Thus I am
adding a gyp define to disable the layers on the bot.

With this change, by default when running vulkan in Debug, the debug_layers
will be enabled. The bots should disable the layers. Android framework
should also have them disabled by default.

TBR=djsollen@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185953003

Review-Url: https://codereview.chromium.org/2185953003
2016-07-27 08:03:57 -07:00
borenet
1ed2ae45f5 Move Skia recipes from build repo
BUG=skia:5563
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175373002

Review-Url: https://codereview.chromium.org/2175373002
2016-07-26 11:52:17 -07:00