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>
We've failed to get these bots to report where issues happen
any more finely than the name of the executable, which makes
them a real pain to fix when they go red.
We don't expect we'll be able to run cleanly in this mode for
long without bots enforcing it, so remove support from GN too.
Change-Id: Ie86f0cbf2f5f859ac2ddb869da7e5b8d31b33fa0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237195
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Today we do a fairly decent job of tracking device bounds as an SkIRect,
with a little more of that plumbed through here, but that gets foiled in
SkNoPixelsDevice's constructor where we only look at bounds.width() and
bounds.height().
I think the idea was to follow the usual constraint that a "base" layer
has an origin at (0,0) and only temporary "save" layers on top might be
offset, but for a device without any pixels it's pretty reasonable for
the base layer to be offset too.
This makes picture_cull_rect draw correctly in serialize-8888 mode.
Bug: skia:9334
Change-Id: I845e74779bb21cbfd4051b0ef07381e684176eac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/236859
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit f0696bd4da.
Bug: chromium:527565, chromium:983926
Change-Id: I549c9f384c9c2ca81052a86df68501d5a7057c98
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235021
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit c385da4fc0.
Reason for revert: Vulkan bots needs some love
Original change's description:
> Go back to blacklisting MSAA on all Intel GPUs
>
> Skia's testing on Gen9 showed decent performance and quality, but Chrome
> has still been seeing driver crashes in the wild.
>
> Bug: chromium:527565 chromium:983926
> Change-Id: I54f4f4013d313538da9afdab4d48ff232629152b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234909
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=bsalomon@google.com,brianosman@google.com
Change-Id: Ief86bd5862897b1e7906b74177f2bea47bc84a2e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:527565 chromium:983926
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235019
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Skia's testing on Gen9 showed decent performance and quality, but Chrome
has still been seeing driver crashes in the wild.
Bug: chromium:527565 chromium:983926
Change-Id: I54f4f4013d313538da9afdab4d48ff232629152b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234909
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:9334
Change-Id: I54a70c529b520538a3c8050a5592bbf419dd1890
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234355
Commit-Queue: Yuqian Li <liyuqian@google.com>
Auto-Submit: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
- Blacklist the (recently crashing) GLPrograms unit test
- Only test ANGLE ES3 (not ES2) on our Windows-on-ARM bot
With recent changes, ANGLE always returns an ES3 context. They may
reverse that decision, but at the moment there is no actual difference
so the testing is redundant. For this bot in particular, each config
takes upwards of 20 minutes, so this will significantly speed up one of
our slowest bots.
Bug: skia:9275
Change-Id: I04d6e37ae176fab14d7d06c8ebf55d19f9775b53
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229761
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
- Stop testing Metal-MSAA on our Gen8 Mac. These GPUs are slow and buggy
with MSAA (we already have them disabled on other backends).
- Add Metal bots with the HD615 to get testing on a Gen9 GPU. This
should have better performance and more correct results. Also move the
DDL tests to those machines, to get testing on a newer/faster machine.
- Add MSAA configs to Vulkan and Metal perf bots (except for old Intel).
Bug: skia:9023 skia:8243
Change-Id: I214c6c4ef7b6e1401719e62e29fd5d2ad05b6aa1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229379
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:8243, skia:9255
Change-Id: I006d1bace2bec5ea24b0e2be560a8ff26127f503
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227402
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: skia:9247
Change-Id: I8b4261fc81f31f56d24ae3aa84ae81c33ea2b2b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226501
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Also don't use GrPixelConfig to create the VkImage.
Bug: skia:7959
Bug: skia:6718
Change-Id: Ia13c5ed2fbe0542c060b725694eff9d566c491f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226078
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:9225 chromium:527565
Change-Id: I7c543bce011c247cd93cad90aca15c9754678202
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225731
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 2a7c6d5e2a.
Bug: skia:9235
Change-Id: Id6dc51c3254fac69665c525e73798f97a3099a17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225539
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I0795eaf6c1416f08c9c602eb15a02b27d97519f5
Bug: skia:9235
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225424
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Updated caps to allow MSAA on newer Intel GPUs.
This reverts commit 41f937f042.
Bug: skia:9225
Change-Id: I15bdc4d4a754945fafcc4bc7d1afaa701d6f0426
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224958
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit e0b2dafeb6.
Reason for revert: Need to blacklist more unit tests
Original change's description:
> Test MSAA on Gen9 Intel GPUs
>
> Change-Id: Ie5441350fc150356ffb7d6acffe1089ca1de4364
> Bug: skia:9225
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224539
> Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=bsalomon@google.com,benjaminwagner@google.com,brianosman@google.com
Change-Id: I49c7a2f1132baeef80fa5296c2f2313f2bef0830
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224956
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The majority of our gm testing has been disabling nvpr, which doesn't
match our real-world behavior where we use nvpr whenever available.
This CL fixes the issue by completely removing the explicit nvpr
configs. Now if we have nvpr, you get it.
This CL also lowers the nvpr priority in the path renderer chain and
adds a "NonNVPR" job on Quadro where we can continue to test our
non-nvpr codepaths on NVIDIA.
Bug: skia:
Change-Id: I6a36f1101c8218adcaaf10cab25d2c28e70371f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223828
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Run the Skottie tests checked under resources/skottie/ on Lottie bots.
Bug: skia:8925
Change-Id: I240608f1cbc70440cd1a35af52f98a7ef250ec31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223182
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Also, removed the blacklist for skia:8706 since the tests are passing
before this CL.
Bug: skia:8587, skia:8659, skia:8706, skia:8961, skia:9023
Change-Id: Ib7bf3268b1981ba9860f77ea7e12673976105ef9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222041
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Bug: skia:8659
Change-Id: Ic51077d915559f8acd0200b422020dae0f63c3c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222102
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Tests more filter types since their implementations may differ in how
they access the underling SkSpecialImages.
Includes reference slides that use saveLayer with filters instead of
makeWithFilter+draw.
Bug: skia:9177
Change-Id: Ic40e2fb2c81ab72b2999ed3dbd9b06870d95d31e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221117
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
AFAICT valgrind is breaking this test
BUG: skia:9171 skia:8847
Change-Id: I6f86cbeec57849f195562408d94d66c1f727ca19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221418
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This device is very old and very unsupported. It doesn't officially come
with a browser (Chrome needs to be sideloaded).
Bug: skia:6531 skia:6670 skia:7286 skia:7921
Change-Id: I720cd3a40981694bf7befa5cafc700717dcd7cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219486
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: skia:8243
Change-Id: I5ffb75db0e213c37d3b2bfa2bd3d0c77d0ba42d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215838
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Bug: angleproject:3414
Change-Id: Ibb4a9ebfd1c07a28c48ca55bbb9f1b7c28375390
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215044
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is a reland of 451b01fe09
Original change's description:
> Make SkSurface::asyncRescaleAndRead use kStrict constraint
>
> Also fix crash if SkSurface has no color space.
>
> Bug: skia:8962
> Change-Id: I5826ddb10daa46f286d2405b7229ea4f0aefa8f2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214306
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:8962
Change-Id: I05713351f62cc738ec8a4bba6377e9aa7a044975
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214684
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This reverts commit 451b01fe09.
Reason for revert: broke the existing GMs
Original change's description:
> Make SkSurface::asyncRescaleAndRead use kStrict constraint
>
> Also fix crash if SkSurface has no color space.
>
> Bug: skia:8962
> Change-Id: I5826ddb10daa46f286d2405b7229ea4f0aefa8f2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214306
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=bsalomon@google.com,brianosman@google.com
Change-Id: I8e5738492ebd0705c7a3e50a4e7bf9f1d8af578b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8962
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214420
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Also fix crash if SkSurface has no color space.
Bug: skia:8962
Change-Id: I5826ddb10daa46f286d2405b7229ea4f0aefa8f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214306
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is implemented at backend-neutral level and so misses some
opportunities to reduce the number of passes in the GPU backend.
Filter quality is interpreted as:
none - single nearest neighbor resampling
low - chain of bilinear resamplings. 2x up/down except for one
step which may be smaller than 2x.
medium - same as low
high - when both scale factors are up then same as low but with bicubic
filtering rather than linear. Otherwise, same as low.
Bug: skia:8962
Change-Id: I4467636c14b802d6a0d9b5c363c1ad9e87a1a44b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/213831
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
It's been dead code since it was inlined into Android last summer.
Change-Id: I252f6392d9436ef357f22a54bab8a33c9d1b3ea9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/213625
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The 'is' operator is not meant to be used for comparisons. It currently working is an implementation detail of CPython.
CPython 3.8 has added a SyntaxWarning for this.
Bug: chromium:958874
Change-Id: I7657bd3fddf37e849cc30aca34825fa3c0f71b58
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211663
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Raul Tambre <raul@tambre.ee>
Change-Id: I64b20467e2df15768f2548cffcf09a2b5a2b8514
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211591
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: Id7a43949b13a496b5a28be7c702fa01d7af5a0b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211654
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:9043
Change-Id: I399b4d72a81645076febd3ef06d6a47a03723cd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211660
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:9033
Change-Id: Icb56d63c19e86d70e8dc373b3082fb7b2f76760b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211601
Commit-Queue: Robert Phillips <robertphillips@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>
These devices run out of memory on the savelayer_clipmask GM when opList splitting reduction is enabled.
Bug: Skia:9033
Change-Id: I5d6be04ea95c0de07d995d88d07d1831804b0fb7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211106
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:9023
Change-Id: Icf1afcbace2e64b7edd16c07b0df5a4961bbd342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210631
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Bug: skia:5127
Change-Id: I7ca117111fb7850d8dea4ad968776c7aa559e937
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210626
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
It's failing flakily on these devices. Also, these tests are really
slow, and those devices are on the CQ.
Bug: skia:9019
Change-Id: I1b2ebd3d80dcec6ee2519d1520e6857917b788c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210421
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>