Commit Graph

54600 Commits

Author SHA1 Message Date
skia-autoroll
a4d85e708b Roll skcms from 4e8691e28194 to 5b3a2ab8be02 (1 revision)
https://skia.googlesource.com/skcms.git/+log/4e8691e28194..5b3a2ab8be02

2021-03-31 mtklein@google.com dump src->xyz transform as %.2f

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

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

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

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Tbr: mtklein@google.com
Change-Id: I4a3ef0bd1e5f687d2ec6fb1929fdffcfc22e72bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391337
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-31 19:44:12 +00:00
Greg Daniel
0a6cd5a352 Switch vk command pool reset mutex to use SkMutex and guard it.
The original code here used a std::recusive_mutex. Looking at the code
I don't see today how any of the code that grabs the mutex could call
back into a function that grabs the mutex again on the same thread.
Maybe this was more of an issue back when this was originally added?
Regardless today it should be safe to just use an SkMutex.

Change-Id: I81c8ea3bf5b2defe893dd9fff7a6a2eda10cace8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391256
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-03-31 19:21:42 +00:00
Joe Gregorio
10d45b867f [docysserver] Move to the Hugo/Docsy set of files as the primary documentation.
Bug: skia:11799
Change-Id: Ic9e9bc6a91cf1a7c9166ca1eae4aec6b00eb5e2a
Docs-Preview: https://skia.org/?cl=391436
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391436
Reviewed-by: Heather Miller <hcm@google.com>
2021-03-31 19:16:09 +00:00
Chris Dalton
c44612bffc add M1 GPU bots
There's no GPU dimension on these bots yet,
but we can use the CPU to constrain it just fine.

Bug: skia:11334
Change-Id: I2d0928ced7a9145a7160a40ea2a5bd2b1601a01b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390797
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-03-31 19:11:22 +00:00
John Stiles
6f67278428 Enable the inliner on Intel Windows GPUs.
Disabling it has caused regressions in some test slides.
Example: http://screen/5dpPVnJukBAcyKb

Change-Id: If302ffd39cd28215c557bbba444d9c8669dea1c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391298
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-31 18:26:49 +00:00
John Stiles
e1182785be Create a diagonal-matrix Constructor class.
This constructor takes a single argument and splats it diagonally across
an otherwise-zero matrix. These are also sometimes referred to as a
uniform-scale matrix.

Change-Id: I1ed8140f55f5cad4029015807b220d6475401daa
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390716
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-03-31 18:00:42 +00:00
John Stiles
9f5ad49ec1 Add new Rehydrator enum value for diagonal-matrix Constructors.
These changes cause massive ripple effects in the dehydrated code, so
it's been split out from http://review.skia.org/390716 to its own CL.

Change-Id: I5053ce3cf44ab5050c3a77ac764b4e9c8bfc00d5
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390896
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-03-31 18:00:05 +00:00
Chris Dalton
8ed7a8d1c6 Extract a GrVertexChunkArray class with a builder
This will be used by the new stroke tessellator. All the other
tessellators should start chopping and chunking too. That will allow us
to quit cropping paths if we are afraid they might need more segments
than are supported.

Bug: chromium:1172543
Change-Id: I30f0ebb581f56cac099d8c05e0e181c4657c3db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390096
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-31 17:27:52 +00:00
Ravi Mistry
7724291b6e Add new motionmark SKPs
Bug: skia:11817
Change-Id: Ibd940ffa904171e43377b0852375d835e59bc230
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391076
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-03-31 16:37:02 +00:00
Ravi Mistry
f29c646ccf Replace desk_intelwiki.skp with desk_gujuratiwiki.skp
Bug: skia:11819
Change-Id: I504a58f5d1da51cf715b73efef44d00c0edef5e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391196
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-31 16:36:37 +00:00
skia-autoroll
94dc3b709b Roll skcms from b9593d4e39ea to 4e8691e28194 (1 revision)
https://skia.googlesource.com/skcms.git/+log/b9593d4e39ea..4e8691e28194

