Commit Graph

54628 Commits

Author SHA1 Message Date
Herb Derby
0b1228d53e put an arena on GrRenderTargetProxy
This is a reland of 5a2de5e72f

This is part one of two CLs. In this CL, I put a
sk_sp<GrArenas> on GrRenderTargetProxy where GrArenas wraps
a SkArenaAlloc to add ref counting. Creating
a GrOpsTask shares the GrArenas with the ops task. When an
GrOpsTask is destroyed, it nulls out the fArenas sk_sp on
the GrRenderTargetProxy to limit the life span of the arenas.

New plumbing was added to GR_DRAW_OP_TEST_DEFINE to allow a
proper GrSurfaceDrawContext to be passed to GrAtlasTextOp's
GR_DRAW_OP_TEST_DEFINE so the arena will have a proper lifetime.

The second CL will work on replacing GrOpsTask's fAllocators
system with the shared arena.

Change-Id: Ieb568e4533c17e31b3b015e7781365d7d898c483
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396818
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-04-15 14:37:59 +00:00
Brian Osman
cbb60bd0b0 Add runtime color filter and shader modes to the SkSL compiler
These enforce stricter rules about the signature of main, and each one
uses a separate pre-include module. That prevents color filters from
being able to reference sk_FragCoord (or coords passed to main) at all.
It also limits the versions of sample() that are exposed.

In the new world, an effect created for a specific stage of the Skia
pipeline can only be used to create instances of that stage (SkShader or
SkColorFilter). For now, SkRuntimeEffect::Make uses kRuntimeEffect,
which continues to be more lenient and allow creation of either shaders
or color filters from a single effect. After we migrate all clients, we
can deprecate and then delete that mode.

Bug: skia:11813
Change-Id: I0afd79a72beeec84da42c86146e8fcd8d0e4c09f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395716
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-15 13:30:59 +00:00
Mike Reed
be834bfa2c Fix up quotes and prototype decl from prev CL
Change-Id: I9546bef4d0bd1232aa1995b59e9a188198fcb75a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396819
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-04-15 12:38:29 +00:00
skia-autoroll
804c6ad292 Roll SK Tool from 182db4e6cd1b to e65260dcb444
https://skia.googlesource.com/buildbot.git/+log/182db4e6cd1b..e65260dcb444

2021-04-14 lovisolo@google.com Update BUILD files with Gazelle.
2021-04-14 kjlubick@google.com [gold] Change how ignore rules are applied periodically
2021-04-14 jcgregorio@google.com [docsy] Remove noindex
2021-04-14 borenet@google.com [cipd] Fix inverted file filter logic

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC jcgregorio@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

Tbr: jcgregorio@google.com
Change-Id: I455bf33886a972d05e4d044458d83f78ddc3a6da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397019
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 11:47:49 +00:00
skia-autoroll
3a3d457364 Roll Chromium from 576abd334c74 to b11e0710253c (429 revisions)
576abd334c..b11e071025

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 brianosman@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: brianosman@google.com
Change-Id: Id2f806731689ad777537d8ec8b7b59b95887c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396980
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 05:23:59 +00:00
skia-autoroll
0629f7a36b Roll ANGLE from 9e1ccb240f59 to 212849e9323a (5 revisions)
9e1ccb240f..212849e932

