Commit Graph

47236 Commits

Author SHA1 Message Date
Mike Klein
6b48e62ed2 remove unused mutate() apis
Whether we should shrink at the end of mutate() turns out to be moot.

:)

Change-Id: Ic29df5734e3057f165f695b2d03f8e7eb0eeb4dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277299
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-16 20:44:36 +00:00
Herb Derby
3b946c1618 Check fullness and purge on every strike lookup
In the old code, the cache was checked and perged on every reattach
of a strike. That was left out of the multi-threaded code. Add the
check and purge back in to maintain cache size.

* Removed minimum cache size from setCacheSizeLimit.

Bug: skia:10046
Change-Id: I2438c83f04b6da8133c161a29604c3c3d7f58cd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277066
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-16 19:59:56 +00:00
Mike Klein
a30aeae875 impl SkTDynamicHash with SkTHashTable
The only vaguely tricky thing to adapt from templating on T to T*.

Don't think there's a need for the unit tests now right?

Bug: skia:9703
Change-Id: Ib8fcebd9e0e35bea5ef23e6fd5962654a28d587b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277214
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-16 19:59:26 +00:00
Chris Dalton
aa0e45c232 Add pass-through helper methods from GrOpFlushState to GrOpsRenderPass
Change-Id: Ifa18e909978367a4502dbf6b35a62a437e83b5c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276842
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-16 19:53:26 +00:00
Mike Klein
04ef810839 port GrProxyProvider off SkTDynamicHash::Iter
This was the remaining tricky use of Iter,
removing elements from the table while iterating.

In this case, since we're removing everything, it looks
unnecessary... we can just clear the table when we're done.

Bug: skia:9703
Change-Id: I5333d9fade1e52bd82b5d9c6ac494aad068d5dd2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277207
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-16 18:39:10 +00:00
Eric Boren
457c1eb913 [infra] Minor refactor for recipe properties in gen_tasks
Change-Id: I76fb1e5da5dd162e8245758ccae8effac2f21c0d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277179
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
2020-03-16 18:29:50 +00:00
Kevin Lubick
7957d53c80 Revert "Allow null rect for saveLayer"
This reverts commit f2e9709266.

Reason for revert: Breaking the build

Original change's description:
> Allow null rect for saveLayer
> 
> Bug: skia:10043
> Change-Id: Ia049e72565810e1f72500141678e166027230535
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277097
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

TBR=kjlubick@google.com,dnfield@google.com

Change-Id: I0aae159380cbdfd4ead0f8e3e9c9de284c2dc103
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10043
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277182
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2020-03-16 18:08:45 +00:00
Dan Field
3d44f73b64 Sweep gradient support for CanvasKit
Change-Id: I04af9ea7aa6c6f95de6ff1eaf5ee41d59df7f09e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277059
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-03-16 16:57:03 +00:00
Dan Field
f2e9709266 Allow null rect for saveLayer
Bug: skia:10043
Change-Id: Ia049e72565810e1f72500141678e166027230535
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277097
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-03-16 16:46:12 +00:00
Chris Dalton
eb694b767c Rename GrMesh to GrSimpleMesh
Change-Id: Ib164ff3ec41cb798385f2feea8ad09c037dbc30d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276837
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-16 16:18:30 +00:00
Heather Miller
6c138716e9 fix up release notes file for milestone 83
Bug: skia:
Change-Id: Ia83f2b69948eeb747ecc171fb8677c8e22cc8ba7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277176
Reviewed-by: Heather Miller <hcm@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Heather Miller <hcm@google.com>
2020-03-16 15:14:30 +00:00
Chris Dalton
37c7bdda22 Remove GrMesh::setVertexData
Fuses the relevant functionality into the set() calls.

Change-Id: I3a764219425c35967942366c60a6b9ee6ec48e11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276836
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-16 14:32:50 +00:00
Chris Dalton
56c09f0d44 Rearrange Vulkan asserts for samplers
Change-Id: I6bbe834f0cf1ad725e1f3843b23fde958c749d8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277060
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-16 14:30:00 +00:00
Mike Klein
cff6396875 begin refactoring SkTDynamicHash and SkTMultiMap
The biggest mismatch between these and SkTHash{Map,Set,Table}
is the old ones provide Iter and ConstIter, the new ones foreach().

This CL,

   - adds foreach() methods to the old types,
   - replaces all uses of ConstIter with foreach(),
   - replaces most uses of Iter with foreach(),

