Commit Graph

45806 Commits

Author SHA1 Message Date
Hal Canary
3f7c49c96d skparagraph: fix another leak
Change-Id: I2394dfb10994ce055d87f881ea3bd3c88ab634d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258881
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-12-09 21:39:13 +00:00
Herb Derby
659e4092e3 Pass SkGlyphRunList to GrTextBlob::Make
Change-Id: I05703d1428be088b99b9016802b6e4cb9e6ca53d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258320
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
2019-12-09 20:40:37 +00:00
Herb Derby
15a1e98868 Cleanup GrTextBlob management code
* cacheBlob -> cachedBlob
* listPaint -> blobPaint
* variable contextPriv
* variable colorInfo
* color -> initialVertexColor
* filterColor -> drawingColor

Change-Id: I36c6f885f8a4d041d9b0d84f787999d5648675ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258807
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-09 20:39:12 +00:00
Jim Van Verth
9b2c06f2b5 Add persistent shader cache support to Metal.
Will store either SkSL or MSL shaders for now, until we can
find a way to store shader binaries.

Bug: skia:8243
Change-Id: I4debf553467bbcb4af57aeee96d05bc0a2f2b075
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/257687
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-12-09 20:35:33 +00:00
Hal Canary
189f30216b skparagraph: fix leak
Change-Id: Ieb13a5430ac78ba3d310331c72a96f0323e67d6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258811
Auto-Submit: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-09 19:33:56 +00:00
Brian Osman
c937bc5025 Improvements to uniform handling in runtime SkSL
- Support array uniforms
- Fix cases where the read head wasn't aligned in onSetData
- Default to float as the CType for half. (half4 was using
  PMColor, and other half types required a layout(ctype...)

Change-Id: I63cb1706071668de0ab80f3d812cd9ad29ff9651
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258808
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-09 17:57:05 +00:00
Hal Canary
425929c2f6 [minor] fix definition with different parameter names
Change-Id: If38451b11fad4973e033190bf1a436bbc576d2ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258810
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-12-09 17:53:35 +00:00
Kevin Lubick
99e9532050 [canvaskit] roll to 0.10.0
Change-Id: Id06aad4db1a5c827d70ae28be38709167ab749b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258815
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-12-09 17:51:23 +00:00
Herb Derby
7c7314ac29 Remove the CACHE_SANITY_CHECK system.
This was never test and turned on. I tried this a month ago
before the large changes, and it was failing then. I don't think
this tells us anything interesting, and fails if the blob is reused.

Change-Id: I8aadc2be7e6a17d255d681ed9fab04dcbc538991
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258809
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-09 17:47:55 +00:00
Brian Salomon
63be47c488 Add testCompile function to SkRuntimeColorFilterFactory for Chrome test
Change-Id: I31f5bf4257e8404f41b146b7e64169968d3cd291
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258804
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-12-09 16:59:34 +00:00
Florin Malita
870374825b [skottie] Explicit seek(0) in tools
With recent deferred image loading changes, Skottie relies on clients
to always/explicitly seek() before drawing a frame.

Some of the existing tools are still attempt to draw before the first
seek() fires (the animation callback is not guaranteed to occur before
the first draw).  For these, add an explicit seek(0) after loading the
animation, to ensure valid state.

TBR=
Change-Id: Ie453559af2d96560602b5e6508c25169dffb484d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258805
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-12-09 16:35:02 +00:00
Brian Salomon
7caa1371f3 Support mirror-repeat in GrTextureDomain
Bug: skia:9570
Change-Id: Iccfbb36b130ec2827164efda33470e2fa75ad833
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258638
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-12-09 16:15:33 +00:00
Mike Klein
67e55a2380 lift Wno-class-memaccess
Bug: skia:9674
Change-Id: I0ed1c171b0182d168798444657c200bfeec77514
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258269
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-12-09 16:12:23 +00:00
Mike Klein
9347bd8671 mark SkMD5->SkUUID copy as sane
GCC gets worried when we do things like memcpy() into non-trivial types
like SkUUID, but this one is pretty clearly fine.  (SkUUID is
non-trivial because of the implicit constructor that zeros it.)  We can
stifle the warning by casting the destination pointer to void*.

Change-Id: I6637964359f5d923fa97c4af2c608e61fdd1f457
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258448
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-09 15:38:32 +00:00
Kevin Lubick
62836903bc [canvaskit] Expose SkShader combiners
Change-Id: I84652fcec828fea55e2aa35567c054e9678ecf80
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258797
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-12-09 14:19:24 +00:00
Nigel Tao
3dc3121286 Add SK_WUFFS_FAVORS_PERFORMANCE_OVER_ADDITIONAL_MEMORY_SAFETY option
Bug: skia:8235
Change-Id: If38fd4b4bb87798cd933147187dc6fde7120a7ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258696
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-12-09 14:14:42 +00:00
Nigel Tao
f0148c4881 Release SkWuffsCodec two-pass memory earlier
Running "dm --match Animated Codec gif GIF Gif | grep RAM"...

Before:
120MB RAM, 120MB peak, 0 queued, 0 active:

After:
117MB RAM, 117MB peak, 0 queued, 0 active:

In comparison, when configured with "skia_use_wuffs = false":
108MB RAM, 108MB peak, 0 queued, 0 active:

Bug: skia:8235
Change-Id: Ib7b8ac9e224f501dbe3a5d3d82d953e57fd0e8f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258697
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2019-12-09 13:58:42 +00:00
skia-autoroll
9910d829ad Roll third_party/externals/angle2 11e6944ec5a8..27c89d2b5c56 (9 commits)
11e6944ec5..27c89d2b5c

git log 11e6944ec5a8..27c89d2b5c56 --date=short --first-parent --format='%ad %ae %s'
2019-12-07 syoussefi@chromium.org Vulkan: fix BufferVk::map() synchronization
2019-12-07 xinyi.he@arm.com Vulkan: Resize the result vector in EGLChooseConfigTest end2end test
2019-12-06 ianelliott@google.com Vulkan: Latest Intel driver fixes 2-sample standard positions
2019-12-06 ianelliott@google.com Fix multisample renderbuffer compliance (e.g. 3->4 samples)
2019-12-06 jonahr@google.com Also use GL_RENDERER to determine vendorID
2019-12-06 jmadill@chromium.org Revert "Re-land "Add new test runner harness.""
2019-12-06 josh@joshmatthews.net Add /APPCONTAINER linker flag to shared libraries in UWP builds.
2019-12-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader bbd0694f9ab2..b9f03f47d5f5 (18 commits)
2019-12-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src e72b61c7c20d..a3ee4384fb57 (2 commits)

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

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 djsollen@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: djsollen@google.com
Change-Id: If610da681ff31240f95c737f4235c75e22496259
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258776
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-09 04:42:47 +00:00
skia-autoroll
04c9e9bfc8 Roll third_party/externals/swiftshader b9f03f47d5f5..31916f494c2e (7 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b9f03f47d5f5..31916f494c2e

git log b9f03f47d5f5..31916f494c2e --date=short --first-parent --format='%ad %ae %s'
2019-12-07 digit@google.com [Subzero] Remove assert that breaks Shuffle operations.
2019-12-06 bclayton@google.com SpirvShader: Use struct for MemoryVisitor callback.
2019-12-06 bclayton@google.com Regres: Update dEQP to include fence timeout fix.
2019-12-06 bclayton@google.com Vulkan: Tidy VkCommandBuffer.cpp
2019-12-06 bclayton@google.com Reactor: Rename Blend() to Shuffle()
2019-12-06 swiftshader.regress@gmail.com Regres: Update test lists @ b9f03f47
2019-12-06 bclayton@google.com Reactor: Switch swizzles over to 16-bit hex codes

Created with:
  gclient setdep -r third_party/externals/swiftshader@31916f494c2e

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 djsollen@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: djsollen@google.com
Change-Id: I4935d6eb318cfcba021a1688eb764d9ef9be6fa9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258778
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-09 04:38:32 +00:00
skia-autoroll
9491aefa1b Roll ../src 36a639fc2d93..4e96c2bed379 (454 commits)
36a639fc2d..4e96c2bed3


Created with:
  gclient setdep -r ../src@4e96c2bed3

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 djsollen@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: djsollen@google.com
Change-Id: Ibc526304e68f9bff836ee01e47f6ebef39c4e39c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258777
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-09 04:37:42 +00:00
skia-recreate-skps
b60ec7f98b Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I0f920a066b8eaa15206f4257bb669630b1bba8de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258681
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-12-08 17:04:58 +00:00
Herb Derby
3d1a3bb4bb Fix fix chrome build bots
Change-Id: I4b1a2a9c89db59a6a1674388f9ab220a2ec9a61c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258656
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-06 23:54:55 +00:00
Ben Wagner
5da8e55bf4 Protect against invalid text.
SkFont::countText returns -1 to let the user know that the text was not
valid in the encoding specified. Users need to check for this and act
appropriately. Otherwise in debug and assert will probably fire and in
release unexpected things may happen.

Change-Id: I6ce91aa3d978fe5265b659f759b4023b81da261f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258639
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-12-06 23:34:36 +00:00
Herb Derby
99f228e285 Change from std to skstd for aligned_union_t
Change-Id: I67bd77cf072e203f23ffc49d591cb826fed598dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258640
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-06 22:17:15 +00:00
Herb Derby
cd498e151f Turn GrTextBlob vertices into actual structs
Change-Id: I588fbb4dd5ab5009d20df226063a984ecddb40ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258571
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-06 21:15:35 +00:00
Jim Van Verth
6c0f4c7d9f Fix typo in box-plane test.
Bug: skia:9698
Change-Id: I18d7c65b09c236ed0d23689c71af44e9a0414de8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258572
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-12-06 20:38:05 +00:00
Brian Osman
2715bf5b32 Switch to float vertex colors for wide color vertex attribs
Bug: chromium:985500

Change-Id: Iab73405728dc64c816f736e95b00a23e11fd4888
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258565
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-06 20:13:35 +00:00
Michael Ludwig
406172a617 Avoid implicit conversion back to int
Change-Id: I7aa85e470343825e6ab21ad210f50c2154f03ad0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258570
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-06 19:39:55 +00:00
Kevin Lubick
4b5b645049 [canvaskit] Add _RTShaderFactory for demos
Change-Id: Ib6dc1ff861efe4040508fea09c8a66d8d06db597
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258568
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-06 19:35:25 +00:00
recipe-roller
274a766baf Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/fe18a43d590a5eac0d58e7e555b024746ba290ad [git] Update bootstrapped git version to 2.24 to match fleet. (iannucci@chromium.org)
  https://crrev.com/6b52dc21e166c46707b4c8eb26c74c70d4f9977e Default to origin's default branch instead of always origin/master. (jyasskin@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib9132dc4932df03ab9a1f120fda2a31d6237b9ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258604
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-12-06 19:08:15 +00:00
Michael Ludwig
379e4961fd Merge consecutive entries that share proxy in bulk texture op
Previously, a batch draw that reused the same proxy consecutively
would create a ViewCountPair for each set entry, with its count == 1.
This turned into 1 draw per entry, so although there'd still be a single
pipeline, it didn't take advantage of merging those consecutive entries
into a larger draw to reduce draw count as well.

Initially, the thinking for the batch API was that it was for tilers
that used unique images for each tile or render pass. However, Chrome's
compositor is also responsible for rendering 9 patches as part of the UI.
These appear as 9 consecutive entries in the image set that all refer to
the same texture. With this CL the texture op will automatically merge
such occurrences into one ViewCountPair with a count of 9.

The bulkrect_1000_[grid|random]_sharedimage_batch leverages this case.
Before this CL its op would hold 1000 view count pairs that each drew
one quad. Now its op will hold 1 view count pair with a count of 1000.
On my linux workstation, the bulkrect_1000_grid_sharedimage_batch time
went from 377us to 206us. For reference, the _ref variant (which already
was a 1 view count pair with ct == 1000 due to merging of each op) has
a time of 497us. The difference between 497us and 206us represents the
overhead of calling through SkCanvas, op creation, quad optimization
analysis 1000x.

Interestingly the bulkrect_1000_random_sharedimage_batch benchmark did not
change on my workstation. My conjecture is that it is bottlenecked by
overdraw of the many overlapping rectangles.

Change-Id: Icc4195de0bcb2219f424fdaa79728281c0418558
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258418
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-06 18:49:35 +00:00
Mike Klein
456c405d4e simplify GrCCPerFlushResources::recordCopyPathInstance
I should start off with, I don't know this code.  I may have
misunderstood what it's trying to do.  Is it well tested?

GCC pointed out that using memcpy() with CopyPathRange is a bad idea
since CopyPathRange is non-trivial (has an sk_sp).

Further, this appears to be an archetypical dangerous way to use
memcpy(), because the source and destination alias each other.

Am I understanding it correctly that we want to put the new entry at
fCurrCopyAtlasRangesIdx, sliding everything already past that index over
to make room?

I've tried to replace all this with

    1) push_back() to add a slot
    2) move_backwards() to slide everything over to the right
    3) = {...} to fill in the slot.