2021-03-31 mtklein@google.com B2A part 1, types and parsing

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

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

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

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Tbr: mtklein@google.com
Change-Id: I52d7f3b5ca56be4bb6c8a4955b70dc09bf63ad96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391159
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-31 16:31:52 +00:00
John Stiles
759bbf7b60 Run the inliner on GLES devices only.
We've found that the inliner only gives tangible gains in draw
performance on GLES devices. (See go/optimization-in-sksl-inliner)
On other devices, we can skip it and still get the same draw performance
regardless. A caps bit has been added to indicate a device that will
benefit from inlining, and the inliner is now disabled on platforms that
don't set this bit.

Change-Id: I61dfafd7e919deabf81529cea832bb11496410cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390300
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-31 16:18:42 +00:00
John Stiles
22a54543a8 Add support for constant-folded array inequality checks.
This isn't something I expect to occur often. However, we have always
reported that array-ctors with constant arguments are compile-time
constants, and `compareConstant` is supposed to be implemented for all
compile-time constants.

Change-Id: I0bbfe2a3f78c29c14f69c3b6faca71067a0e45c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391116
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-31 15:50:02 +00:00
Chris Dalton
d4756598de Use 4x msaa for all dm testing
Bug: skia:11334
Change-Id: I57343e80cc8b39644c5f189aeee0da229517a726
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390576
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-31 15:48:42 +00:00
John Stiles
8037c9e2ed Add test for folding of == and != for arrays.
We don't directly support this today at all. In practice, though, simple
constant arrays are detected as equal in the constant-folding pass
because they hit the `x == x` self-equality check (using
`IsSameExpressionTree`).

This does not work for our inequality tests, though, so those do not
fold.

Change-Id: I6730a9a2d1da9ac613ee58889d651f3ff65b1d2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391057
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-31 15:32:03 +00:00
Mike Reed
6e7d2b3b72 Add drawPatch to canvaskit
Change-Id: I66214398f020ab6e824c5509babe5107f6b46d7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388837
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-03-31 15:28:21 +00:00
Brian Salomon
a6ca0b1354 SkAuto[S]TMalloc only for trivially constructible/destructible.
Prevents introduction of a bug when modifying a type that is used
with one of these containers in such way that makes the use
unsafe.

Change-Id: I959e6f3bfbc9664a6b0ced636f5ae6cbe72eee1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390676
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-03-31 13:55:45 +00:00
skia-recreate-skps
75dd17f714 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I44ca42c525ffa3d464cb3afa567624e792195a0f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390920
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-03-31 08:29:13 +00:00
skia-autoroll
f55532e5e6 Roll Chromium from d6926860006d to de65860ffd71 (501 revisions)
d692686000..de65860ffd

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 mtklein@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: mtklein@google.com
Change-Id: Ib2118cc5358099e36823808004e4caf939f25738
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390956
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-31 04:55:33 +00:00
skia-autoroll
7fcee4ec79 Roll Dawn from d7d98509da5c to 864a36474205 (28 revisions)
https://dawn.googlesource.com/dawn.git/+log/d7d98509da5c..864a36474205

