Commit Graph

49665 Commits

Author SHA1 Message Date
Mike Klein
a17799aa59 don't divide by zero when colorCount=1
This is my super lazy fix for the attached, completely unimportant
false-postive bug.  I haven't even paused to consider whether
colorCount=1 makes sense here.

An alternative is to use sk_ieee_double_divide() here to say "divide by
zero is fine, man".  But I kind of like this: wScale will hoist out of
the loop just fine, and it's nice to have the pos==nullptr checks near
each other.

PS3: yep, we can.

Bug: oss-fuzz:24242
Change-Id: I380ff2610405488cdaf475c34617bc9b4427ade9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304019
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-07-20 16:23:08 +00:00
John Stiles
af1103040e Factor out random fragment-processor generation into a helper class.
The helper class allows us to regenerate a "random" fragment processor
with the same seed as many times as desired. This lets us check the
`compatibleWithCoverageAsAlpha` optimization without needing to clone
the input FP; instead, we can actually generate the FP under test three
times in a row, with the same random seed.

In a followup CL (http://review.skia.org/303479/) we will also leverage
this helper class to regenerate the FP under test with the same random
seed, but with a different input.

Change-Id: I1cd83082a949d555f7898970c8a1cc3002818286
Bug: skia:10384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303657
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-07-20 16:22:58 +00:00
Adlai Holler
75c5168b41 Revert "Remove more GrContext imports & usage"
This reverts commit dd1395526d.

Reason for revert: Broke chrome roll

Original change's description:
> Remove more GrContext imports & usage
> 
> Sanity is coming soon!
> 
> Change-Id: I109ebeef9efd7dbf4d76a13e1c05df36d59affbc
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303661
> Commit-Queue: Adlai Holler <adlai@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=robertphillips@google.com,adlai@google.com

Change-Id: I20d770058d4b54193b6cd2fdc9ca5a1e09f84309
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304056
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2020-07-20 16:18:04 +00:00
Julia Lavrova
16fbc24772 Reland "ICU API: only in SkParagraph, simplified (relanding reverted)."
This reverts commit a30095d17c.

Reason for revert: Fixing the build

Original change's description:
> Revert "ICU API: only in SkParagraph, simplified (relanding reverted)."
>
> This reverts commit 7479eda3b6.
>
> Reason for revert: Breaking build
>
> Original change's description:
> > ICU API: only in SkParagraph, simplified (relanding reverted).
> >
> > Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/
> >
> > Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
>
> TBR=reed@google.com,jlavrova@google.com
>
> Change-Id: Idd4c41e22aa59e24bdbd07f2fa5e9258c1bbb7a7
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303358
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

TBR=reed@google.com,jlavrova@google.com

Change-Id: Iea5da4535ea2e388e8e632e6c556b66c8781631a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303377
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-20 15:26:31 +00:00
Adlai Holler
dd1395526d Remove more GrContext imports & usage
Sanity is coming soon!

Change-Id: I109ebeef9efd7dbf4d76a13e1c05df36d59affbc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303661
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-07-20 15:17:21 +00:00
Brian Osman
c59916a5cc SkVertices: Fix calculation of size needed for attr marker names
Bug: oss-fuzz:24246
Change-Id: Ib99a359b2f0c6ee55180734d6ae933b90e4f6ca8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303920
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 14:51:31 +00:00
Kevin Lubick
a6ab4b4f80 [canvaskit] Make effect deserialization on for everything but npm.
Change-Id: I7a60c55940d6d4704aa6d2161b0b8e93c9799285
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303597
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-07-20 14:35:18 +00:00
Kevin Lubick
d9926908b5 [canvaskit] Enable some options on npm build
This also makes the effects deserialization available via compile flag.

Change-Id: Ib6692499a619205ac480a8823ce7de12c0a5a723
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303596
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-07-20 14:35:18 +00:00
Greg Daniel
b7bcabb373 Fix vulkan unmapping of buffers during release.
When we free a vk buffer cause of memory budget, we need to make sure the
buffer is unmapped before calling free on it. However, the old code was
calling unmap even on cpu backed vk buffers. The cpu data gets uploaded
during the unmap call via a transfer buffer. This puts us in a death spiril
of creating and trying to free resources due to budget issues.

This hopefully fixes the attached chromium bugs. I am not sure why the
allocator was eventually crashing but before the crash we ended up in this
craziness of creating and destroying buffers. Maybe we ended un OOMing and
messing with the allocator? Anyways getting rid of the spiril hopefully
gets rid of the crash.

Bug: chromium:1107173, chromium:1106889
Change-Id: I225738df092b4cf5f8b3c97123e06d82358c9b8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303917
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-07-20 14:32:01 +00:00
Kevin Lubick
151d1aae27 [pathkit] Publish 0.7.0 to npm
Change-Id: I181e38e97888e9b319f62f1bbd6f4e832248d7dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303923
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 14:21:53 +00:00
Kevin Lubick
6249da8a83 [canvaskit] Publish 0.17.0 to npm
Change-Id: I764a1720a44440a9fb8de0c78ebec02808473876
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303922
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 14:10:45 +00:00
John Stiles
eac4ad754f Move test code out of header into CPP file.
This test code is templated, but not really generic (it's only meant to
work with two specific classes) so it doesn't need to live in a header.

Change-Id: I38d4f2cc9637207eca678fc81ff35ebbd7e69fce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303656
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-07-20 13:44:03 +00:00
Kevin Lubick
4c9046f9a9 Fix more swiftshader links
Follow up to https://skia-review.googlesource.com/c/skia/+/303599

Bug: skia:10510
Change-Id: I302860c137ea6b3b7c513b10145325f2726be10b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303919
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 13:37:05 +00:00
Michael Ludwig
ad4760a60e Respect SK_FORCE_8_BYTE_ALIGNMENT in GrBlockAllocator
We have unit tests for over-aligned allocation requests (which I know
caught bad addresses on other platforms, but my guess is that wasm's
malloc just so happened to produce pointers at 16 byte boundaries when
they were run). And in the wild, we only would ever allocate things on 8
bytes anyways, so it'd never trigger then. This is mostly to ensure that
if were ever to request something at 16bytes on wasm, the block
allocator's address padding will kick in and do the right thing.

Change-Id: I4b9e3ae5775e453cbbe05bebe4dbe69742a51354
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303658
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-07-20 13:26:21 +00:00
Robert Phillips
0c5bb2f776 Clean up some GrContext in tests
Change-Id: I58372d0691fe6a348288a6076d78d3455288192a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303660
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-20 13:09:51 +00:00
Kevin Lubick
3ba1777ceb [npm] Support npm publish flow
See go/npm-publish and b/160246223

Change-Id: I5a92a19ae6be814ca9a98679cfe39184f7cdb184
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303580
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-07-20 11:29:36 +00:00
skia-autoroll
1860aed643 Roll ANGLE from cc5513855cc5 to 08c4d09493bf (11 revisions)
cc5513855c..08c4d09493

2020-07-18 kbr@chromium.org Improve WebGL 2.0 readPixels support.
2020-07-17 courtneygo@google.com Vulkan: Fix RTs attached to textures with non-0 mip
2020-07-17 ianelliott@google.com Vulkan: FramebufferVk::clearImpl() break-RP fix
2020-07-17 lehoangq@gmail.com Metal: Enable dEQP GLES2 tests on AMD.
2020-07-17 jmadill@chromium.org Perf Tests: Make "offscreen" a common test param.
2020-07-17 xinyi.he@arm.com Fix ContextLostTest if robustness ext is disabled
2020-07-17 syoussefi@chromium.org Enable fixed swiftshader tests
2020-07-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 8726fda3f865 to 30aa06f22718 (5 revisions)
2020-07-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 7221ccf85e26 to 680c77fa6c81 (2 revisions)
2020-07-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 4f72970ed3e0 to f3cb1896971f (1 revision)
2020-07-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 7548cbeabfa7 to 412b1b7dd18c (3 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 robertphillips@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
Bug: None
Tbr: robertphillips@google.com
Change-Id: I02416843ca1e6ef3966ac9e5b4c13dff72b71d91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303877
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-20 05:26:01 +00:00
skia-autoroll
f54d50b060 Roll SwiftShader from 0e82586297a8 to ea6f21a052c9 (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/0e82586297a8..ea6f21a052c9

2020-07-18 capn@google.com Fix GN UBSanVPtr build of LLVM 10 JIT
2020-07-17 amaiorano@google.com Fix Win32 Chromium and ANGLE builds
2020-07-17 capn@google.com Remove Travis CI and AppVeyor build badges
2020-07-17 capn@google.com Update Kokoro's clang-format to version 10

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 robertphillips@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: robertphillips@google.com
Change-Id: I5055f39c989cb00684f3215ed2272cf07efd813a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303878
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-20 04:53:01 +00:00
skia-autoroll
76877fa7c6 Roll dawn from cb2938a1afd7 to d0dd661f1805 (14 revisions)
https://dawn.googlesource.com/dawn.git/+log/cb2938a1afd7..d0dd661f1805

2020-07-20 jiawei.shao@intel.com Implement buffer lazy initialization before CopyBufferToTexture()
2020-07-18 enga@chromium.org Guard [MTLDevice recommendedMaxWorkingSetSize] only on MacOS
2020-07-18 enga@chromium.org Add offset argument in BufferZeroInit mapping test
2020-07-17 cwallez@chromium.org Add offset and size to Get[Const]MappedRange.
2020-07-17 enga@chromium.org Call vkFreeCommandBuffers before destroying the vkCommandPool
2020-07-17 enga@chromium.org Remove depth sampling tests of non-normalized depth values
2020-07-17 enga@chromium.org Make common/ compile with Emscripten
2020-07-17 tommek@google.com Optimizing WriteTexture offset on Vulkan
2020-07-17 tommek@google.com Changing validation order for linear texture data
2020-07-17 hao.x.li@intel.com Query API: ResolveQuerySet
2020-07-17 jiawei.shao@intel.com Implement buffer lazy initialization before mapping
2020-07-17 tommek@google.com Optimizing WriteTexture row pitch on Vulkan
2020-07-17 cwallez@chromium.org Use MapAsync callback for server->client map callbacks.
2020-07-17 enga@chromium.org Vulkan: Fix MemoryServiceZirconHandle CreateImage

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 cwallez@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: cwallez@google.com
Change-Id: If71f74859782b7a2e892b304858ba2a36a332f1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303876
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-20 04:47:01 +00:00
Ravi Mistry
60bf6924b4 Output different error for when CL cannot be created in canary task driver
Bug: skia:10477
Change-Id: I46a48185977a409225583aea58f5fd31cf306d4c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303266
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2020-07-19 20:00:08 +00:00
skia-recreate-skps
324e3e521f Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I70ce06983c487c0531e36e742faad5489d951444
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303837
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-07-19 08:57:57 +00:00
Mike Klein
9662fd6cbd support 64-bit PixelFormats
RGBA U16/F16 diffs both look pretty much good here.

There are a few F16 diffs to look at, but those are likely one-off diffs
in effect implementation (e.g. SkRasterPipeline clamping somewhere we've
since decided to not clamp in the new SkVM implementation).

Last thing TODO is JIT 64-bit loads and stores to get this all to JIT.

Change-Id: Iadc65c1fc13c32d67d7c7243312d4c90d921dbde
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303272
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-07-17 21:56:23 +00:00
John Stiles
278b4a6b99 Fix swarming task failure on Debian10-Clang-arm-Chromebook-GLES.
Change-Id: Idf969d9f3bcf5522fcc5c66642a056617eb62daa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303664
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>
2020-07-17 21:42:13 +00:00
Mike Klein
6732da0b21 add 64-bit load/store ops
This adds load/store ops for 64-bit values, with two load64 instructions
returning the low and high 32-bits each, and store64 taking both.

These are implemented in the interpreter and tested but not yet JIT'd
or hooked up for loading and storing 64-bit PixelFormats.  Hopefully
those two CLs to follow shortly.

Change-Id: I7e5fc3f0ee5a421adc9fb355d0b6b661f424b505
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303380
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-07-17 21:26:53 +00:00
Chris Dalton
bde4bb7efe Implement indirect draws with ANGLE's multi draw extension
This also brings indirect draw support to CanvasKit because Emscripten
will expose WEBGL_multi_draw through these extensions.

Bug: skia:10419
Change-Id: Icea3fedb846bb932e7d19f8f4a1e5646e25d4c2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303263
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-07-17 21:18:53 +00:00
Nathaniel Nifong
a237f9ec12 Run both puppeteer tests in a WebGL 1 and 2 configuration.
Change-Id: Iaaef7d1ac96eec1813d3b0340ecabcbec90e3923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300982
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-17 20:36:37 +00:00
Mike Klein
d58e01b6fc support 16161616 in fm
Everything was pretty much already plumbed through using
SkRasterPipeline, with a few key connections made here.

This support is mostly useful for differentially debugging my CLs
stacked on top of it.

Change-Id: I9c2f2ea6cd8890c057890409f21c7698857c599a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303651
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-07-17 20:35:33 +00:00
Herb Derby
c1cde36a9b split glyph and geometry data apart
The next subclass I make will have a different description of the
glyphs position and bounds. Split the glyph info from the VertexData
and put it into its own class called GrGlyphVector.

Change-Id: Idaf9e914700832baf14bdb3bd1d8e8aeb8c63243
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303589
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-07-17 20:25:33 +00:00
Joe Gregorio
c57327d2ed Use the new swiftshader bucket.
Bug: skia:10510
Change-Id: I91d447fd053a4e4dde22ce2db22905edb0dd2f8c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303599
Auto-Submit: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-17 20:17:43 +00:00
Mike Klein
21e82889d6 use precise is-normalized test in gm/p3.cpp
Change-Id: I894658882da92cb221be8355c8b1c7590c09895f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303650
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-07-17 19:58:33 +00:00
Robert Phillips
fe4b481324 Clean up some uses of GrContext in tests
Change-Id: Ic1f2f4edb8bfa27fa28f5da22575e1280a51d37b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303641
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
2020-07-17 19:55:23 +00:00
John Stiles
2a138b9a99 Update GrMorphologyEffect to take an inputFP.
Change-Id: I97ae97519db798bd85eb6104d3950cea61e625d2
Bug: skia:10217
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303477
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-07-17 19:44:23 +00:00
John Stiles
6609cb6452 Update existing TestCreate methods to honor the inputFP in the TestData.
This can be leveraged to build chains of test FPs in a controlled way.
At present, `inputFP` it is never set to anything other than null; as
such, all calls to TestCreate continue to set a null inputFP
(exactly as they do already).

Change-Id: I0d74f37a076ca338e44ff734816299beb1667c26
Bug: skia:10384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302668
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-07-17 19:41:34 +00:00
Nathaniel Nifong
d0c9d0cb7f Replace arcTo with three functions for it's overloads.
I found this to be about 15% faster on a benchmark designed to stress these functions.

https://github.com/flutter/flutter/issues/61305

Change-Id: I9dc2a8396e54c55464bb71562de0c07c853e829c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303024
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-07-17 19:08:03 +00:00
Chris Dalton
89883ca559 Bind deferred vertex buffers during GrGLOpsRenderPass::onDrawIndirect
When GrGLCaps::drawArraysBaseVertexIsBroken() is true, we have to stash
the vertex buffer away and defer binding until the draw call occurs. We
were forgetting to do this last-minute binding during onDrawIndirect.

Change-Id: I19a93cf2bd6d559e762e7ea1bca33a5e0fd4f03d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303584
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-07-17 19:04:23 +00:00
Florin Malita
f2d90659ff [skottie] Fix analytical mask fill type
Sksg::Merge needs to preserve the fill type of the first path appended
in the stack.

Theoretically, one could append multiple paths with different fill types
using sksg::Merge, but in practice Skottie should never do that (append
mode with invertible shape only used for the very first mask in a stack).

TBR=
Change-Id: Ie9ac9187cc1c8baaae2bef439313a7700407f04a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303582
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-17 18:35:23 +00:00
John Stiles
e911ce525b Add an input FP to the GrProcessorTestData.
This will be leveraged in followup CLs.

Change-Id: Iccc6071867f0044fc3ab935fc18ac38dea0ebac2
Bug: skia:10384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303585
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-07-17 18:27:53 +00:00
Robert Phillips
057c33fe63 Clean up some GrContext uses in the GMs
This is part of the effort to replace GrContext with the GrDirectContext/GrRecordingContext pair.

It also tries out, a bit, the context naming proposal (i.e., rContext and dContext).

Change-Id: Ib4d9881f820a7f8a8c525eba7448b1015526400c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303627
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-17 17:11:20 +00:00
Adlai Holler
9f1760bf73 Remove two unused deprecated SkImage functions
This is part of a larger effort to clean up the SkImage API and require
users to provide the direct GPU context for manipulating GPU images.

Bug: skia:104662
Change-Id: Ic7fd675a6ec09f001266fd79efdf084368ab6cd5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303630
Commit-Queue: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-07-17 17:02:10 +00:00
Nathaniel Nifong
2d7afd4824 fix heap-buffer-overflow by not returning string from reportBackendType
Change-Id: I2dbced29f9d43454e35e3ff9fbbb97d11fef29a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303623
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-07-17 16:42:30 +00:00
Brian Osman
f4e5737825 fuzz: Add 'loops' option to run multiple times
Helpful for bugs that require evolving global state over multiple
iterations, or bugs that don't repro 100% deterministically.

Change-Id: I4499a8783b00ccd079b79219cad2a4d45e467777
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303581
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-07-17 16:23:30 +00:00
Weston Tracey
cd6411a009 Add updated provisioning_profile_ios that includes iphone 11s.
Change-Id: I50d3ffce133fb7bb93c40d73df23fc8121aa3318
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303579
Commit-Queue: Weston Tracey <westont@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Auto-Submit: Weston Tracey <westont@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-07-17 16:15:30 +00:00
Herb Derby
c24a6afdb0 create SkAtlasSubRun API subclass SkMaskSubRun
The SkMaskSubRun is just a temporary name while I pull out the
different subclasses.

Change-Id: I363742a98a0596ba3d282b918cc0492ab1e0e5d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303357
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-17 15:55:20 +00:00
Herb Derby
cae31f8b8f make prepareGrGlyphs private
Change-Id: I0927b8a468188b358a87f362a528fe32cf9aec71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303577
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-17 15:18:20 +00:00
Herb Derby
b228a72cf5 remove unused calls: grGlyph and quadOffset
Change-Id: I7e9b1c18edf5b0cf9ccaae3be948aff96d865abd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303598
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-07-17 14:15:00 +00:00
Michael Ludwig
c97ebe06dc Sneak per-GrBlockAllocator user-controlled metadata into head block
Previously, the blocks owned by a GrBlockAllocator provided block-level
metadata that users could control to track within a block. For types
like GrTAllocator (and a collection coming down the pipe), they need
to store a total count of allocations.

Since GrBlockAllocator is max-aligned, having them hold on to a single
extra int adds 4 to 12 bytes of padding for 8 and 16byte aligned
platforms. But, the old Block size already has 4 bytes of extra padding
since it was 28 bytes packed. This had been allowed to be allocation
data, for requests that were 4-byte aligned or less.

In practice, I think it's better to use that space for allocator-level
metadata so that a total count, or other high-level data, can be
packed into the data already held by GrBlockAllocator. Now GrTAllocator
instances should be 8-16 bytes smaller on those same platforms. Also
no longer writing into the struct-padded nether-realm, which is probably
just a good thing on principle.

Also cleans up how GrTAllocator's push_back() and emplace_back() are
tested to make sure all options are clearly covered.

Change-Id: If1da29132f3ec8df7a4056fcd834f760eb4693f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303267
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-07-17 13:31:10 +00:00
skia-autoroll
9acf5844ca Roll ANGLE from 6fe87f4a226d to cc5513855cc5 (14 revisions)
6fe87f4a22..cc5513855c

2020-07-17 cclao@google.com Vulkan: Add cache for default uniform descriptor set
2020-07-16 cclao@google.com Vulkan: add Buffer/Texture/ImageViewSerial  class
2020-07-16 timvp@google.com Remove ProgramPipelineState::mHasBeenBound
2020-07-16 cclao@google.com Vulkan: Let all shader stages share one buffer for default uniform
2020-07-16 jmadill@chromium.org Perf Tests: Fix trace test calibration.
2020-07-16 xinyi.he@arm.com Vulkan: Fix capturing arrays using VK_EXT_transform_feedback
2020-07-16 lehoangq@gmail.com Metal: fix max point size and RGB565 renderbuffer bug.
2020-07-16 lehoangq@gmail.com Metal: Prevent vertex shader's inactive varying from being removed
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 4c33fb0d3dba to 7221ccf85e26 (5 revisions)
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 1de497cc50ab to 0a8f44c514ce (1 revision)
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from b481744aea1e to 4f72970ed3e0 (1 revision)
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from 521eaacef67a to d093d9723b7c (2 revisions)
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from d8f34456c819 to dd3511549b18 (1 revision)
2020-07-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 04c82ec6f36f to 7548cbeabfa7 (100 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 nifong@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
Bug: None
Tbr: nifong@google.com
Test: Test: CQ
Change-Id: I276990747cc966c3848456deee087c15bdb39d81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303408
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-17 05:25:05 +00:00
skia-autoroll
14d6552dd5 Roll SwiftShader from 0a8f44c514ce to 0e82586297a8 (5 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/0a8f44c514ce..0e82586297a8

2020-07-17 amaiorano@google.com Fix MacOS Chromium build (source_set dupe)
2020-07-16 amaiorano@google.com Fix MacOS (darwin) Chromium build on LLVM 10
2020-07-16 amaiorano@google.com Added Fuchsia support to LLVM 10 update script and updated configs
2020-07-16 amaiorano@google.com Use LLVM 10 instead of 7 for GN builds
2020-07-16 cwallez@chromium.org Fix B<->T copies of multiple array layers and unpacked rowpitch

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 nifong@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: nifong@google.com
Change-Id: Ifa65924ea22e40dc99a329a0e9acd7e2b71138e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303409
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-17 04:53:55 +00:00
skia-autoroll
65a88eb4be Roll dawn from 1b9b53a39576 to cb2938a1afd7 (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/1b9b53a39576..cb2938a1afd7

2020-07-17 enga@chromium.org D3D12: Bucket descriptor allocation by powers of two
2020-07-16 enga@chromium.org Add missing headers to BUILD.gn and CMakeLists.txt
2020-07-16 enga@chromium.org Validate 1D texture bindings cannot be multisampled
2020-07-16 cwallez@chromium.org dawn_wire/server: Use MapAsync to do Map[Read/Write]Async
2020-07-16 cwallez@chromium.org DawnTest: Use MapAsync for expectations.
2020-07-16 cwallez@chromium.org Roll third_party/swiftshader/ ad65826a2..e8dd233c7 (10 commits)
2020-07-16 tommek@google.com Implementing Queue::WriteTexture in Vulkan

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 cwallez@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: cwallez@google.com
Change-Id: I1739ad404957a1418f7d04d991dc21392b5e4dfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303407
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-07-17 04:48:35 +00:00
Chris Dalton
d72cb4c076 Mixed samples/conservative raster cleanups for tessellation
Tessellation previously worked under the assumption that conservative
raster was always supported if we were using mixed samples, but this
is not the case in ANGLE. This CL checks for support before using
conservative raster and also disables the atlas if kAlpha8 does not
support MSAA.

Bug: skia:10419
Change-Id: I0bf429b3b7bb3f0e67c46552f08c689b7b816b57
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303480
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-07-17 00:39:03 +00:00