Step 2) is a no-op when fCurrCopyAtlasRangesIdx was at the end already.

Then now that we're no longer calling emplace_back, the type
CopyPathRange now no longer needs an explicit constructor.

This is the sort of thing I'm going for here...

    ~ $ cat test.cc
    #include <stdio.h>
    #include <vector>

    int main(int, char**) {
        for (int i = 0; i <= 5; i++) {
            std::vector<int> v = {1,2,3,4,5};

            v.push_back(0);
            std::move_backward(v.begin() + i,
                               v.end() - 1,
                               v.end());
            v[i] = 42;

            for (int x : v) {
                printf("%d ", x);
            }
            printf("\n");
        }
        return 0;
    }
    ~ $ clang++ test.cc && ./a.out
    42 1 2 3 4 5
    1 42 2 3 4 5
    1 2 42 3 4 5
    1 2 3 42 4 5
    1 2 3 4 42 5
    1 2 3 4 5 42

... which I guess is a roundabout way of spelling "insert()".  :P

Change-Id: I0a445aafa9a786ef8044243c7432f8597353a6b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258454
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2019-12-06 18:47:55 +00:00
Jason Simmons
22bb52e95b Get baselines from cached default metrics if the text is empty
Change-Id: Ic04251d60d6d36f80c3e569312495190ba375d85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258488
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Jason Simmons <jsimmons@google.com>
2019-12-06 18:36:55 +00:00
Robert Phillips
576b6a19ad Add storage of programInfos to GrRecordingContext and SkDDL
This starts setting up to expose the GrProgramInfos to SkDDL clients.

