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>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
https://crrev.com/4b7e794e4dbf7abefd1732b76ff9539570d0be7f [file] Record written data in step presentation. (joshuaseaton@google.com)
R=kjlubick@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic59ac87f9de5f6abe73e03feb5a94ce4b0dd35f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222573
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Robbie Iannucci <iannucci@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
https://crrev.com/c2ae1f8b058dc210e2f8b1753aa7184973da36a6 Remove stdout and stderr from expectation files. (gbeaty@chromium.org)
R=stephana@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Idc32b8c2c426c0bc60b0c57476258b649d9620d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216355
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Robbie Iannucci <iannucci@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:9036
Change-Id: I0e8b44a0c586abd982e7301d1b366c04d69aff0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211421
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
We need to store (up to) three GLSL strings in the cache entry,
along with the bookkeeping to reconstruct them. To make things
simpler, we now store the null terminators.
Change-Id: Ic4fe03cb5d774464372ceec8740da1bfe9069550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205823
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: skia:
Change-Id: If5b71aba04964b61a634ccda7115c9f37a777468
Reviewed-on: https://skia-review.googlesource.com/c/195367
Reviewed-by: Stephan Altmueller <stephana@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
The platform generators seem to leave memory uninitialized on these
files without reporting an error. Blacklist them so we do not get lots
of random images in Gold
Change-Id: If5f2b65d7a20c8a3c71716591d194556bdbf17a5
Reviewed-on: https://skia-review.googlesource.com/c/163254
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I92ea1b75bc72515d55bd753d42a6bfa0e701829e
Reviewed-on: https://skia-review.googlesource.com/c/161045
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: I88ee8200b82d12ba8cee637e01b360ce2d2bb2b3
Reviewed-on: https://skia-review.googlesource.com/145360
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This is necessary for lottie-ci so we can upload to different
buckets and fetch different hash files.
Bug: skia:
Change-Id: I98b4d551df34473e2b5fc04284b0de04fbc097f3
Reviewed-on: https://skia-review.googlesource.com/144840
Commit-Queue: Stephan Altmueller <stephana@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Change-Id: I181ed6d294774a9c6886fde8252bfdde99adc572
Reviewed-on: https://skia-review.googlesource.com/140982
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:6473
Change-Id: Iee2f195ddf4bbcdabc1580f2a021d2e9a07ff0b2
Reviewed-on: https://skia-review.googlesource.com/133441
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Bug: skia:6473
Change-Id: I730cb860abc72473aaa9af98527fd220b9a55120
Reviewed-on: https://skia-review.googlesource.com/131389
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:6473
Change-Id: If243b6afb748529d2bdb212e360cd4338edc929c
Reviewed-on: https://skia-review.googlesource.com/130942
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:6473
Change-Id: I67b0dbf6dba26233df1d8e44f3e2f69ca0cc9d3e
Reviewed-on: https://skia-review.googlesource.com/128320
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Each recipe now includes its own setup steps.
Bug: skia:6473
Change-Id: I97eab2cd63f5004c07408e844cbbed735aac355f
Reviewed-on: https://skia-review.googlesource.com/125660
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Although we will support threaded generation of SW masks in DDL mode, this more closely matches Chrome's behavior
Change-Id: I28596f66693e3daa941c3dbd974a8d33f4561c16
Reviewed-on: https://skia-review.googlesource.com/122789
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:7050
Change-Id: Icf0bcfbbc505c90a4e8cee7437037a3037bdf33b
Reviewed-on: https://skia-review.googlesource.com/121781
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:7751
Change-Id: Ic76d3bf3f87b37e162df4e519b2b176a887d447f
Reviewed-on: https://skia-review.googlesource.com/121941
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This reverts commit f39bbe5a31.
Reason for revert: Broke lots of bots
Original change's description:
> Reland "[infra] Run recipes through Kitchen"
>
> Bug: skia:7050
> Change-Id: I331014c408dd5b6f7baafd78ffd12f1235c5bfe7
> Reviewed-on: https://skia-review.googlesource.com/121481
> Commit-Queue: Eric Boren <borenet@google.com>
> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
> Reviewed-by: Ravi Mistry <rmistry@google.com>
TBR=borenet@google.com,benjaminwagner@google.com,rmistry@google.com
Change-Id: I4548c66a9cb0b4f105e2bc3b1c7185d14549172f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7050
Reviewed-on: https://skia-review.googlesource.com/121463
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:7050
Change-Id: I331014c408dd5b6f7baafd78ffd12f1235c5bfe7
Reviewed-on: https://skia-review.googlesource.com/121481
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Bug: skia:7050
Change-Id: I50632444eb4ca7f9ae2b1b30b766e531092ccad4
Reviewed-on: https://skia-review.googlesource.com/82500
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
This reverts commit d234c9e6b9.
Reason for revert: GM/TSAN unhappiness
Original change's description:
> Switch bots to use ViaDDL (i.e., ddl-gl) instead of old --ddl flag
>
> Change-Id: I9c5f27bacf7d9fa7a9ac123379e2556913810cba
> Reviewed-on: https://skia-review.googlesource.com/116464
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=borenet@google.com,robertphillips@google.com
Change-Id: I95388ee582bdd9561b8ebf24250f58b361657b7c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/116621
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: I9c5f27bacf7d9fa7a9ac123379e2556913810cba
Reviewed-on: https://skia-review.googlesource.com/116464
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:7720
Change-Id: I044ca5281354b21c9deffa408ad7ec20c51d2e2e
Reviewed-on: https://skia-review.googlesource.com/115122
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Change-Id: If9402ad5a3ae7d17221cf1bca621b8aad4d9e9d0
Reviewed-on: https://skia-review.googlesource.com/114466
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>