I'm leaving one spot using Iter to walk the table and remove its
elements for its own CL... it'll be a little more complicated to get
that right.

From there it should be straightforward to turn SkTDynamicHash
into a thin wrapper over an SkTHashTable.

Bugs: skia:9703
Change-Id: Ia6ba87c35b89585c42b5b9f118f4cbf3abd04f0d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277098
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-16 14:06:30 +00:00
Mike Klein
16701eecd5 Shrink SkTHashTables
Since we grow when size >= 3/4 cap, shrink when size <= 1/4 cap?

Keeping a minimum table size of 4 preserves the invariant that tables
with non-zero capacity always have at least one empty slot, allowing
find() to determine a particular key is not in the table by stumbling
upon that empty slot on the key's hash chain.  That's effectively what
we're asserting at SkTHash.h:84.

Bug: skia:10041
Change-Id: I4247e4ff155fd11561086547525354365bc69f55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277096
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-16 13:38:10 +00:00
skia-autoroll
0557f6a48f Roll ../src 907b992f87c0..6d7621abf90d (422 commits)
907b992f87..6d7621abf9


Created with:
  gclient setdep -r ../src@6d7621abf9

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 egdaniel@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/+/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
Bug: None
Tbr: egdaniel@google.com
Change-Id: Idbfba6f05cd5873ab3c82eb81745329a1bfcd393
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277120
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-16 13:33:06 +00:00
skia-autoroll
ac3e76571a Roll third_party/externals/angle2 6963f58c7678..cb9a86a9d867 (13 commits)
6963f58c76..cb9a86a9d8

git log 6963f58c7678..cb9a86a9d867 --date=short --first-parent --format='%ad %ae %s'
2020-03-15 ynovikov@chromium.org Skip SwANGLE GLES31 tests which crash with 32-bit Subzero.
2020-03-15 jmadill@chromium.org Format perf_test.cc.
2020-03-15 jmadill@chromium.org Temporarily disable optimizations in angle_perftests.
2020-03-15 jmadill@chromium.org Trace Tests: Rebase path to relative dir.
2020-03-13 m.maiya@samsung.com EGL: populate EGL_NATIVE_VISUAL_ID values for Android
2020-03-13 ynovikov@chromium.org Revert "Skip crashing dEQP-GLES3.functional.samplers.*_tex_3d.* on SwANGLE"
2020-03-13 lexa.knyazev@gmail.com Implement ScanForward64 on 32-bit platforms
2020-03-13 timvp@google.com Add ANGLE_FOR_ANDROID_TOAST_MESSAGE to AndroidManifest.xml
2020-03-13 jmadill@chromium.org Vulkan: Timestamp internal RenderPasses in perf tests.
2020-03-13 jmadill@chromium.org Update export_targets to fix presubmit on Windows.
2020-03-13 courtneygo@google.com Vulkan: Disable robustness support
2020-03-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 16ae92a4ee52..18daa81e3d3d (15 commits)
2020-03-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src 29adf277cb19..f1d9f12a19de (2 commits)