Bug: skia:9455
Change-Id: Icd89ad88565d13890476463a919bbadcb9210b02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256229
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-12-06 18:34:05 +00:00
Herb Derby
a90476496b WS: reorder GrTextBlob struct and move all methods to .cpp
Move all the GrTextBlob methods to GrTextBlob.cpp. Under the old API
methods were called once per a glyphs so the methods were colocated
with the painter code. The APIs have changed to bulk, so the colocation
is no longer needed. In addition, the SubRun struct is going to move
from the GrTextBlob to the .cpp, so all these methods need to be together
soon.

Change-Id: I41124be0d5bcca29780be1a7f5c105268dadbe87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258566
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-06 17:46:05 +00:00
Robert Phillips
3968fcbc3a Pull creation of GrPipeline explicitly into the Ops' onExecute methods
This is a first step towards pulling the creation of the GrProgramInfos explicitly into the Ops' onExecute methods. We need this behavior so programInfo creation can be moved forward to onPrePrepare.

For now, pipeline creation is a static member on GrSimpleMeshDrawOpHelper so GrPipeline creation can be bottle-neckedOps for Ops that don't use the helper. In some future world CreatePipeline could become non-static to reduce some of the duplicate code.

Bug: skia:9455
Change-Id: I2d35dd223db824e84616f5df0f1dca34c1b6e412
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258003
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-06 16:33:15 +00:00
Mike Klein
a746fc19ce don't memset TriangulationVertex
GCC gets nervous here, and I think correctly so.  The type is
non-trivial (because the linked list has a constructor from its field
initializers) and we're bypassing that instead with a memset().  That'd
be _close_ to fine, but I think less clear than just =
TriangulationVertex{}.

