Commit Graph

54481 Commits

Author SHA1 Message Date
Jim Van Verth
534c8c5f61 Update Metal PipelineStateCache to use new stats tracking
Change-Id: I3edc1812f74319abeb13d94cf7e2426bd68b57a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382282
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-10 16:45:05 +00:00
Chris Dalton
1e7b2e5e17 Re-enable ccpr clipping for small paths
For things like path rendering we can (and should) do better than an
atlas. But for use cases like "many small paths clipped by many small
paths," an atlas is probably still the best solution we have.

Change-Id: Iff5d250d0d6ccba9235f3fe652891554e3fdfc24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380856
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-10 16:22:58 +00:00
John Stiles
4d7ac49dca Declare outputColor and outputCoverage inside emitCode.
This is useful because it allows the variables to be declared as `const`
when they are trivial values like `half4(1)`. This enables the constant
folder to simplify or eliminate them. In most cases, this is only a
small benefit, as you'd expect a competent GPU driver to do the same.
However, Mali-400 can benefit significantly from optimizing away the
multiplication against a constant half4(1) coverage in Porter-Duff.

Mali-400 performance is back to normal: http://screen/3cDxdaGkYE8oBcS

Change-Id: I21fd23f91f747079cd05b082f7b3444aeabafb93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382476
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-03-10 16:03:18 +00:00
John Stiles
38847cda89 Remove unnecessary scope from fragment shaders.
This block no longer appears to provide any benefit; we mangle variable
names to prevent name collisions already.