2021-03-31 hao.x.li@intel.com Suppress OcclusionQueryTests.QueryWithScissorTest on Intel
2021-03-30 bclayton@google.com ShaderModuleD3D12: Remap binding points
2021-03-30 bclayton@google.com Disable SlantedPlaneMipmap for D3D12 + tint
2021-03-30 bclayton@google.com Disable test for D3D12 + tint which use runtime sized arrays
2021-03-30 rharrison@chromium.org Add using Tint for binding reflection
2021-03-30 bclayton@google.com Disable BindGroupTests for D3D12 + tint
2021-03-30 senorblanco@chromium.org Roll third_party/angle/ 0c9f22d3a..9a025fd44 (23 commits)
2021-03-30 bclayton@google.com ComputeSharedMemoryTests: Add missing access qualifier
2021-03-30 bclayton@google.com Disable SampledAndWriteonlyStorageTexturePingPong for D3D12 + tint
2021-03-30 bclayton@google.com Disable tests for D3D12 + tint that fail due 'undeclared identifier'
2021-03-30 bclayton@google.com Disable TextureFormatTest for D3D12 + tint
2021-03-30 bclayton@google.com Disable SizedArrayOfStruct tests for D3D12 + tint
2021-03-30 bclayton@google.com Disable MultipleWriteThenMultipleReadTests for D3D12 + tint
2021-03-30 bclayton@google.com Disable VertexFormatTest for D3D12 + tint
2021-03-30 bclayton@google.com Disable DepthStencilSamplingTest for D3D12 + tint
2021-03-30 bclayton@google.com Disable TimestampComputeShader test on D3D12 + WARP + Validation
2021-03-30 bclayton@google.com Disable EncodeUBOOverflowMultipleSubmit test on D3D12 + WARP
2021-03-30 bclayton@google.com Disable SlantedPlaneMipmap test on D3D12 + WARP
2021-03-30 bclayton@google.com Disable SwitchedViewHeapResidency test on D3D12 + WARP + Validation
2021-03-30 bclayton@google.com Skip ClearTwiceInD3D12ReadbackInD3D11 for WARP + validation
2021-03-30 bclayton@google.com Disable ArbitraryBindingNumbers on D3D12 + WARP
2021-03-30 bclayton@google.com Disable MultisampledRenderingTest tests on D3D12 + WARP
2021-03-30 aleksi.sapon@builditsoftware.com Fix crash from async callback calling Queue::Submit
2021-03-30 bclayton@google.com Disable DepthStencilStateTest tests on D3D12 + WARP
2021-03-30 bclayton@google.com Skip ColorStateTest.* for D3D12 and WARP
2021-03-30 bclayton@google.com Skip ClearInD3D12ReadbackInD3D11 for WARP + validation
2021-03-30 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 01ac3dd9176d to 02571d15e882 (6 revisions)
2021-03-30 cwallez@chromium.org Propagate errors from Tick in backend::Queue::SubmitImpl

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 01ac3dd9176d to 02571d15e882

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

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: enga@google.com
Change-Id: I83808183d2b4065370d3384cffb1e8e799f0f2b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390937
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-31 04:39:33 +00:00
Brian Salomon
5392c94fe8 GrConvertPixels takes pixmaps
Add GrCPixmap, a GrPixmap but with const void* instead of void*. Share
impl via template base class GrPixmapBase.

Change-Id: I7dfdf24a73c1bc8557ff7b90f93a9399da2f3f75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350022
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-03-31 00:23:17 +00:00
Herb Derby
48ad43ab0a remove unused functions from glyph run classes
Change-Id: I7f49789a9409a2edad496fef2e80e2884e160f91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390478
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-30 22:29:48 +00:00
Greg Daniel
e9cbec62d6 Grab mutex before reseting vk command pools.
We have another thread that may be adding pools back to the available
array the same time we are resetting it. Make sure we grab a mutex before
doing the reset.

Change-Id: I59c6acf7b654d326241f097fc995e17418d5c2e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390480
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-03-30 22:13:16 +00:00
Jim Van Verth
0ec30bbc77 Add compute methods to GrD3DDirectCommandList.
This adds the compute binding and dispatch methods to the command list.
For the moment we'll assume we're using root signature layouts that are
similar to the graphics setup -- this can be tweaked later. D3D has
separate bindings for graphics and compute in the same command list, so
the tracking for the active binding has been separated as well.

Change-Id: I5bec820d1fd17bb72a09366c354a7fa77325c6e8
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390516
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-03-30 20:08:56 +00:00
Julia Lavrova
2381c0b420 Handle the case when one grapheme includes more than one run.
Bug: skia:11743
Change-Id: Id53350845254905be1c5fcb0c2b1f757f5b6319f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389930
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-03-30 19:58:16 +00:00
Greg Daniel
428523f9a4 Add supported for releasing backend api objects when purging gpu resources.
This specifically implements this in the vulkan backend to free up
command buffers/pools when the client is trying to free up as much gpu
memory as possible.