What's really weird is that we're only zeroing it in Debug builds.
Might be we only added this memset() to stop assertions that the node
wasn't already in another linked list?

Anyway, even ignoring all that, this reads a lot more clearly to me.

Change-Id: Iacfe507be2a53807caf85d30f4c4712d8f6e86dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258449
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-12-06 16:08:45 +00:00
Ben Wagner
24ee4e0341 Add feature support to shaper.
Change-Id: Iab8bf9ab144d1661c0653b617ca394c3663ab35c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248861
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2019-12-06 14:42:31 +00:00
Nigel Tao
027f89be4d Allow one-pass SkWuffsCodec decoding
Prior to this commit, SkWuffsCodec always used what this commit calls
two pass decoding. After this commit, it can sometimes use one pass
decoding, which means we don't have to allocate that intermediate pixel
buffer. For the "droids.gif" example mentioned in a recent commit,
39da10b5 "Optimize SkWuffsCodec pixbuf zero-initialization", this means
that we allocate 19 MB less than we used to (2560 width x 1920 height x
4 bytes per pixel = 19660800 bytes).

Continuing with "droids.gif" and the image_decode_bench program from
39da10b5, the time taken per decode drops from 35.627ms to 28.655ms.

Bug: chromium:1023191
Bug: chromium:1023129
Bug: skia:8235
Change-Id: Ic4fd6bd2856493eaf777416326f39198aa8d97c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255956
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2019-12-06 14:38:01 +00:00
Eric Boren
46e2d8d4a1 [infra] Use "mod download" and "install", not "get" in chrome_release_branch
Change-Id: I96bc057df6b538138827fac7129126381038656a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258240
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2019-12-06 11:16:41 +00:00
skia-autoroll
aa4f7f5582 Roll ../src a25cc4cdcd47..36a639fc2d93 (535 commits)
a25cc4cdcd..36a639fc2d