2021-04-14 gert.wollny@collabora.com Capture: store some array values as vector
2021-04-14 gert.wollny@collabora.com JsonSerializer: Sort group members before writing them out
2021-04-14 sugoi@google.com Allow Chromecast tests to run on SwANGLE
2021-04-14 lexa.knyazev@gmail.com Upgrade overlay fonts generator to Python 3
2021-04-14 jmadill@chromium.org infra: Remove osx_sdk cache.

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 brianosman@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: brianosman@google.com
Change-Id: Ic18db9e1bbc151c92d8bb439743357f530826bef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396982
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 05:11:49 +00:00
skia-autoroll
82332858cc Roll Dawn from f7d01e07cd84 to e87ea2bedc8b (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/f7d01e07cd84..e87ea2bedc8b

2021-04-14 bajones@chromium.org Update WGSL syntax for end2end tests
2021-04-14 bajones@chromium.org Fix new-style WGSL I/O with OpenGL backend
2021-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from ebc5bd4e28ea to f8313e5a6e13 (16 revisions)
2021-04-14 rharrison@chromium.org Support enabling/disabling toggles in unittests

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from ebc5bd4e28ea to f8313e5a6e13

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 alanbaker@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: alanbaker@google.com
Change-Id: Iccd957e5cb14d8f13903421bd9d9bf140a5519aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397017
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 04:59:59 +00:00
skia-autoroll
0b7a8b27f2 Roll SwiftShader from b71a5569b879 to f32791f5d53b (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b71a5569b879..f32791f5d53b

2021-04-14 swiftshader.regress@gmail.com Regres: Update test lists @ b71a5569

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 brianosman@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: brianosman@google.com
Change-Id: I416a673d2295221c8b04d87d6d58716f14bd1f44
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396981
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 04:59:49 +00:00
Greg Daniel
de4bbdb565 Move vulkan external commandbuffer logic from RT to GrVkFramebufer.
Bug: skia:11809
Change-Id: I7fa364f7472be35e02b06fa2f3fbb6d61a427f65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396156
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-04-14 21:42:58 +00:00
John Stiles
f1ce6faf29 Fix for loops with multiple init-variables in GLSL.
When a Block is detected in the for loop's init-statement, we now
synthesize a scope and write the init-statement directly above the for
loop and leave the for loop's init-stmt section empty.

Change-Id: I3e89c6a4328a79e49b8a19faae7975629cd0e152
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396820
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-04-14 21:40:19 +00:00
Chris Dalton
5c5f09bc28 Redirect fillRectWithEdgeAA to fillRectToRect when edgeAA==kAll
Bug: skia:11396
Change-Id: I37e7ed2902171bbf2d6d4aa9a7fd4047f1879758
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396297
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-14 21:15:38 +00:00
Chris Dalton
3e4ff84477 Revert GrOpsRenderPass::fUsesMSAASurface
Reverts all changes related to GrOpsRenderPass::fUsesMSAASurface.
These snuck in accidentally on a rebase and were not meant to land.

Change-Id: Idc0d7de6568eed69e705934f9b9d957edb2dd8fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396724
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-14 21:15:18 +00:00
Mike Klein
b91382ef3e remove SkNx::rsqrt()
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.

Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I7831640fa6c0f01540619fce3f509c8969aaaaff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396722
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-04-14 20:54:08 +00:00
John Stiles
a36fa6636b Fix for loops with multiple init-variables in Metal.
This is structured differently than the GLSL fix, due to the different
semantics of array-types in Metal.

Change-Id: I27ad11539bbbb96abb0686d5686b8fcd2f5dd6d1
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396916
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-14 20:47:48 +00:00
John Stiles
c5d860877e Add unit test for for-loop with multiple variables.
We lacked test coverage for this case, and this was broken when compound
VarDeclarations were split from one Statement into several.

Change-Id: I561b4d8acc0bfa01161d873a0c022ec58e316903
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396817
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-04-14 20:23:35 +00:00
Brian Salomon
5a32828e5e No VS specialization for identity or scale/trans in reduced shader mode
Modifies helpers on GrGLSLGeometryProcessor that insert, set, and make
keys for view/local matrix uniforms to not omit the uniform when
the matrix is identity or use a float4 when it is scale/trans. Always
uses a 3x3.

Bug: skia:11844
Change-Id: I0f25b60b46b8932d7e2cac4a50159d22b9cd84d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395656
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-14 20:09:09 +00:00
Mike Klein
940ec1ca0e remove unused SkNx::invert()
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.

Bug: skia:11861
Change-Id: Ifb87fc04a4ec866f84d7c2f2472c7f4b65661d28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396721
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-04-14 19:27:38 +00:00
Mike Reed
b3d14873d4 Demo different sampling options
Requested by blink team

Change-Id: I5b93c330341e8582bfc479bd830bb6dfa3489847
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396198
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-14 19:17:57 +00:00
Mike Reed
9983b1efd9 Expose drawGlyphs to CK
Precursor for https://skia-review.googlesource.com/c/skia/+/392837

Change-Id: I94cf555d3185e4e2689888a3ae2acf6f57a0fb65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396496
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-04-14 19:15:50 +00:00
Adlai Holler
8e2a8b202c Surface resource cache through cmdline flag
This lets us test out the memory-fallback code in the new
ops task reordering pathway on our bots.

Bug: skia:10877
Change-Id: Ic5662ef68e46b144eb2821687390c858d0056ba1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396157
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2021-04-14 18:49:48 +00:00
Stephen White
7bf4145094 Update Skia-Dawn for recent Dawn API changes.
Bug: skia:11855
Change-Id: Iccd1c8a382e3b43f6f51fa05a9352183d49fea66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396196
Auto-Submit: Stephen White <senorblanco@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-04-14 18:46:58 +00:00
Brian Salomon
354147a23c Replace GrConstColorProcessor with a runtime FP
Change-Id: Ie36ea4d5186f6cca341efc6300b813ec8255bdbb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388457
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-14 18:40:18 +00:00
Herb Derby
3c1ed9cbe2 add bounds generation code to SkGlyphRun
Change-Id: I29c269bce86cb50fea57d44d7760b60326aa56a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396436
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-04-14 18:05:18 +00:00
skia-autoroll
ec745c1818 Roll ANGLE from 68f1203d29c9 to 9e1ccb240f59 (9 revisions)
68f1203d29..9e1ccb240f

2021-04-14 jplate@google.com Workaround for missing include in OpenCL headers
2021-04-14 gert.wollny@collabora.com Capture: Fix storing strings instead of scalars
2021-04-14 syoussefi@chromium.org Revert "Roll vulkan-deps from c18d8cd5016c to a441440ae454 (23 revisions)"
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c18d8cd5016c to a441440ae454 (23 revisions)
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 77edad299907 to f32791f5d53b (3 revisions)
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from cb430282a083 to 21426fd08f99 (209 revisions)
2021-04-14 cnorthrop@google.com Capture/Replay: Support non-binary GLboolean
2021-04-14 cnorthrop@google.com Capture/Replay: Support glGetQueryiv
2021-04-14 cnorthrop@google.com Capture/Replay: Support glBufferStorageEXT

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 brianosman@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;skia/skia.primary:Build-Win-Clang-arm64-Debug-ANGLE
Tbr: brianosman@google.com
Test: Test: MEC for Dota Underlords
Change-Id: I263c528d83b301cd0a1a0bb346942eb118b0304d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396700
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 17:49:28 +00:00
skia-autoroll
e264ba393d Roll skcms from 411e27776f5c to 163066c2a041 (1 revision)
https://skia.googlesource.com/skcms.git/+log/411e27776f5c..163066c2a041

2021-04-14 mtklein@google.com B2A part 3, turn it on

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC brianosman@google.com,mtklein@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: luci.chromium.try:linux-blink-rel
Tbr: brianosman@google.com,mtklein@google.com
Change-Id: I629f77a5d49673edef2b1a67318fbcc45ac89225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396720
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 17:17:58 +00:00
Brian Osman
cdee120180 Cache runtime color filter alpha-unchanged flag on the effect
This reuses the work we're already doing to compute the one-at-a-time
program, and lets us share the result across color filter instances
created from the same effect.

When we added caching of the flag to filter creation, pinpoint found a
performance regression. I expect this to resolve that.

Bug: chromium:1187432
Change-Id: Ie4f8551fa432d298ce950cba8642b9de28f19b81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396758
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2021-04-14 14:35:28 +00:00
Dominik Röttsches
343c15a8f7 Additional trace events for SVG parse and render operations
Helpful for analyzing SVG parsing vs. rendering time.

Bug: skia:11851
Change-Id: I64e7002de1846e9c426d59382611e6b0902ada09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396776
Commit-Queue: Dominik Röttsches <drott@google.com>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-04-14 14:25:28 +00:00
John Stiles
0a0a50ae97 Use .dsl.cpp suffix for DSL C++ instead of _dsl.cpp.
This requires the GN processing to be slightly more complex, as GN has
no native support for more than one extension on a file.
Context: https://groups.google.com/a/chromium.org/g/gn-dev/c/RdEpjeYtb-4

Change-Id: I630511fca9eb291f0e414481ef439f18a8e1b72f
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396197
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-04-14 13:49:53 +00:00
Dominik Röttsches
4df814c2d6 [COLRv1] Special case a sequence of PaintGlyph + solid/gradient fill
In leaf ends of the COLRv1 DAG, if we encounter a PaintGlyph followed
by PaintSolid or Paint*Gradient, we can use the faster drawPath()
operation rather than the combination of clipPath() + drawPaint().

Special case this sequence in the code to optimize performance.

This improves average COLRv1 glyph drawing performance and makes it
faster than an identical set of SVG glyphs when running the
benchmark from [1] because it removes the clipPath() + drawPaint()
slowdown.

https://skia-review.googlesource.com/c/skia/+/395616.

Fixed: skia:11851
Change-Id: Id7037d40a6326d4792f04c5cc1245601d3706c78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396237
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-04-14 13:45:08 +00:00
Mike Reed
e0f3d612b0 Change GlyphIDArray to 16bit
pre-cl to prepare for more Glyph methods
e.g. https://skia-review.googlesource.com/c/skia/+/396496

Change-Id: I334f9d93ea2183a69f2d9087a783ad7d7277248b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396498
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-04-14 13:44:48 +00:00
skia-autoroll
93cb72eefe Roll SK Tool from e08f5bc2712e to 182db4e6cd1b
https://skia.googlesource.com/buildbot.git/+log/e08f5bc2712e..182db4e6cd1b

2021-04-14 borenet@google.com [cipd] Add Client.Create, use in build_and_deploy_cipd

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC jcgregorio@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

Tbr: jcgregorio@google.com
Change-Id: I64e33f35c466384da4cf50d5448cab98f7507f74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396696
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 13:05:48 +00:00
Dominik Röttsches
f37b23d2ef Extract configuring SkPaint from FreeType COLRv1 Paint info
Preparation for special casing the PaintGlyph + solid or
gradient fill case.

No functional changes.

Bug: skia:11851
Change-Id: I689444fb7178bcc9dc91fbb97454d21bf77eb064
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396236
Commit-Queue: Dominik Röttsches <drott@google.com>
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-04-14 07:44:08 +00:00
skia-autoroll
11b6b59188 Roll Chromium from f9ddd1cf5caa to 576abd334c74 (487 revisions)
f9ddd1cf5c..576abd334c

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 brianosman@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: brianosman@google.com
Change-Id: I6ce8cb63b602aa241683026b0b2914236f5ba4e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396616
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 06:02:48 +00:00
skia-autoroll
ff5b669802 Roll ANGLE from 15f4925ac3a6 to 68f1203d29c9 (27 revisions)
15f4925ac3..68f1203d29

2021-04-14 jmadill@chromium.org Disable location tags in test isolates.
2021-04-14 ianelliott@google.com Don't call {begin|end}DebugUtilsLabelEXT() when not enabled
2021-04-14 jmadill@chromium.org Add gclient variable to checkout traces.
2021-04-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from ab36e1e42f00 to cb430282a083 (277 revisions)
2021-04-13 jmadill@chromium.org infra: Remove unused debug/cpu properties from tests.
2021-04-13 gert.wollny@collabora.com FrameCapture: write the float values with high precision
2021-04-13 jonahr@google.com GL: Workaround to sanitize amdgpu renderer strings.
2021-04-13 ynovikov@chromium.org Remove obsolete Linux, Ozone and Fuchsia bots from CQ
2021-04-13 jplate@google.com Migrate CL entry points to libGLESv2
2021-04-13 m.maiya@samsung.com Vulkan: Fix a validation bug in glBeginTransformFeedback
2021-04-13 jmadill@chromium.org infra: Add angle_mb_config.pyl.
2021-04-13 jmadill@chromium.org infra: Move and check gn_isolate_map.
2021-04-13 syoussefi@chromium.org Vulkan: Remove special output of structs and keep them in AST
2021-04-13 geofflang@google.com GL: Support VAOs without native VAOs.
2021-04-13 geofflang@google.com Add the jdk dep when building standalone for Android.
2021-04-13 geofflang@google.com Reland "Vulkan: Add features to modify sampling parameters"
2021-04-13 syoussefi@chromium.org Translator: Track nameless interface block field indices in type
2021-04-13 syoussefi@chromium.org Vulkan: Use AST transformation for gathering default uniforms
2021-04-13 gert.wollny@collabora.com Capture/Replay: Serialize only a hash of the shader binary
2021-04-13 gert.wollny@collabora.com JsonSerializer: add method to store only a hash for vectors
2021-04-13 syoussefi@chromium.org Translator: Validate consistent variable references
2021-04-13 gert.wollny@collabora.com JsonSerializer: Fix rapidjson define usage
2021-04-13 gert.wollny@collabora.com Capture/Replay: Print context diff on failure when verbose
2021-04-13 cheryl.wei@arm.com Skip IOBlocksSeparate xfb test on Linux/ARM/Vulkan
2021-04-13 jplate@google.com Generate CL stubs in libGLESv2
2021-04-13 gert.wollny@collabora.com Capture/Replay: write context serializations on failure
2021-04-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 497fa2f8d899 to ab36e1e42f00 (427 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 brianosman@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: brianosman@google.com
Test: Test: ProgramPipelineXFBTest31.VaryingIOBlockSeparableProgramWithXFB*
Change-Id: I7268c1aa03e362b844b65702315f8d37a9fe477a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396617
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 05:01:48 +00:00
skia-autoroll
891500f9bc Roll SwiftShader from 77edad299907 to b71a5569b879 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/77edad299907..b71a5569b879

2021-04-13 srisser@google.com Implement depthBoundsTest
2021-04-13 capn@google.com Eliminate the OpenGL ES 1.1 implementation

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 brianosman@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: brianosman@google.com
Change-Id: I92c8cc9d8f2e491d3a3db732780ad0bfbb60eefb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396537
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 04:53:28 +00:00
skia-autoroll
9ef95bad46 Roll Dawn from e19004566464 to f7d01e07cd84 (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/e19004566464..f7d01e07cd84

2021-04-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c3bbb4d079e4 to ebc5bd4e28ea (3 revisions)
2021-04-13 shrekshao@google.com Remap BindGroup bindingIndex for vulkan backend when using Tint Generator
2021-04-13 jrprice@google.com Update examples for recent WGSL changes
2021-04-13 senorblanco@chromium.org OpenGL: DoTexSubImage() cleanup.
2021-04-13 senorblanco@chromium.org OpenGL: refactor all texture uploads.
2021-04-13 cwallez@chromium.org Remove usage of deprecated WGSL IO in perf/unit/whitebox tests
2021-04-13 cwallez@chromium.org Remove deprecated WGSL "-> void"
2021-04-13 yunchao.he@intel.com Fix a bug about depth/stencil formats validation

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from c3bbb4d079e4 to ebc5bd4e28ea

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 alanbaker@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: alanbaker@google.com
Change-Id: I37f9a39634f36cc068bb41b44480e350cb7cf843
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396538
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 04:53:18 +00:00
John Stiles
82ab3409f7 Fork CPPCodeGenerator into a DSL-based version.
The long term goal is for the DSLCPPCodeGenerator to replace the
CPPCodeGenerator entirely, but we will need both to coexist while DSL is
still under development.

Currently, the DSLCPPCodeGenerator is cloned from CPPCodeGenerator and
emits almost exactly the same code (it adds a comment at the top to
distinguish its output). Its output will change in followup CLs.

This CL also allows skslc to recognize the `_dsl.cpp` output suffix and
generate code using DSLCPPCodeGenerator instead of CPPCodeGenerator.
This allows test DSL FPs to be created for inspection.

Change-Id: If5136279c307ea53a9df3a292caa18344c1eb259
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396096
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-04-13 22:01:09 +00:00
Brian Osman
577c6067a1 Runtime effects: Support input color as a parameter to main()
For now, just bolt this onto the existing runtime effects. The next step
is to add dedicated modes to the compiler for shader vs. color filter.
Once we get there, we will be much more strict about main signature in
each mode (and start adding other per-mode error checking).

Bug: skia:11813
Change-Id: I27e27600209e9844ae107364baea2fb949b47c3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395838
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-04-13 21:55:18 +00:00
Brian Salomon
785a3262d1 Don't elide GrMatrixEffect if matrix is identity.
This ensures an effect setup code path that calls GrMatrix::Make()
doesn't produce an identity and non-identity shader variant.

Change-Id: I4d17395ed1b5bfd2bf9ceac68e85756c18eb2d2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396018
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-13 20:28:07 +00:00
Brian Osman
8ed8081e0c GrSkSLFP no longer needs a GrContext
Change-Id: Iee1ea7ee2d545138a8243c373f7a163f7120548d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396337
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-13 20:00:27 +00:00
Dominik Röttsches
ac04d95061 Factor out COLRv1 transforms to separate function
Preparation for optimizing the case of PaintGlyph + PaintSolid /
PaintGradient so that the remainder of the colrv1_draw_paint() function
can be turned into configuring an SkPaint.

Perform canvas CTM concatenation at the end of the function instead of
in each individual case as before.

No functional changes.

Bug: 11851
Change-Id: I04a77134d406f1625efebd5f623cfdbcca19b7cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396036
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-04-13 19:59:07 +00:00
Brian Osman
debcbbf6a8 Flip the arguments to sample() when passing both coords and a color
A subset of these signatures will be available to public SkSL, and
structured in a way that really pushes the coords as the primary
argument (and color as an optional one). In any case, I find this
ordering more natural.

Change-Id: I7b3bc962c5b305b9eeed1ae11ae1dc2ce7269364
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396021
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-13 19:06:07 +00:00
Brian Salomon
4bbb29070c Concatenate matrices when GrMatrixEffect wraps another GrMatrixEffect
Bug: skia:11844
Change-Id: I13165fb17b06371854a4911c5d91bf2415d4df2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396017
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-13 19:04:47 +00:00
Albert Chaulk
52b9e815eb Rework gaussian blur to take advantage of GPU sampling.
The GPU will provide a linear mix of two texels as part of sampling.
We do have to change sampling from nearest to linear, but cutting the number
of texture lookups in half should more than make up for that - texture
fetches tend to be slow operations and the hardware has been optimized for
linear texture fetches.

Bug: skia:11796
Change-Id: Id6fc3e3cdd2491c841b31fe97ca718d6916f27be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390796
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-13 18:17:07 +00:00
Brian Salomon
71283238d1 Reland "Remove code to push pixmaps to backend textures from GrGpu classes"
This is a reland of 45889d1269

Original change's description:
> Remove code to push pixmaps to backend textures from GrGpu classes
>
> Replace GrGpu::updateBackendTexture with narrower method that clears
> a backend texture.
>
> Creation of data for a solid color compressed texture is lifted up to
> GrDirectContext and goes through updateCompressedBackendTexture.
>
> Bug: skia:11786
> Change-Id: I1d617623df5e65686f30e57c361a64f78d77f7bd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392836
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: skia:11786
Change-Id: Ibf85794a33e68acb17f0fb704f6815cd6460b3f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396098
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-13 17:35:37 +00:00
Chris Dalton
2517ce39ca Add usesMSAASurface to GrMeshDrawOp::Target
Also switches GrFillRRectOp to call usesMSAASurface.

Bug: skia:11396
Change-Id: I66d0ee2c6dc76819efc0f3283f6e1a0af11f23f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395136
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-04-13 16:50:00 +00:00
Brian Salomon
34012d7eee Revert "Remove code to push pixmaps to backend textures from GrGpu classes"
This reverts commit 45889d1269.

Reason for revert: compressed texture assertion on D3D bot

Original change's description:
> Remove code to push pixmaps to backend textures from GrGpu classes
>
> Replace GrGpu::updateBackendTexture with narrower method that clears
> a backend texture.
>
> Creation of data for a solid color compressed texture is lifted up to
> GrDirectContext and goes through updateCompressedBackendTexture.
>
> Bug: skia:11786
> Change-Id: I1d617623df5e65686f30e57c361a64f78d77f7bd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392836
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com

Change-Id: Ie58f52245c44c77f09742b0cb590cc97b97e6e37
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11786
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396097
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-13 16:17:42 +00:00
John Stiles
3738ef531b Move code generators to codegen/ directory.
We are up to having seven distinct types of codegen, and will soon have
an 8th (DSL C++).

Change-Id: I6758328390c234ba1d5c30c118199dbc820af52a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395817
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-13 15:34:24 +00:00
Chris Dalton
da2b0f43a2 Move the decision for useMSAASurface to GrOpsTask
Bug: skia:11396
Change-Id: Ic0f7b2b43c7c383381b2447385019d50660eb53c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393777
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-13 15:31:14 +00:00
Florin Malita
8bad8f76c3 [androidkit] Register native methods explicitly
Use RegisterNatives() to bind native methods, instead of relying on
dynamic linker naming conventions.

Change-Id: I602f2efe73e3b9c3c7dfaf7af2307dcfb4cd935e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396016
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-04-13 15:29:19 +00:00