Change-Id: I1fecf55c80fe46cfc1d064f9dfbeb36b27c217d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390479
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-03-30 19:20:36 +00:00
Herb Derby
4f8e4fd821 hoist finite font check to glyph run creation
Change-Id: I64d2c6d1716f7eb9b2d7e081bda15924d919389d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390477
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-30 18:28:36 +00:00
Kevin Lubick
ca709aa82b [canvaskit] Update to 0.25.1
Built at revision 2ee4d7a7f5

Change-Id: Idfa16920b5262f75ac4db18705e8849c91f3c91d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390407
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-03-30 18:14:07 +00:00
Chris Dalton
9b5b7db793 Move GrStrokeTessellator into its own header file
Simple refactor to make things reusable for the next non-hardware stroke
tessellator.

Change-Id: I0898b54a616e60f0475ac74cbd6f518e8696e0e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390078
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-30 18:00:16 +00:00
Ben Wagner
7d8cdd5b7f Remove use of std::result_of.
std::result_of is deprecated and removed in C++20, std::invoke_result is
in C++17 the library so not ready yet.

In the case of SkMakeArray there is no need for the full power of
std::invoke_result as SFINAE is not needed, nor is calling a method
supported. As a result a simple decltype is sufficient.

Bug: skia:11811
Change-Id: I6c07c380970cc2a991ab8bd457997320ba634e6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390476
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-03-30 16:57:45 +00:00
Brian Salomon
1d2a26d0df Add more comprehensive test for GPU write pixels.
Similar to existing SurfaceContextReadPixels but for writes. Tries all
combinations of src/dst color type and alpha type for write pixels.
Always reads back pixels for verification using the ImageInfo of the
tested surface context.

Bug: skia:8862
Bug: skia:11130
Bug: skia:11786

Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348886
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Change-Id: I22b38a99c8b4e5b506cd0b94ab9cac3d347f6b2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388236
2021-03-30 15:50:36 +00:00
John Stiles
2ee4d7a7f5 Rework optimization override flags.
Previously, the Compiler optimization overrides only supported force-
disabling a particular behavior; we assumed that the default state of
a Compiler was to allow all optimizations. This assumption is about to
be invalidated, as the Inliner will soon be off by default unless you
are using GLES.

The override flags are now a tri-state; optimization and inlining can
be set to "default", "on" or "off".

Change-Id: I5637693222ca1de74ca1073c24d86c8e7c5026f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390136
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-30 15:39:15 +00:00
Chris Dalton
4718a8b83b Draw dmsaa textures with GrFillRRectOp
With the new drawing API in Ganesh it should be relatively
straightforward to chain FPs with different textures.

Bug: skia:11396
Change-Id: I57cde39a2c00c79ea8b9b907c0ee8a034f977a14
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-30 15:09:35 +00:00
Chris Dalton
7c27c31cab Beef up AllPathsVolatile benchmarking
Adds radeon and vulkan/quadro configs. Adds desk_motionmarkpaths.skp.

Change-Id: Icc6712a0b490a995b5f11c752b5eabe64c6e5fd9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390176
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-30 15:09:05 +00:00
Adlai Holler
194b239e09 Reland "Use objc_externally_retained to cut down retain/release in Metal"
This reverts commit 8b6788079f.

Reason for revert: Fixed variable type for chrome & flutter

Basically, you can't use objc_externally_retained with `auto` type
variables because the compiler isn't smart enough to deduce the type
before checking that it's compatible with the attribute.

Original change's description:
> Revert "Use objc_externally_retained to cut down retain/release in Metal"
>
> This reverts commit 78381ee5e0.
>
> Reason for revert: breaking chromium and flutter mac builds
>
> Original change's description:
> > Use objc_externally_retained to cut down retain/release in Metal
> >
> > Until we get off of ARC, these extra retains and releases can really
> > add up in previous profiling of Metal, especially on iOS.
> >
> > Change-Id: Ib3aaa0b863c4469bdb6ad930395a170719c0293d
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/381110
> > Commit-Queue: Adlai Holler <adlai@google.com>
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=jvanverth@google.com,bsalomon@google.com,adlai@google.com
>
> Change-Id: I36aff7698a70052a42b91a910b92fd512b3eecd4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388717
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>