Change-Id: I970a9d55ed5a77b93ff611e6a58e9424db78f6db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382396
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-10 15:46:38 +00:00
John Stiles
be6cbf331c Disable constant-variable substitution when optimization is off.
When optimization is disabled, I did not expect to see arithmetic like
`color * ONE` disappear (even though it's just a constant fold):

    const vec4 ONE = half4(1);
    vec4 x = color * ONE;

Change-Id: Id24a632712591c73a904b90e5efdba092d846c0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382477
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-03-10 15:44:48 +00:00
John Stiles
0dd1a77e12 Add noinline keyword to SkSL.
As you might expect, a function tagged with `noinline` will never be
considered as a candidate for inlining.

Change-Id: Ia098f8974e6de251d78bb2a76cd71db8a86bc19c
Bug: skia:11362
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382337
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-03-10 15:39:48 +00:00
skia-autoroll
da076e9aca Roll Chromium from 5d94010048eb to 9bc5c82512d2 (404 revisions)
5d94010048..9bc5c82512

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: kjlubick@google.com
Change-Id: I9c81d056c36e255408617d0ac618c537d554d985
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382496
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-10 05:37:07 +00:00
skia-autoroll
44fb2f3151 Roll ANGLE from 9bc9ac8df8df to c054008f9efb (16 revisions)
9bc9ac8df8..c054008f9e

2021-03-09 m.maiya@samsung.com Vulkan: Check buffer usage before unmapping
2021-03-09 cnorthrop@google.com Tests: Add Extreme Car Driving Simulator trace
2021-03-09 cnorthrop@google.com Capture/Replay: Fix compressed cube textures
2021-03-09 m.maiya@samsung.com Vulkan: Collect inactive varyings by block name for I/O blocks
2021-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 76f6150ffdeb to 031d7b5c5879 (832 revisions)
2021-03-09 m.maiya@samsung.com Call resolveLink in Program::attachShader and Program::detachShader
2021-03-09 ynovikov@chromium.org Update Xcode used by standalone Mac builders to 12.4
2021-03-09 ianelliott@google.com Work-around eglSwapBuffersWithDamageKHR() bug
2021-03-09 jmadill@chromium.org Allow graceful no-error failure in CastStateValues.
2021-03-09 penghuang@chromium.org Reland "Fix bindFramebuffer problem with GLES2 devices"
2021-03-09 penghuang@chromium.org Reland "Fix two issues with GLES2 devices"
2021-03-09 penghuang@chromium.org Revert "Vulkan: Support EXT_sRGB_write_control"
2021-03-09 penghuang@chromium.org Revert "Fix bindFramebuffer problem with GLES2 devices"
2021-03-09 penghuang@chromium.org Revert "Fix two issues with GLES2 devices"
2021-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from de7d5775ab25 to 023914a27b63 (2 revisions)
2021-03-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6691fcec0bce to 32692e5de307 (12 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: kjlubick@google.com
Test: Test: Black Desert MobileTest: Test: GLSLTest_ES31.VaryingIOBlockNotDeclaredIn*Shader*Test: Test: Grand Theft Auto: San AndreasTest: Test: MEC for Extreme Car Driving SimulatorTest: Test: angle_perftests --gtest_filter="*extreme_car_driving_simulator*"
Change-Id: I2ad7a6ee32d4a6331d0a1bd225b52684a2bc21a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382516
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-10 04:46:27 +00:00
skia-autoroll
beb62fb11c Roll Dawn from 010fd1a8d7c7 to 6d4617a2d28d (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/010fd1a8d7c7..6d4617a2d28d

2021-03-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from fe2ceb9b5d7c to 6ce58becd2d5 (13 revisions)
2021-03-09 bclayton@google.com ShaderModule: Use transform::Renamer
2021-03-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 13ee0fbdf337 to fe2ceb9b5d7c (2 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 13ee0fbdf337 to 6ce58becd2d5

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC kainino@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com
Change-Id: I17c8adb121f5003ae518accea3c38f7bcfdb51f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382536
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-10 04:41:27 +00:00
Herb Derby
cc1cbcf9e0 Revert "Reland "cache the creation of one GrAtlasTextOp""
This reverts commit dc3d678712.

Reason for revert: Crashing on exit thread handler

Original change's description:
> Reland "cache the creation of one GrAtlasTextOp"
>
> This is a reland of 4b1fb7ca90
>
> Original change's description:
> > cache the creation of one GrAtlasTextOp
> >
> > GrAtlasTextOp has a high probability of being merged with the
> > previous op. This cache keeps using the same op to merge with
> > keeping memory warm.
> >
> > This show about 5.75% improvement in skpbench on desk_nytimes.
> >
> > When compiling for ios 9 or earlier, this optimization is
> > disabled.
> >
> > Change-Id: I13ccbef6dcd4b9d82103bf20bba7d94f3e4fb6f4
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/376718
> > Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Herb Derby <herb@google.com>
>
> Change-Id: I935a2965062b1fddb28806e85eb0fe055ba46ec2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380320
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

TBR=bsalomon@google.com,herb@google.com,michaelludwig@google.com

Change-Id: I3bc3329580460fcf8c0b49f655a88cb902da3d58
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382556
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-10 04:24:09 +00:00
Herb Derby
dc3d678712 Reland "cache the creation of one GrAtlasTextOp"
This is a reland of 4b1fb7ca90

Original change's description:
> cache the creation of one GrAtlasTextOp
>
> GrAtlasTextOp has a high probability of being merged with the
> previous op. This cache keeps using the same op to merge with
> keeping memory warm.
>
> This show about 5.75% improvement in skpbench on desk_nytimes.
>
> When compiling for ios 9 or earlier, this optimization is
> disabled.
>
> Change-Id: I13ccbef6dcd4b9d82103bf20bba7d94f3e4fb6f4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/376718
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I935a2965062b1fddb28806e85eb0fe055ba46ec2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380320
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-03-09 23:32:00 +00:00
Brian Osman
86e85537fe Test that we propagate 'const' to the GPU backend of runtime effects
Currently, only one of three uses (local variables) does this correctly.

Bug: skia:11716
Change-Id: Iad11e8e5998fcc7caee4d438e0558c5d4e2b1821
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382277
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-09 23:26:00 +00:00
Michael Ludwig
a5c90588b1 Consistently fail writePixels when rowbytes not a multiple of bpp
With skia-review.googlesource.com/c/skia/+/363782, both cpu and gpu
backends would gracefully fail readPixel requests where dst row bytes
wasn't a multiple of dst bpp. It also updated the cpu backend's
writePixels behavior to gracefully reject writePixels requests where
the src row bytes wasn't a multiple of src bpp.

GPU writePixels would not detect this and later trigger an assert
in debug builds in GrConvertPixels (caught by the linked fuzzer bug).

This adds tests to mirror the read pixels bad-row-bytes tests and
updates GrSurfaceContext::writePixels to check src row bytes vs. bpp.
I confirmed it fixes the fuzzer crash.

Bug: chromium:1185266
Change-Id: I7cd8406c65a9ba35a55d695b2f65410a1edd2a19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382276
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-03-09 21:54:50 +00:00
Jim Van Verth
7d195fff45 Cache precompiled MSL shaders.
Acts similarly to the GL precompiled shaders, in that it will cache
preliminary data (in this case, the MTLLibraries) in the PipelineState
cache, and then when the pipeline is built will extract that. Once
the pipeline is built the MTLLibraries are discarded.

Bug: skia:11392
Change-Id: I701e2e857d105c9149a2f69fe7b60bf4599195bc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380457
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-03-09 21:10:22 +00:00
John Stiles
c3ce43be8e Replace the vector<Statement> in SwitchCase with a Block.
Change-Id: Ic2d1240ab785101365b0fd934562505fb5a3e599
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381816
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-03-09 20:46:10 +00:00
Ethan Nicholas
24c1772ea4 Fixed an issue with DSL includes
It turned out that everywhere we were using or testing DSL code either
directly or indirectly imported big chunks of the SkSL library. These
imports turned out to be necessary; code written using just DSL.h would
fail with various template instantiation errors.

Change-Id: Iae72d15b0d6ef14614ac1a4ff08c36bc1876cd4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381638
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-03-09 20:07:00 +00:00
Herb Derby
6447784a31 encapsulate GrTextBlob::Key creation into Key::Make
Change-Id: Iabd75ca316e7f0ae28d2fc24d29d42db804ed8d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381636
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-03-09 19:59:56 +00:00
Adlai Holler
5be0eca849 Remove a few unneeded retain & autoreleases from Metal
We should avoid convenience factory methods when possible, to
keep things out of the autorelease pool.

Change-Id: I0a042b59619aff7a91b889add4ad341ab892809a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381860
Auto-Submit: Adlai Holler <adlai@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-03-09 18:49:00 +00:00
Peng Huang
0408afc573 Fix GrGpuBuffer::onRelease() crash problem.
The crash is because method GrGpuBuffer::onRelease() is called on wrong
thread. SkMessageBus::Post(const Message& m) takes a const ref of the
message, so there is a little possibility the GPU thread received and
handled the message before SkMessageBus::Post() is returned. In that
case, the caller of SkMessageBus::Post() (AsyncReadResult) still holds
the last ref of the GrGpuBuffer, and then GrGpuBuffer() will just be
released on the wrong thread.

Bug: chromium:1185489
Change-Id: I28665dbb1db7925d59ec574e9e26385e845ff4df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380696
Commit-Queue: Peng Huang <penghuang@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Peng Huang <penghuang@chromium.org>
2021-03-09 18:10:00 +00:00
Herb Derby
63fe8e53dd move subrun creation to GrTextBlob::Make
Change-Id: Iee920e3751e067ff3b86ed6713b279fc2437fd14
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381477
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-09 16:53:35 +00:00
Adlai Holler
01cb243b5e Always make unarchived SkMatrices thread-safe
This is sort of a nuclear option for matrices that are archived by e.g.
SkPictures, SkShaders, and SkEffects. But in all these cases, the
unarchived objects are const and ought to be thread-safe.

Bug: skia:11715
Change-Id: I0215f0fc988e9ce01efd4e200c9951c3b5be7da6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381519
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-03-09 15:44:30 +00:00
Jim Van Verth
6cb17ead60 Fix stencil format mismatch in GrMtlPipelineState creation.
We can have a stencil attachment on the RenderTarget with stencil disabled.

Bug: skia:11392
Change-Id: Iefc661e9206eb859b02e91857f3682a525493df6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380716
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-03-09 14:20:40 +00:00
Ethan Nicholas
b14b63623c Added unary + and - DSL operators
These were accidentally omitted from the supported operator list.

Change-Id: Idecd17adb8b3f5043e36328c65ca12be33e990f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381637
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-03-09 14:19:03 +00:00
skia-autoroll
a850a4a6b2 Roll ANGLE from 9bc86c50f283 to 9bc9ac8df8df (11 revisions)
9bc86c50f2..9bc9ac8df8

2021-03-09 penghuang@chromium.org Disable worker contexts on Android emulator
2021-03-09 ynovikov@chromium.org Further suppress tests failing on Ozone.
2021-03-09 penghuang@chromium.org Fix bindFramebuffer problem with GLES2 devices
2021-03-08 lexa.knyazev@gmail.com Metal: Enable iOS pixel formats on macOS 11
2021-03-08 m.maiya@samsung.com Vulkan: Support EXT_sRGB_write_control
2021-03-08 penghuang@chromium.org Fix two GL_OES_texture_half_float related problems with GLES2
2021-03-08 ynovikov@chromium.org Add Win x86 chromium.angle bots to CQ
2021-03-08 penghuang@chromium.org Fix two issues with GLES2 devices
2021-03-08 lexa.knyazev@gmail.com Fix PVRTC1 frontend validation
2021-03-08 m.maiya@samsung.com Handle nullptr in GetQueryObjectParameter()
2021-03-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 6846389f25ca to de7d5775ab25 (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: kjlubick@google.com
Change-Id: I3668505cd9de8e3a41193c8bd1643f84b468f4ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381857
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-09 05:27:59 +00:00
skia-autoroll
7d749cd578 Roll Chromium from 5cd489ad4ec5 to 5d94010048eb (4448 revisions)
5cd489ad4e..5d94010048

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: kjlubick@google.com
Change-Id: Iba5c8471c5ee7d1aa9b07f5903554f6f95a3bb1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381876
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-09 05:19:30 +00:00
skia-autoroll
2f37f2c260 Roll SwiftShader from de7d5775ab25 to 023914a27b63 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/de7d5775ab25..023914a27b63

2021-03-08 srisser@google.com Add all Vulkan 1.2 feature structs
2021-03-08 swiftshader.regress@gmail.com Regres: Update test lists @ de7d5775

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: kjlubick@google.com
Change-Id: I8b84cd6f9320fe03712663fe783671e79f57333d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381856
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-09 05:09:10 +00:00
Adlai Holler
043a737317 GrResourceAllocator: cleanup after failed instantiation
Failed instantiations are ultra-rare, so instead of trying to return
early in that case, go ahead and finish iterating through the list
so that it's cleared out and the cleanup-assertions in the
destructor pass.

Bug: skia:10877
Change-Id: I1452e4521fb35a374a046e15df1fe33630f72df9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381756
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2021-03-09 01:21:09 +00:00
Mike Reed
1cf56817f8 Remove supported for (removed) inheriting paint filter-quality
Bug: skia:7650
Change-Id: Ia4414d32b63b686b9987a7d1424c89fe57bd1afe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380836
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2021-03-09 00:58:09 +00:00
John Stiles
5676c57220 Optimize away self-comparison in the constant folder.
Expressions like `value == value` or `color.a != color.a` can be
replaced by `true` or `false` on sight. The GLSL spec makes it clear
that checking for NaN is optional:

4.7.1 Range and Precision
"... NaNs are not required to be generated. Support for signaling NaNs
is not required and exceptions are never raised. Operations and built-in
functions that operate on a NaN are not required to return a NaN as the
result."

Change-Id: I2ad9f2dc505b638ea2904bef41b7a79a2b329551
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381262
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 23:38:29 +00:00
John Stiles
7a3f5506b6 Performance experiment: disable control-flow analysis.
This CL will be used to test for potential performance regressions (or
improvements) that we might cause by disabling this optimization pass.

It will be reverted in ~1 day.

Change-Id: I26b7687c341eb6d81231406381c39869cfccf6d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381259
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 19:41:19 +00:00
Herb Derby
c8e31ea399 GrTextBlob: remove unused hash function; add key() api
Change-Id: I20e4f2168713cbd54c0428c60e38a736cf735df3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381476
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-03-08 18:50:59 +00:00
John Stiles
a085cd8263 Flatten constant switches at IR generation time.
This can cause unreachable-code warnings when control-flow analysis is
enabled, and CFA has a matching optimization pass, so we only do this
when CFA is turned off.

Change-Id: I6c90bbcc0a9de2478a22dd9054567dca1b13b84a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381258
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 18:26:31 +00:00
Adlai Holler
19fd5145a9 Simplify GrResourceAllocator API
There's really only one failure at this point, and it's a failed
instantiation. The original intention of the allocation failure
system was to only drop the ops that referred to the uninstantiated
proxies, but somewhere along the way that was lost and
we started dropping arbitrarily large chunks of ops. Lets just
bail and not crash instead.

Bug: skia:10877
Change-Id: I675358e8a1fbd2d75ea29b72ccfc50c7df90343e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371337
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-08 18:12:29 +00:00
John Stiles
06d600fb9d Add Convert/Make factory functions to FieldAccess.
Change-Id: Ib1f5296c017374b833654f988ff89d11d8f78b4d
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380458
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 17:44:17 +00:00
John Stiles
ece1bf0afb Avoid unnecessary copies of AST objects.
Use placement-new to copy AST data into fBytes; this gives us a "real
object" at that memory location which we can later access via
reinterpret_cast. In practical terms, this lets us return a reference
that points inside of fBytes without causing UB. This saves us from
needing to copy the data back out every time it is accessed.

For large objects, this can be a substantial savings. For sufficiently
small objects (<= 8 bytes) the data is copied back out regardless, since
a single load is more than fast enough.

Change-Id: I3ad246acda4feb7e7aa1987d966abd607983e205
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380996
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 17:19:35 +00:00
Chris Dalton
9ff7eef906 Rename SampleCCPRGeometry.cpp -> SampleStrokeVerb.cpp
Also removes the CCPR stuff prior to its deletion.

Change-Id: I63db69ed4a66a11a2006c82e403d89c89af153eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380596
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-08 16:37:09 +00:00
John Stiles
7247b48102 Add shader optimization level toggles to Viewer.
This lets us see at a glance what each optimization pass contributes to
our final compiled SkSL output.

Change-Id: I52c56c92c408eee34045c5e6f60298cf9548ff5d
Bug: skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381257
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-03-08 16:33:39 +00:00
Adlai Holler
41d47ce358 Pre-cache matrix type in SkMatrixImageFilter
This makes the filter thread-safe.

Bug: skia:10286
Change-Id: I0d8796655bd51f21fe7cb30f02340b87cb13c665
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381299
Commit-Queue: Adlai Holler <adlai@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-08 16:29:09 +00:00
John Stiles
51d33982ad Add Convert/Make factory functions to IndexExpression.
Change-Id: I7a7874e58bf53978afce8a41b26092406b6490ed
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380360
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-08 15:55:59 +00:00
Julia Lavrova
4414f87fa1 Revert the workaround for missing ICU API ubrk_safeClone
Bug: skia:11315
Change-Id: Iee619517b687dc722d99e73821954cadb790d98a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/378977
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-08 15:26:25 +00:00
Brian Salomon
3fa0cdada7 SkPictureShader::asFragmentProcessor should recreate proxy for resource.
findProxyByUniqueKey merely checks if a proxy exists for a key while
findOrCreateProxyByUniqueKey checks if there is an existing texture
whose proxy was deleted and recreates a new proxy for it.

Change-Id: I352639d03769dbb9659819d52bc6927347b5a452
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381222
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-03-08 15:22:05 +00:00
Kevin Lubick
d60ecb7b7f [canvaskit] Remove unreliable perf jobs.
These have been replaced by "CanvasPerf" jobs.

Bug: skia:11331
Change-Id: Id7d625eb8ade2d93754e4021171af0ce4a5224a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381219
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-03-08 14:48:35 +00:00
Corentin Wallez
a0178b2513 Remove DEPS on shaderc and glslang
These were used by Dawn at some point but are no longer needed since
they are only used by Dawn's tests that aren't discovered by Skia's GN
build.

Bug: dawn:706
Change-Id: Icb75856955c16f659203ebf20462db59f4165873
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381236
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-03-08 14:14:55 +00:00
skia-autoroll
9196a0884d Roll Dawn from 95034f6528d4 to 010fd1a8d7c7 (1 revision)
https://dawn.googlesource.com/dawn.git/+log/95034f6528d4..010fd1a8d7c7

2021-03-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from f9f48c60f700 to 13ee0fbdf337 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from f9f48c60f700 to 13ee0fbdf337

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC enga@google.com,cwallez@google.com,kainino@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: enga@google.com,cwallez@google.com,kainino@google.com
Change-Id: Ib336eeb43dced052549e10a0e13723572b356783
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381017
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-08 07:24:34 +00:00
skia-autoroll
0530e52e3a Roll SwiftShader from 6846389f25ca to de7d5775ab25 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6846389f25ca..de7d5775ab25

2021-03-05 srisser@google.com Fix missing feature from vkCreateDevice case-list

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: kjlubick@google.com
Change-Id: I8f4ef5ee432f459c362a4a6f47bc1885517a31be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381036
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-08 05:05:24 +00:00
skia-autoroll
5e131206b9 Roll ANGLE from fe2efefac498 to 9bc86c50f283 (15 revisions)
fe2efefac4..9bc86c50f2

2021-03-06 lexa.knyazev@gmail.com Metal: Implement OES_draw_buffers_indexed
2021-03-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from a9c07acc33bc to c4e6dbe68e04 (15 revisions)
2021-03-06 ynovikov@chromium.org Skip tests failing on Ozone.
2021-03-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 9be79728eafb to a9c07acc33bc (6 revisions)
2021-03-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e3e89758c942 to 76f6150ffdeb (205 revisions)
2021-03-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 9cdde06fb38a to 9be79728eafb (18 revisions)
2021-03-05 ynovikov@chromium.org Skip vulkan_car_parking_multiplayer on Win Intel
2021-03-05 ynovikov@chromium.org Skip CopyTextureVariationsTest failing on Ozone
2021-03-05 Amy.Liu@arm.com Revert "Compression of the data from vkGetPipelineCacheData."
2021-03-05 lexa.knyazev@gmail.com Fix Apple GPU detection for M1
2021-03-05 lubosz.sarnecki@collabora.com capture_replay_tests: Don't skip tests that pass.
2021-03-05 syoussefi@chromium.org Vulkan: Keep dynamic buffer's free list trimmed
2021-03-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c0db6ae3d87d to 6691fcec0bce (2 revisions)
2021-03-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 084529f3a9b9 to 6846389f25ca (1 revision)
2021-03-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 143c12daa39f to e3e89758c942 (782 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC kjlubick@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: kjlubick@google.com
Change-Id: Id95b47629f283cff513ec93d367a055cdee74514
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381016
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-08 04:49:04 +00:00
Julia Lavrova
c70f8c331d Using non-breaking spaces as a hint to break too long words
Change-Id: Ic88e961ea3fb08e61340895115f514c6f5dec163
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/379798
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-08 04:31:04 +00:00
Mike Reed
07ee548d5b Remove legacy picture-shader impl
Change-Id: Ibb4c49f101519b8290884f8da654b661e119de82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380916
Auto-Submit: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-03-07 20:55:34 +00:00
Chris Dalton
5f2932e0e3 Skip "~path" tests on Pixel5
This test crashes on the bots. Disabling until we can investigate.

Bug: skia:11152
Change-Id: I1cd8e63661a79520a698a2ba9f039dd932c577fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/352465
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-03-07 16:10:55 +00:00
skia-recreate-skps
1314913ff5 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I4758310a1f5d6ee7446c3951a2ad589ef0fa183a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/380796
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-03-07 06:28:04 +00:00