Created with:
  gclient setdep -r third_party/externals/angle2@cb9a86a9d867

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 egdaniel@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian9-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
Bug: None
Tbr: egdaniel@google.com
Change-Id: I2c8d687cdc0ab3c8993ce706bf9591916b2399f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277119
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-16 13:33:05 +00:00
skia-autoroll
f94815068d Roll third_party/externals/swiftshader 18daa81e3d3d..3a50a43df988 (14 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/18daa81e3d3d..3a50a43df988

git log 18daa81e3d3d..3a50a43df988 --date=short --first-parent --format='%ad %ae %s'
2020-03-14 bclayton@google.com SpirvShaderDebugger: Implement scope nesting
2020-03-13 sugoi@google.com Compile Vulkan library with Subzero in Chromium
2020-03-13 bclayton@google.com SpirvShader: Silence warnings of unexpected opcodes
2020-03-13 amaiorano@google.com Subzero: hide dependency on Marl
2020-03-13 amaiorano@google.com BUILD.gn: add missing dependency onto marl for SubzeroReactor
2020-03-13 capn@google.com Consistently use TRUE/FALSE in CMakeLists.txt
2020-03-13 capn@google.com Exclude all static libraries from "all" build target
2020-03-13 amaiorano@google.com Subzero: replace Win32 fibers with Marl for couroutines
2020-03-13 bclayton@google.com SpirvShaderDebugger: Add flag for printing opcodes as they're executed
2020-03-13 bclayton@google.com SpirvShaderDebugger: Make Function extend Scope
2020-03-13 bclayton@google.com SpirvShaderDebugger: Add string helper for debug kinds
2020-03-13 bclayton@google.com SpirvShader: Implement OpenCLDebugInfo100DebugInfoNone
2020-03-13 bclayton@google.com SpirvShaderDebugger: Stub UNIMPLEMENTED() opcodes
2020-03-13 bclayton@google.com SpirvShader: Implement OpenCLDebugInfo100DebugInlinedAt

Created with:
  gclient setdep -r third_party/externals/swiftshader@3a50a43df988

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 egdaniel@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: egdaniel@google.com
Change-Id: Ibec65fee84b8412f10357623d35c54490855a873
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277118
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-16 13:28:02 +00:00
skia-recreate-skps
9f5ed1cd7f Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Id02753698624d21e34a296dc3e0f1c43ebeefc2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277104
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-03-16 13:28:00 +00:00
Mike Klein
276a78573e rearrange to emphasize most salient params
Move (x,y) up front for shaders, Color for color filters.

I did think about wrapping the other params in a struct, but
for now I still find it less error prone (while admittedly
more tedious) to have all those params in my face when adding,
removing, or refactoring parameters or effects.

Change-Id: I5e124f1ecea3eff9366872d5e77ddfbadc0302e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277111
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-03-15 20:14:58 +00:00
Mike Reed
9a4ac6e865 add programs to compose, lerp and luma colorfilters
Small diffs in affected gms, but doesn't seem wrong.

Change-Id: I6577943f924d682e9ad4ff195ab98ca2168fd527
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277064
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-15 19:29:40 +00:00
Mike Reed
7e0a7dbd22 colorfilter's program returns a color
Change-Id: I4fd4b7b2c18327f484119d4977ff362602679ffe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277063
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-15 13:31:50 +00:00
Mike Reed
6352f00c59 change onProgram to return its color, or an invalid-color if failed
If we like this, will follow with a CL to change colorFilters to take
a color and return a color.

Change-Id: Ibd99d18dd7c21fa592500bf371d94a90a01f48b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277062
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-15 12:40:57 +00:00
Mike Reed
190b6e54b0 skvm for compose shaders
Also, move blendmode helpers into SkBlendModePriv.h

Change-Id: I2695c9dabd255b58616e4febb3e53190267cdb3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/277061
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-14 21:35:10 +00:00
Derek Sollenberger
320c32bfa3 Remove mips workarounds for Android.
see
https://android-review.googlesource.com/c/platform/external/skia/+/1252938
for additional context.

Change-Id: I345b5020f81b2193ff92e2704d2050fb5c19a766
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276917
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2020-03-13 18:46:26 +00:00
Jim Van Verth
0bd00f438e Reland "Clear out atlases if they haven't been used in a while."
This is a reland of 79007c9309

Original change's description:
> Clear out atlases if they haven't been used in a while.
> 
> This will stage out atlas pages one at a time with an interval of
> 256 flushes between them. Also removes the last page to help
> conserve memory if text or other atlas-using systems are not in use.
> 
> Bug: 1058905
> Change-Id: I8717621033068d0e24da944356d91b0f35e5373b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276764
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Herb Derby <herb@google.com>

Bug: 1058905
Change-Id: I25b0037cb1608ae0bda641e0d0588afaf3dd47e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276960
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-13 17:42:06 +00:00
Sean Gilhuly
2cdad969e8 SkiaDawn: Early out in recordProgramInfo
The Dawn backend also requires a live render target to create a
GrProgramDesc.

Bug: chromium:1059890, chromium:1059939
Change-Id: I48490de3aa7dcbe653c3911b269304cb13bb15b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276985
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-03-13 17:20:16 +00:00
Florin Malita
e05b1b7229 [svgdevice] Handle text path effects
(follow-up to https://skia-review.googlesource.com/c/skia/+/276576)

Force drawing of text as path in the presence of path effects.

Additionally, ensure that all glyph runs are rendered as a single path
(instead of one path per run).

Change-Id: Ibc69b0f93ff09af349f3376f79ed3fce18151a14
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276956
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-03-13 16:19:06 +00:00
Jim Van Verth
f9329afa27 Revert "Clear out atlases if they haven't been used in a while."
This reverts commit 79007c9309.

Reason for revert: MSAN and fontregen issues

Original change's description:
> Clear out atlases if they haven't been used in a while.
> 
> This will stage out atlas pages one at a time with an interval of
> 256 flushes between them. Also removes the last page to help
> conserve memory if text or other atlas-using systems are not in use.
> 
> Bug: 1058905
> Change-Id: I8717621033068d0e24da944356d91b0f35e5373b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276764
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Herb Derby <herb@google.com>

TBR=jvanverth@google.com,herb@google.com,robertphillips@google.com,backer@google.com

Change-Id: I5aa4326b490b66a4bb272069487311fc622a9711
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1058905
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276959
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-03-13 15:23:35 +00:00
Chris Dalton
0f9c2c975f Remove instanced draws and simplify GrMesh
Change-Id: I053a72892542be96fbab261eeb7fbfac76eecf01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276817
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-13 15:16:35 +00:00
Mike Reed
bc45f28328 remove legacy virtual from enforcer
Change-Id: I1dfb6b98c237ff916f478c39d925e775c2c1bb74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276957
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-03-13 14:57:03 +00:00
Jim Van Verth
79007c9309 Clear out atlases if they haven't been used in a while.
This will stage out atlas pages one at a time with an interval of
256 flushes between them. Also removes the last page to help
conserve memory if text or other atlas-using systems are not in use.

Bug: 1058905
Change-Id: I8717621033068d0e24da944356d91b0f35e5373b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276764
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-13 14:44:15 +00:00
Bryce Thomas
75e29072e7 Implement support for path effects in SkSVGDevice backend.
Bug: NONE
Change-Id: I1559d05a0c126b1c7aa72296f2fdd8f6c93fb46b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276576
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-03-13 13:20:05 +00:00
Robert Phillips
a9e28af8d0 Make AAFlatteningConvexPathOp surface its programInfos at record time
This is, somewhat, interesting bc it has >=1 mesh.

Bug: skia:9455
Change-Id: I608856f469e145057e4170e4bf045f6669825522
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276646
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-03-13 13:05:26 +00:00
Mike Reed
ba96256581 hide getters so we can change the internals of SkVertices
Bug: skia:9984
Change-Id: Id8d8d568fb29b006d19079248c579282207279c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275692
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-03-13 12:08:12 +00:00
skia-autoroll
224cd4d6da Roll third_party/externals/angle2 2e5bd9b1e658..6963f58c7678 (14 commits)
2e5bd9b1e6..6963f58c76

git log 2e5bd9b1e658..6963f58c7678 --date=short --first-parent --format='%ad %ae %s'
2020-03-12 cnorthrop@google.com Capture/Replay: Update TRex captures
2020-03-12 julien.isorce@chromium.org Reland "Instantiate rx::DisplayEGL when device type EGL is selected"
2020-03-12 ianelliott@google.com Vulkan: Handle VK image being both a GL texture and GL image
2020-03-12 cnorthrop@google.com Capture/Replay: Add Manhattan to TracePerfTest
2020-03-12 liberato@chromium.org Add fp16 support to KHR streams for DX11.
2020-03-12 geofflang@google.com Rename ANGLE_defaults to ANGLE_java_defaults.
2020-03-12 amy.liu@arm.com Passing covgl/covgl
2020-03-12 tobine@google.com Vulkan:FramebufferVk cache draw buffer handling
2020-03-12 cnorthrop@google.com Vulkan: Remove unused atomic counter builtins
2020-03-12 geofflang@google.com Remove android:forceQueryable from the ANGLE.apk manifest
2020-03-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 2ff8b6a6f4d5..be663d752e45 (8 commits)
2020-03-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src e2176c91b23c..9b620aa0c12d (2 commits)
2020-03-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src 136207a63495..29adf277cb19 (1 commits)
2020-03-12 shrekshao@google.com Speculative fix: getProgramiv always returns a valid program

Created with:
  gclient setdep -r third_party/externals/angle2@6963f58c7678

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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian9-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
Bug: None
Tbr: brianosman@google.com
Change-Id: I44e73a5ce8d11528133de0a5646af58b543c3b10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276843
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-13 05:02:21 +00:00
skia-autoroll
6dbd838afa Roll ../src 5309fd86e6da..907b992f87c0 (527 commits)
5309fd86e6..907b992f87


Created with:
  gclient setdep -r ../src@907b992f87

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/+/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
Bug: None
Tbr: brianosman@google.com
Change-Id: Icf89c65622a6d491449de50ec560a80faba5044c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276844
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-13 04:56:51 +00:00
skia-autoroll
8ef1b85e62 Roll third_party/externals/swiftshader 7e857092052e..18daa81e3d3d (9 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7e857092052e..18daa81e3d3d

git log 7e857092052e..18daa81e3d3d --date=short --first-parent --format='%ad %ae %s'
2020-03-12 sugoi@google.com Allow 3D filtering in the Blitter
2020-03-12 capn@google.com Fix building with latest LLVM
2020-03-12 capn@google.com Document single-level YCbCr image assumption
2020-03-12 capn@google.com Clarify the PointCoord calculation
2020-03-12 capn@google.com Remove unnecessary point setup calculations
2020-03-12 capn@google.com Don't needlessly build LLVM
2020-03-12 bclayton@google.com Update Marl to 64d123947
2020-03-12 bclayton@google.com VkImage: Implement BC7 texture format
2020-03-11 bclayton@google.com Update Marl to 94a361cf0

Created with:
  gclient setdep -r third_party/externals/swiftshader@18daa81e3d3d

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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: brianosman@google.com
Change-Id: I8ed220b1e1f3cabd9c4708869d3bf3fb31847db5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276856
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-03-13 04:32:22 +00:00
skia-recreate-skps
4d4369414d Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I950cf69cd83bcd9e629feabfc2d8083865c2e761
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276838
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-03-13 00:25:31 +00:00
Mike Klein
c2da769716 dot for JIT
That's what we care about at the moment.

Change-Id: I71a6538492d1d26be12a8d7a02c9d47667813e92
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276752
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-12 21:24:52 +00:00
Mike Klein
5caf7dee25 restore Op::round
While I think trunc(mad(x, scale, 0.5)) is fine for doing our float
to fixed point conversions, round(mul(x, scale)) was kind of better
all around:

   - better rounding than +0.5 and trunc
   - faster when mad() is not an fma
   - often now no need to use the constant 0.5f or have it in a register
   - allows the mul() in to_unorm to use mul_f32_imm

Those last two points are key... this actually frees up 2 registers in
the x86 JIT when using to_unorm().

So I think maybe we can resurrect round and still guarantee our desired
intra-machine stability by committing to using instructions that follow
the current rounding mode, which is what [v]cvtps2dq inextricably uses.

Left some notes on the ARM impl... we're rounding to nearest even there,
which is probably the current mode anyway, but to be more correct we
need a slightly longer impl that rounds float->float then "truncates".
Unsure whether it matters in practice.  Same deal in the unit test that
I added back, now testing negative and 0.5 cases too. The expectations
assume the current mode is nearest even.

I had the idea to resurrect this when I was looking at adding _imm Ops
for fma_f32.  I noticed that the y and z arguments to an fma_f32 were by
far most likely to be constants, and when they are, they're by far likely
to both be constants, e.g. 255.0f & 0.5f from to_unorm(8,...).

llvm disassembly for SkVM_round unit test looks good:

~ $ llc -mcpu=haswell /tmp/skvm-jit-1231521224.bc -o -
	.section	__TEXT,__text,regular,pure_instructions
	.macosx_version_min 10, 15
	.globl	"_skvm-jit-1231521224"  ## -- Begin function skvm-jit-1231521224
	.p2align	4, 0x90
"_skvm-jit-1231521224":                 ## @skvm-jit-1231521224
	.cfi_startproc
	cmpl	$8, %edi
	jl	LBB0_3
	.p2align	4, 0x90
LBB0_2:                                 ## %loopK
                                        ## =>This Inner Loop Header: Depth=1
	vcvtps2dq	(%rsi), %ymm0
	vmovupd	%ymm0, (%rdx)
	addl	$-8, %edi
	addq	$32, %rsi
	addq	$32, %rdx
	cmpl	$8, %edi
	jge	LBB0_2
LBB0_3:                                 ## %hoist1
	xorl	%eax, %eax
	testl	%edi, %edi
	jle	LBB0_6
	.p2align	4, 0x90
LBB0_5:                                 ## %loop1
                                        ## =>This Inner Loop Header: Depth=1
	vcvtss2si	(%rsi,%rax), %ecx
	movl	%ecx, (%rdx,%rax)
	decl	%edi
	addq	$4, %rax
	testl	%edi, %edi
	jg	LBB0_5
LBB0_6:                                 ## %leave
	vzeroupper
	retq
	.cfi_endproc
                                        ## -- End function

Change-Id: Ib59eb3fd8a6805397850d93226c6c6d37cc3ab84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276738
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-03-12 21:10:34 +00:00
Chris Dalton
bb7684276a Migrate GrMeshTest to the new bind/draw API
Also adds a drawIndexPattern() helper method to GrOpsRenderPass, and
starts testing a base index with drawIndexedInstanced.

Change-Id: I3fbb1b5a2a1012a4fcbe126c54ddbc8c17ce80b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276739
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-03-12 19:24:07 +00:00
Mike Reed
019385eb1d remove LerpRed shader
Seems very one-off (esp. given SkSL). No one seems to use it.

Change-Id: Iaded54c5b4183fa4aa9c318b5dbe1d410cca539a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276617
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-12 18:37:17 +00:00
Mike Reed
5929535315 add draw-via-serialize mode to viewer
'$' lets you see what the serialized version looks like. Helps diagnose
failures in dm/fm

Change-Id: I0c3acdeb6e7f170f5caeba1c0516b449eb7402ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276756
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2020-03-12 18:36:27 +00:00
Robert Phillips
2669a7b74a More programInfo cleanup
This CL moves the boiler-plate implementation of onPrePrepareDraws up to GrMeshDrawOp. This, unfortunately, required the addition of a 'programInfo' virtual but that may go away in the future.


The only GrMeshDrawOp-derived classes left are:
  AAHairlineOp - which has 3 programInfos
  AAFlatteningConvexPathOp - which has >=1 mesh (but just 1 programInfo)
  GrAtlasTextOp - which has inline uploads
  SmallPathOp - which, maybe, has inline uploads
  TextureOp - which has chaining

Bug: skia:9455
Change-Id: Id10f70e764054134751545ad38b99f0a0778de76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276642
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-03-12 18:29:37 +00:00
Mike Reed
84a9eb5e6b add gm for clipShader in a layer
Change-Id: I3435ccbf0f391a08dfde9d0cb40ce797144c6b9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276616
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-03-12 18:20:30 +00:00
Brian Osman
334380e342 More GrDrawVerticesOp cleanup, to reduce redundant state
Directly compute things like stride and vertex attribute types from the
underlying state, rather than trying to keep two tiers of flags
correctly in sync.

With these changes, createProgramInfo can be pushed to onExecute.

Change-Id: I0b021b3880a92e5782f821ebe95ac5aee288f7bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276643
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-03-12 16:08:50 +00:00
Robert Phillips
6941f4a01d Update three GrMeshDrawOps to surface their programInfos at record time
The lucky three are:

    GrShadowRRectOp
    PrimitiveProcessorTest::Op
    VertexColorSpaceBench::Op

Bug: skia:9455
Change-Id: I7133be41e62aa183b8395f2402f52a6a88191aca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276482
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-03-12 15:40:11 +00:00
Florin Malita
6509bc715f [skottie] Cleanup VectorValue use
Replace with Vec2Value where appropriate.

TBR=

Change-Id: I530b451d6d858621615e33791e610a562d9643ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276644
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-03-12 15:35:20 +00:00
Michael Ludwig
b0cee9bf9a Remove drawBitmap et al. from SkDevice
SkCanvas keeps its non-exotic drawBitmap calls for now but they
immediately wrap the bitmap in SkImage::MakeFromBitmap. This will
add a copy for mutable bitmaps, but this can be worked around by using
images directly (preferred), or marking the bitmap as immutable. In
practice, mutable bitmaps do not seem to be widely used so this is
deemed acceptable for now.

Several GMs are updated to mark the bitmaps as immutable in order to
avoid pixel churn in how CPU vs. GPU mipmaps are generated. As we move
towards explicit mipmap generation, this distinction will become less
critical, so I'm just avoiding it for now. See skbug.com/9337 for mipmap
proposal. The image diffs encountered in this CL directly related to
generating mipmaps for bitmaps already cached on the GPU vs. not on the
GPU yet.

It was decided to copy if mutable vs. never copying the bitmap because
it preserves the image guarantees the devices and canvas' rely on,
and imposing the need to inspect an image for mutability is undesired.

Bug: skia:10037, skia:9337
Change-Id: If152e6cae1e155ccf6bd2cd755895f3c7a0135a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276004
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-03-12 15:28:00 +00:00