Change-Id: I5cad02fc9d8c7f21e22021858b2e6e9b038a3de6
Cq-Include-Trybots: luci.skia.skia.primary:Canary-Flutter
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389157
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-03-30 14:43:15 +00:00
Robert Phillips
0d8722c8b5 Make use of shareable promise images in tools
The main change here is just fusing the following three methods into recreateSKP:
   deflateSKP
   createCallbackContexts
   createSKP

All the remaining changes are just API fallout from that.

Bug: skia:11728
Change-Id: Iae2ce65983ad56c8288bdc830e248394a0055bfb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389925
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-03-30 14:25:55 +00:00
Brian Salomon
3079266f92 SkGpuBlurUtils::GaussianBlur handles degenerate downscale cases.
Previously it aborted if at a downscale to 1 pixel the effective
sigma was greater than the max sigma.

For repeat/mirror the single col/row is the blurred result

For decal/clamp add a border of transparent/original border and then
recurse.

Bug: skia:11735
Bug: chromium:1174354

Change-Id: I3438f49fdc5167f6def61a49f9fc8eaef3912ec3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/385279
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-03-30 14:18:05 +00:00
Greg Daniel
38517c2c39 Have GrVkFramebuffer hold refs to the attachmetns that are part of it.
This starts to move us in the right direction for DMSAA support. In
future CLs it will allow GrVkOpsRenderPass to depend/use a
GrVkFramebuffer object when setting things up instead of a GrVkRenderTarget.
This makes it easier to dynamically tell it to use an msaa color attachmet
or the normal non-msaa attachment from the render target.

A bonus to this is that we can remove the ugly addResources call on the
GrVkRenderTarget.

Bug: skia:11809
Change-Id: I7e5db64210830994ec507e6bbc4d3d1e1a9ed4e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390036
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-03-30 13:47:35 +00:00
Ravi Mistry
430fd53936 Add scrolling to go to the more interesting parts of desk_intelwiki.skp
Bug: skia:11804
Change-Id: I96ce34311b5e5420ee343a0dbc68ef20f399be4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390336
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-03-30 13:46:19 +00:00
John Stiles
ca65f8f9f6 Detach VarDeclarations and Variables from each other during deletion.
Variable and VarDeclarations cross-reference one another. They generally
get deleted around the same time, but this is not always the case. In
this CL we explicitly detach them from each other at destruction time
to avoid holding a stale pointer, removing the risk of accessing it
later. (Accessing null is still fatal, of course, but it's less
dangerous than using a recently-freed pointer, and easier to debug as
well.)

Modifying things in the symbol table requires a const_cast, but it's not
too risky to null out a pointer field on a conceptually-dead object.
A Variable without a VarDeclaration is inert.

Change-Id: Ie01244495a82a8007269522a561b2512c5f12384
Bug: oss-fuzz:32587
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390056
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-30 13:10:15 +00:00
Kevin Lubick
9e3c9f1bf0 [canvaskit] Skip problematic skp
This skp started causing
Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP
to timeout.

Change-Id: I248b4be8f2287ecb16969f71f985acd794bd8d11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390298
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-03-30 13:07:38 +00:00
Brian Salomon
de3cb0b454 Reland "Don't reuse scratch textures when texsub image banned for FBO textures"
This is a reland of 2a88456c15