Created with:
  gclient setdep -r ../src@36a639fc2d

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 bsalomon@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: bsalomon@google.com
Change-Id: I2c563c9540e68a321ea5d55fff67e9e611ef1c40
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258493
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-06 04:42:46 +00:00
skia-autoroll
c067d4d569 Roll third_party/externals/swiftshader dee5b5f3cf3f..b9f03f47d5f5 (14 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/dee5b5f3cf3f..b9f03f47d5f5

git log dee5b5f3cf3f..b9f03f47d5f5 --date=short --first-parent --format='%ad %ae %s'
2019-12-05 digit@google.com [vulkan] Add VK_SUBGROUP_FEATURE_ARITHMETIC_BIT support
2019-12-05 bclayton@google.com Vulkan: Optimize shaderClipDistance and shaderCullDistance
2019-12-05 bclayton@google.com Vulkan: Implement shaderClipDistance and shaderCullDistance
2019-12-05 paulthomson@google.com Regres: support GCOV_PREFIX for collecting coverage
2019-12-05 chrisforbes@google.com Regres: update testlists for recent deqp roll
2019-12-05 chrisforbes@google.com Regres: Adjust exit code handling
2019-12-05 digit@google.com [vulkan] Clarify configuration macros for external memory and semaphores.
2019-12-05 amaiorano@google.com ReactorUnitTests: add unit tests for intrinsics
2019-12-05 amaiorano@google.com SubzeroReactor: implement most missing intrinsics
2019-12-05 amaiorano@google.com SubzeroReactor: add stubbed coroutine support
2019-12-05 amaiorano@google.com Subzero: fix assert for sqrt of vector float types
2019-12-05 amaiorano@google.com Subzero: hack fix for assert(Dest->hasReg())
2019-12-05 amaiorano@google.com SubzeroReactor: fix assertion !isVectorType(Ty)
2019-12-05 amaiorano@google.com Subzero: fix assert when dumping unnamed constant

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

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 bsalomon@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: bsalomon@google.com
Change-Id: Ib5860e1daa516e1c13c6130696ffa84468d869f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258494
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-06 04:37:43 +00:00
skia-autoroll
f1ddd3778c Roll third_party/externals/angle2 5f857839b9ec..11e6944ec5a8 (8 commits)
5f857839b9..11e6944ec5

git log 5f857839b9ec..11e6944ec5a8 --date=short --first-parent --format='%ad %ae %s'
2019-12-05 jonahr@google.com Linux AMD crash when src blit region outside framebuffer
2019-12-05 ianelliott@google.com Vulkan: Implement multisample textures
2019-12-05 syoussefi@chromium.org Fix image/sampler uniform range in presence of atomic counters
2019-12-05 syoussefi@chromium.org Fix compute shared memory size validation
2019-12-05 syoussefi@chromium.org Vulkan: EXT_gpu_shader5 support: precise
2019-12-05 jmadill@chromium.org Re-land "Add new test runner harness."
2019-12-05 syoussefi@chromium.org Fix tests checking for major version > 3
2019-12-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src e58c080d4f02..0de87ee9a5bf (1 commits)

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

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 bsalomon@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: bsalomon@google.com
Change-Id: I45f956e54697b9c6ca559f28a8b635b74e6c0335
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258492
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-12-06 04:37:41 +00:00
Mike Klein
3e01360677 GCC gets worried when we memset Stats
... because it has a constructor, implied by all the initializers.
Luckily, that constructor does exactly what our memset() does.

Change-Id: Ibe538e9d840de9e6fd07d673783709df17b7b4fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258447
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-12-06 01:48:51 +00:00
Mike Reed
0483b46f11 fix make_path to not care about param-eval-order
Change-Id: I2ed4568768628fd1870acda0272056dc7e9920fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258516
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2019-12-05 23:05:11 +00:00
Florin Malita
cc92b27c78 [skottie] Optionally-deferred single-frame image loading
Normally, we load single-frame images upfront to avoid instantiating
an animator (as the image content is supposed to be constant).

In certain cases, deferred behavior is desirable (and the extra animator
overhead is minimal).

Generalize MultiFrameAnimator to handle single-frame assets, and add an
optional deferred mode for single-frame image loading
(Animation::Builder::Flags::kDeferImageLoading).

Bug: skia:9686
Change-Id: I4d166cd1a0bf34ccb8679e7553848c831a9193d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258000
Commit-Queue: Avinash Parchuri <aparchur@google.com>
Reviewed-by: Avinash Parchuri <aparchur@google.com>
2019-12-05 21:46:59 +00:00
Mike Klein
7c37f5a610 stifle GCC warning
GCC worries we're copying into a union of non-trivial types here, but we
know they're perfectly fine to memcpy() into.  We can quiet it down by
casting the destination to void*.

Change-Id: I742bcd264da861998fa1e5b7e8ad70aaafc0805d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258450
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-12-05 21:45:39 +00:00
Heather Miller
2e046a246b Update release notes files
Docs-Preview: https://skia.org/?cl=258417
Bug: skia:
Change-Id: I4716231ad260f2f7f29776f7cc455c6837ec6a43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258417
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>
Auto-Submit: Heather Miller <hcm@google.com>
2019-12-05 21:10:49 +00:00
recipe-roller
9931ef38c0 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/1f2a908debbd1f17a22d1a92f811871e348c7cd6 Update Tricium proto in recipes to contain showOnUnchangedLines field (ltina@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ifbb442b82c98cdce65b9fc3f6f86219c6794b26a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258441
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-12-05 20:51:33 +00:00
Greg Daniel
ed96bcaa63 Have GrLatticeOp use GrSurfaceProxyView.
Bug: skia:9556
Change-Id: Ibb0fe82edb9c28efd94cc599856ed9afe71dfd09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258416
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-12-05 20:37:33 +00:00