Change-Id: I72a1d6bd489994052c942b5c8f2e36806459360c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276641
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Pass dm_properties separate from dm_flags so that the recipe can check
for properties with empty values.
Aside: we should look into changing the way properties are passed into
DM (or not pass them at all).
Change-Id: I47268506e63939e7a75256616bce947ada5e7e9a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274540
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I1a6410dc98deb0a0144118bdf52563115d91b75c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274539
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I9ef6e2e3ade1213045932fee453c51e0f6519909
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274537
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I3d82d78161373ec0536cbe6df196c753547501a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274200
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
In preparation for moving dm_flags out. Important behavioral change to
note: now we're passing issue, patchset, and patch_storage flags for all
runs of DM, including non-tryjobs. I don't think it should change any
behavior, but it's something to watch out for.
Change-Id: Ie45dbfa606b4325dc94c855dbc3531c7eeaacf9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274051
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Change-Id: Ic4b0d800ba38bd0d9548b6323ac845c5aa398e6d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274050
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This allows us to move iOS-specific stuff from individual recipes into
the flavor module.
First in a long series of CLs to clean up recipes and move to task drivers.
Change-Id: Iff01610f76c71920639328ead5209e0cd5d93f31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273762
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
This generally makes things tidier (e.g. perf_skottietrace.py no longer
needs special logic so that the app is only installed once), and it
means iOS can install only the app that's going to be run instead of
installing everything.
Change-Id: Ic07c56e724d0379255c8da5f204d9d6379b646ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/273002
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
If we need to support the Ultras, I vote we use taskdrivers instead of
these old recipes.
Bug: skia:9899
Change-Id: I9a3adedde5e7b28d90d3f836ccab0c7fe40abd38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270440
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
std::call_once() will trigger false positive races without
a libc++ (specifically __call_once()) built with TSAN itself.
Interestingly, there's a built-in interceptor for this
use case, only on Mac: https://reviews.llvm.org/D24188.
Fixes: skia:9884
Change-Id: I7b2c031c15b78ec7302c42b4e4ac365d596c2c33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265567
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Renables the Programs test on the Metal bots.
Bug: skia:9817
Change-Id: Ie1f0b520e37793e5a45ab85a55fd3cdc5f775977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266572
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
- add Mac PDF rasterizer
- create a mac pdf bot
- blacklist some GMs that CG takes forever to rasterize
- remove obsolete --dont_write pdf feature
This new Mac -PDF bot is now the _only_ bot running PDF code.
Obviously we can expand from here.
pdfium was looking like a pain to build and/or integrate
into our own build. pdftocairo looked promising, and is
already installed on the bots, but it is very slow and
prone to error. CG was the next thing I tried.
Change-Id: I82b04121f484e7dd78f60a648485a09218dd5279
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/267810
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Bug: skia:9817
Change-Id: I0cee480888a6e2da06d70750dbce9f98c7303516
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266197
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:9814
Change-Id: I6c78ac3fdf8c4b2abb111d68801779a01ed259d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265766
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Id55d47c97102367face69bfaa32d82e7db4ce2e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264500
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This logic that any GCE CPU *SAN bot is implicitly
a BonusConfigs bot is confusing... make it explicit.
This also means we can make BonusConfigs CPU bots
run disjoint work like the BonusConfigs GPU bots do.
No need to run the default configs redundantly.
Change-Id: I1219091f065a3d1135973bffea7c8774a8ca1ad6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262085
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
An error from addr2line (e.g. unknown binary type) can truncate the
output, hiding the remainder of the stack trace. Instead print the
original line.
Change-Id: I563aae4333a79a17560378e399e79b60c79f9ac7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261288
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Implements tessellation support at the Ganesh level, and adds back
door methods for supplying raw GLSL strings directly to the OpenGL
driver. Adds a new gm to verify tessellation is works in GL.
Change-Id: Idfc285b955cbe5e8e6bf0475be8b518b0cc6ed2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261196
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Also update some recipe expectations to use job names that currently
exist.
Bug: skia:9632
Change-Id: I35883474a91ffb9fb2ab3b16089c7c80b5df0bd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255982
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Since we've moved compilation to a Debian10 Docker container, the
resulting binaries won't run on Debian9 unless we also run them in a
Debian10 Docker container.
Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker failures are
tracked in skia:9664.
Bug: skia:9632, skia:9664
Change-Id: I97edc142cf558e30d11bd7bc3b5d1b423ba2418b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255152
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
I think we may not need this limit since 3.15.0 added f16c support.
Cq-Include-Trybots: skia.primary:Test-Ubuntu18-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext,Perf-Ubuntu18-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind,Test-Ubuntu18-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind,Test-Ubuntu18-GCC-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext
Change-Id: I4de547069ca0c77f2208c86f995496880df75d36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255342
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
More cleaning to do if we like this idea...
Change-Id: I608143db085911565dd5f5426f7ee6436ec58cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254680
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a reland of 598741667a
Original change's description:
> Enable Programs (formerly GLPrograms) test for other APIs
>
> Bug: skia:9365
> Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: skia:9365
Change-Id: I94db6cb2b1465edbb2e6d32708b835a76e12cbc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250016
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This reverts commit 598741667a.
Reason for revert: segfaults on Pixel bots
Original change's description:
> Enable Programs (formerly GLPrograms) test for other APIs
>
> Bug: skia:9365
> Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
TBR=borenet@google.com,jvanverth@google.com,robertphillips@google.com
Change-Id: I286c637490bb8a21c0020a8935ce4c850b98f6b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9365
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249978
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Bug: skia:9365
Change-Id: I2eeac4e628425411b0a8f9ffa94ad61d58254b77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249806
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
It seems like we see quite a few "force quarantined" bots when pushing
resources to the device fails. Rewrite copy_directory_contents_to_device
to use the _adb method, which automatically retries.
Change-Id: Iae36f8e42e85a58fdddc8c9dc80e693a371fab8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248560
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:9517
Change-Id: Iaf0a44056c6a893a8b64989edc2615fa5d9cdef8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247037
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
With Metal up and running these are no longer needed.
Change-Id: I79948707060afc3a9d2d3a4d531a7d3e5d08298d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243696
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
The 5x vulkan driver is starting to show a lot of its bugs that are becoming
a pain to work around for testing. Since the driver will probably not be updated
on this device so we wouldn't ship vulkan on it, I am removing it from our test
pool.
Bug: skia:9124
Bug: skia:9027
Bug: skia:9271
Change-Id: I89166af19f77c3c00a1f877dc4fe78596bbfa9c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243422
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
We need to specify attribute locations and (sometimes) frag shader
output locations. Desktop GL worked fine without this, but Flutter
ran into this problem, and a Pixel 2 reproduced the issue.
Note that both APIs (BindFragDataLocation and BindAttribLocation)
don't take effect until the next time the program is linked, so
we have to relink the program after applying those changes.
I was afraid that re-linking would eliminate the perf benefits of
pre-compiling the shaders, but (at least on Pixel 2) that's not
the case. I traced the life of a single program, and the initial
link (during precompile) was 4.4 ms. The re-link took 0.23 ms.
Change-Id: Iadb3b425a8cf9f6a52e015c2e37f875c0fd73d6d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241758
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I28be8b0d6c21cfea662e7bb234ea4962b6612d40
Bug: skia:9421
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/240796
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Add GM that generates reference blur rect images and compares against
actual.
Change-Id: If0ce291e211fefe96af8afdf0a60636b5f40ef47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239757
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
The lack of 'rmfile' steps is OK because all of the temporary paths
are created within swarming's sandbox; swarming will clean everything
up after the recipe has quit.
R=borenet@google.com
Change-Id: Ibb8dc612ec8eb98fe966c9caa90ba59db48dbfba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239797
Auto-Submit: Robbie Iannucci <iannucci@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
The client can do a test run of their application with
a persistent cache set to SkSL mode. They store the key
and data blobs that are produced.
Ship those blobs with the application. At startup, call
GrContext::precompileShader for each key/data pair. This
compiles the shaders, and stores the GL program ID, plus
a small amount of metadata in our runtime program cache.
Caveats:
* Currently only implemented for the GL backend. Other
backends will require more metadata to do any useful
amount of work. Metal may need a more drastic workflow
change, involving offline compilation of the shaders.
* Currently only implemented for cached SkSL (not GLSL
or program binaries). Supporting other formats again
requires more metadata, and the cached shaders become
increasingly specialized to GPU and driver versions.
* Reusing the cached SkSL on different hardware is not
supported. Many driver workarounds are implemented in
the SkSL -> GLSL transformation, but some are higher
level. Limiting device variance by artificially hiding
extensions may help, but there are no guarantees.
* The 'gltestprecompile' DM config exercises this code
similarly to 'gltestpersistentcache', ensuring that
results are visually identical when precompiling, and
that no cache misses occur after precompiling.
Change-Id: Id314c5d5f5a58fe503a0505a613bd4a540cc3589
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239438
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>