Original change's description:
> Don't reuse scratch textures when texsub image banned for FBO textures
>
> If writePixels uses a scratch surface it will likely bind it to a FBO.
> If this workaround is in play that texture then becomes "poisoned" as
> a temp surface for a future writePixels(). However, our caching
> mechanism will still find it and we'll incur an extra recursion in
> writePixels to allocate a new texture that has never been bound to a
> FBO. This pattern can repeat itself with increasing recursion depth
> until the cache budget has been reached and we start purging the
> "poisoned" textures.
>
> Disallowing reuse of scratch textures avoids this issue.
>
> Bug: skia:11204
> Change-Id: I8002a673900a9a34e889c92e816781d4b7f84688
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388696
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: skia:11204
Change-Id: I0585497e0d0d09dd68cbef050a0bbb8f9a85c16d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390058
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-03-30 13:00:25 +00:00
John Stiles
18a45b341d Reserve AST node space at the start of compilation.
I tested sksl_small, sksl_medium and sksl_large to check their ratio of
characters to AST nodes and the amount varied between 8:1 and 12:1. The
parser now reserves a pool of 1 AST node per 10 source characters before
beginning the AST translation. This gives a ~3% improvement in
sksl_large on my machine, not a huge win per se but still pretty
significant given the simplicity of the change.

Change-Id: I028c6c251504065cbbd36b6199b18728ff2414e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390057
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-03-30 12:34:15 +00:00
skia-autoroll
bb60ee51de Roll Chromium from 72a44ae7b7da to d6926860006d (346 revisions)
72a44ae7b7..d692686000

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 mtklein@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: mtklein@google.com
Change-Id: Icc32896119cc0fe3757ea7ab9725d6f1173dfd07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/390157
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-30 05:52:14 +00:00
skia-autoroll
d7acfbc5ec Roll Dawn from b745df8537a0 to d7d98509da5c (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/b745df8537a0..d7d98509da5c

2021-03-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 9ef17472e871 to 01ac3dd9176d (1 revision)
2021-03-29 cwallez@chromium.org dawn_native: Use an internal GetQueue that doesn't add a ref
2021-03-29 cwallez@chromium.org dawn_native: Prefix all API methods with API

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 9ef17472e871 to 01ac3dd9176d

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

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: enga@google.com
Change-Id: I12f3fb6e1c058094717e5a2735c846be63fb5cc4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389944
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-30 05:04:24 +00:00
skia-autoroll
3007ce68f0 Roll SwiftShader from fb53aa2bb7da to 4c0f888d7ef8 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/fb53aa2bb7da..4c0f888d7ef8

2021-03-29 capn@google.com Automate installing the API library for testing

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 mtklein@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: mtklein@google.com
Change-Id: Ic67eedcec6148fac5ac2e5f0682e4c541f8584f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389942
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-03-30 05:01:54 +00:00
shrekshao
589adda930 WebGPU API evolution GPUExtent3D.depth -> depthOrArrayLayers
Bug: chromium:1176969
Change-Id: Ie3853bffe1e004c4a930b83201d7e89f82d1df12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/385196
Reviewed-by: Stephen White <senorblanco@google.com>
Commit-Queue: Stephen White <senorblanco@google.com>
2021-03-30 02:55:44 +00:00
Jim Van Verth
7b41798fd6 Add GrD3DPipeline.
This allows me to separate the wrapper around the ID3D12PipelineState
from the other data we track with GrD3DPipelineState. In this way I can
create a GrD3DPipeline directly for compute experiments without worrying
about managing graphics-specific objects. In the long run, we'll
probably need GrD3DGraphicsPipelineState and GrD3DComputePipelineState.

Change-Id: I36ff90a93b6e53fae217aaca3f6e0e76d698aa57
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389896
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-03-29 21:50:14 +00:00
Chris Dalton
2299df2f56 Don't let caps.maxRenderTargetSize() be > fMaxTextureSizeOverride
We've had a rule that the max render target size can't be larger than
the max texture size. The fMaxTextureSizeOverride option put us in a
situation where that rule could have been broken.

Bug: skia:11396
Change-Id: I403d0fd6af8c294e8a72e379690581523b0ce819
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387856
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-03-29 21:31:54 +00:00
Adlai Holler
026851ad2b Correctly delete ops in GrOpsTask::reset
This resetting occurs when merging ops tasks, when we decide to skip
an ops task because a later ops task in the list has a clear color.

You can't just delete the op chains, you have to get all the stuff
out of the chains first or else you'll hit an assert.

Bug: skia:10877
Change-Id: I5377f242a67ab65a656783a61a534be4756f6c21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389959
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
2021-03-29 21:28:44 +00:00