Commit Graph

51470 Commits

Author SHA1 Message Date
Chris Dalton
81b270a659 Optimize SkChopCubicAt to chop at two points at once
Adds an SkChopCubicAt overload that performs two chops at once in
SIMD. Also updates SkChopCubicAt to accept T values of 0 and 1. This
has been the source of bugs in the past.

Bug: skia:10419
Change-Id: Ic8a482a69192fb1685f3766411cbdceed830f9b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327436
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-10-26 21:36:25 +00:00
Kevin Lubick
36af02d2ef Add define to WASM GM build
Change-Id: I6a2ddfa22da736a5303c60379c1216f6a3d7e7e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329719
Reviewed-by: Herb Derby <herb@google.com>
2020-10-26 20:50:13 +00:00
Robert Phillips
3ac83b2f91 Add additional GrThreadSafeCache test case
and flush out some non-substantive changes; namely:
  whitespace changes
  tweak what is stored in TessInfo
  change createMesh to be CreateMesh

Bug: 1108408
Change-Id: Ife9a0e500b9f51db597350b0257b20efece03bdc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329633
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-10-26 19:42:15 +00:00
Herb Derby
c76d4096af add API for Op creation
Introduce three calls on GrOp: Make, MakeWithExtraMemory,
and MakeWithProcessorSet. Instead of returning
unique_ptr<GrOp>, they return a type of GrOp::OpOwner.
GrOp::OpOwner safely deletes the op when it goes out
of scope for either new/delete or GrOpMemoryPool
allocations.

In order to make the code easier to refactor, I
eliminated MakeArg from the helpers.

Change-Id: Icfd697906f3147a8734575d08bd7195e7517383a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/323778
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-10-26 18:51:15 +00:00
Mike Klein
3dd8def458 tweak build for msan swiftshader
c.f. https://swiftshader.googlesource.com/SwiftShader.git/+/268fd73221d63a671d838de7f94a727e4fd0f04e%5E%21/#F0

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN
Change-Id: I619808b581d01fa91d1e5a67766bd660904a5c5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329604
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-10-26 18:41:45 +00:00
John Stiles
aaea0d98fb Update nameVariable to return the variable name directly.
Previously, the generated name was passed back in a SkString-pointer
output parameter. Directly returning the SkString simplified nearly
every call site, and made none of them worse.

Change-Id: Ied57adcf8fb087a301641adad437d8a68f8d3297
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329622
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-26 17:45:35 +00:00
Brian Osman
faa1693133 Slight tweak to SkTHashMap natvis support
Previously, there was no way to look at the key (beyond the
DisplayString used in the tree), so for complex key types, this is
better.

No-Try: true
Change-Id: I44b44192dde13b3264f7e5114bf0bf933a4cdd97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329632
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-10-26 17:12:37 +00:00
John Stiles
d2a3a5b3b4 Add support for fFormatArgs in .fp-file inner functions.
Previously, we'd just emit functions with `%s` in their function bodies.
Also, the fFormatArgs wouldn't get cleaned up, so subsequent code would
fill in the wrong format arguments in each place.

There are still problems with function calls (`sample` is broken;
function names are accessed before they've been declared or initialized)
but this is a step in the right direction.

Bug: skia:10684
Change-Id: I7399a71d44ebba5049703484ec9933dffbe8e2b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329417
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-10-26 16:15:33 +00:00
Tyler Denniston
5bbbb49f1d Miter joins for toy variable width stroke
The major difference in computing the join geometry is just that we must
use normal and radius information from the approximated offsets, instead
of the input geometry. All that effectively means is that we need to
stroke the next segment prior to being able to add a join with the
previous segment.

Change-Id: I44d9015cf534deeae27db3c3faab965aee3e930b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329618
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2020-10-26 15:57:23 +00:00
Brian Osman
010ce6a15a Add ProgramUsage side-car to track variable and function references
Automatically computed once IR generation is complete, and then used
throughout optimization and inlining, and the backend generators.
Optimization and inlining are reworked to keep the data up-to-date as
they edit the IR.

Bug: skia:10589
Change-Id: Iaded42d8157732dd6fe05f74c5b7bb8366916635
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328382
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-10-26 15:25:03 +00:00
Mike Klein
0a7e2fa5d5 remove dead computeSegmentMask()
Bug: skia:10866
Change-Id: I06c675a423380d30017ebcc5485d556211d403fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329390
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-10-26 15:23:43 +00:00
Jim Van Verth
ddb3c34cd5 Fix GPU capture for Metal test apps.
Creating the next command buffer immediately seems to confuse
the Metal GPU capture command in Xcode. If the command buffer isn't
used until the next frame it apparently doesn't include it in the
capture. The solution is to delay creation until we first need it.

Change-Id: I95fea78a68356d319418ca15bd852e34d9efa12b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329416
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-10-26 15:14:13 +00:00
Tyler Denniston
189ecd485a Add toy variable-width stroker sample
- Currently supports single-segment paths (lines or quads). Doesn't
  handle joins.
- Cubics are easy to add but not supported yet.
- No effort was made on performance optimization.
- Will likely be relocated eventually into an experimental SkPathEffect.

Change-Id: I35073d1d9dbc03a5423fda3bb20da005964c97d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329256
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2020-10-26 14:43:03 +00:00
skia-autoroll
c53c8283aa Roll ANGLE from 097f307e75a4 to 29ca7186a688 (39 revisions)
097f307e75..29ca7186a6

2020-10-26 cnorthrop@google.com Tests: Add Dragon Ball Legends trace
2020-10-26 cnorthrop@google.com Tests: Add World of Tanks Blitz trace
2020-10-25 jmadill@chromium.org Revert "Vulkan: Make DescriptorPoolHelper a Resource"
2020-10-25 jmadill@chromium.org Skip flaky tests on Win7/NVIDIA/GLES.
2020-10-25 jmadill@chromium.org Adjust TestSuite test timeout values.
2020-10-25 jmadill@chromium.org Re-land "Link C++ histogram support into angle_perftests."
2020-10-25 lehoangq@gmail.com Metal: Fix 2D array texture's robust resource init
2020-10-25 lehoangq@gmail.com Metal: Implement sampler object & shadow compare mode
2020-10-25 m.maiya@samsung.com Check for precision match of uniforms only if there is static use
2020-10-24 jmadill@chromium.org Expand Mac XFB suppression.
2020-10-24 jmadill@chromium.org Suppress failing Windows 7 test.
2020-10-24 jmadill@chromium.org Disable timing out Vulkan GLES 1 test.
2020-10-24 lehoangq@gmail.com Metal: Partially implement EXT_debug_marker
2020-10-24 lehoangq@gmail.com Metal: Implement glRenderbufferStorageMultisample(ANGLE)
2020-10-24 lehoangq@gmail.com Metal: Support integer textures.
2020-10-24 syoussefi@chromium.org Vulkan: Dirty pipeline and desc set after mid-RP clear with draw
2020-10-24 syoussefi@chromium.org Vulkan: Assert that attributes in shader info map are active
2020-10-24 timvp@google.com Fixes to roll ANGLE into AOSP
2020-10-24 jmadill@chromium.org Tests: Remove standalone duplication.
2020-10-23 timvp@google.com Revert "Link C++ histogram support into angle_perftests."
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e203e4bcf072 to 4787c9ad2595 (240 revisions)
2020-10-23 jonahr@google.com Suppress VUID-vkCmdDraw-None-02698 validation
2020-10-23 jmadill@chromium.org Test Runner: Only run watchdog in child processes.
2020-10-23 jmadill@chromium.org Vulkan: Refactor how finishToSerial() retires commands.
2020-10-23 syoussefi@chromium.org Vulkan: Drop RelaxedPrecision from aliased attributes
2020-10-23 cnorthrop@google.com Vulkan: Reduce scope of clear workaround
2020-10-23 jmadill@chromium.org Make capture replay tests exectuable.
2020-10-23 jmadill@chromium.org Vulkan: sRGB cleanups.
2020-10-23 jmadill@chromium.org Trace Tests: Print trace download progress.
2020-10-23 timvp@google.com Vulkan: Make DescriptorPoolHelper a Resource
2020-10-23 jmadill@chromium.org Link C++ histogram support into angle_perftests.
2020-10-23 courtneygo@google.com Re-enable dEQP-EGL.functional.fence_sync.*
2020-10-23 jmadill@chromium.org Clean up test runner TODOs.
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from ea52b3c2d270 to 3b334b2b8e1a (1 revision)
2020-10-23 jmadill@chromium.org Temporarily duplicate standalone tests.
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e02d8938821a to 8012e62471be (1 revision)
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 6fac705e7616 to 69f07da41b3b (24 revisions)
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from cb0c1533ad91 to e203e4bcf072 (25 revisions)
2020-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 8832c373d22b to cb0c1533ad91 (272 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 jcgregorio@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: jcgregorio@google.com
Test: Test: AOSP PresubmitTest: Test: GLES1ConformanceTest.AmbLight/ES1_VulkanTest: Test: MultithreadingTest::MultiContextDrawSmallDescriptorPools()Test: Test: angle_perftest --gtest_filter="*free_fire*"Test: Test: angle_perftests --gtest_filter="*dragon_ball_legends*"Test: Test: angle_perftests --gtest_filter="*world_of_tanks_blitz*"
Change-Id: Ifa8d4200dff903e23a84a99985a212b47ddca20e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329519
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-26 13:41:03 +00:00
skia-autoroll
87cf830352 Roll SwiftShader from 8012e62471be to bb66fa41a163 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/8012e62471be..bb66fa41a163

2020-10-24 amaiorano@google.com LLVMJIT: fix asserts in latest LLVM
2020-10-24 capn@google.com Support MemorySanitizer builds with CMake
2020-10-23 srisser@google.com Implement VK_KHR_shader_subgroup_extended_types

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

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

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

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jcgregorio@google.com
Change-Id: I75576268c29c8b16b96f051181669b3339d182d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329520
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-26 13:32:38 +00:00
skia-autoroll
c493eabd56 Roll Dawn from ade9a5235c73 to 42103bc2e911 (12 revisions)
https://dawn.googlesource.com/dawn.git/+log/ade9a5235c73..42103bc2e911

2020-10-24 jiawei.shao@intel.com Fix crash when device is removed before CreateReady*Pipeline callback
2020-10-24 jiawei.shao@intel.com Treat VK_SUBOPTIMAL_KHR as a valid return value of vkQueuePresentKHR
2020-10-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 9ab6e8b9eb0e to f81c1081ea7d (1 revision)
2020-10-23 kainino@chromium.org Implement new formula for requiredBytesInCopy
2020-10-23 enga@chromium.org Validate texture aspect on TextureView creation
2020-10-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from e6fda61ef0c4 to 9ab6e8b9eb0e (1 revision)
2020-10-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 79d271580e21 to e6fda61ef0c4 (1 revision)
2020-10-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 1b1d2a590744 to 79d271580e21 (2 revisions)
2020-10-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 88d705dc85ff to 1b1d2a590744 (1 revision)
2020-10-23 yunchao.he@intel.com Minor changes in TextureValidationTests
2020-10-23 dj2@everburning.com CMake updates.
2020-10-23 cwallez@chromium.org Slightly improve a RenderPipeline error message.

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 dsinclair@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: dsinclair@google.com
Change-Id: I6ff4d53e705fd22bb18039845a1f3b4e469597be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329518
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-26 13:27:43 +00:00
skia-autoroll
a8ca5b90e1 Roll Chromium from e47bf15edfc4 to d37162e0b81d (552 revisions)
e47bf15edf..d37162e0b8

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

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

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

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: jcgregorio@google.com
Change-Id: Ie6fc6be3a94e789e985a73fb021b71257c185749
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329517
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-26 13:27:33 +00:00
skia-recreate-skps
aea8273241 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I8fc39162a4476119b786ec3adb297dc1c1fd4fe2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329450
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-10-25 06:31:41 +00:00
John Stiles
312535b47d Create sksl_small nanobench test.
This is the standard no-op shader that Viewer uses to blit the software
rasterizer's back-buffer to the screen. It modulates against white and
samples a texture using an identity matrix.

This gives us a realistic best-case-scenario test. `sksl_tiny` is too
small to be a realistic test (although it's a good data point to show
our ultimate speed-of-light).

Change-Id: Ic697cb1301752574ab63a9a0d7b07a0ff81c3a88
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329476
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-24 13:05:11 +00:00
John Stiles
071934570a Reduce the SkSL pool size to 512 nodes.
This is large enough to hold sksl_medium in its entirety; sksl_large
overflows somewhat, but it's still much better than nothing.

Change-Id: Ief22a94cc7f554ecc289905e9ccc20594eab6819
Bug: chromium:1141863
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329456
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-24 13:03:51 +00:00
Robert Phillips
375e1f6a64 Add unit tests for vertexData in the thread-safe cache
Bug: 1108408
Change-Id: Ia984324d559bb33bfe668a44ee93c6e39fc47685
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329419
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-10-23 23:21:56 +00:00
Ben Wagner
9abf719e67 Remove code guarded by SK_LEGACY_SURFACE_PROPS.
This removes the last of the SkFontHost LCD globals and the
SkSurfaceProps::kLegacyFontHost_InitType.

Bug: skia:3934
Change-Id: Ic2342a3ea3dbcd075d6817cbd3fc27274e376b8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329364
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-10-23 22:41:36 +00:00
Chris Dalton
58a26a8362 Fix the formula for fNumRadialSegmentsPerRadian in GrStrokePatchBuilder
GrStrokePatchBuilder had the wrong formula. This CL moves the formula to
GrStrokeTessellateOp and calculates it in one spot for the builder and
tessellator both. It also fixes a bug that was hiding behind this
formula error and updates some variable names.

Bug: skia:10419
Change-Id: I908d3960b16cac8dca0d40ff4116a3f5c5beed06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328416
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-10-23 22:09:46 +00:00
John Stiles
8744a5c820 Add unit test for nested function calls in FP files.
`func1` and `func2` emit bad code, `return %s()`, and because they don't
consume their `%s` format argument. This leaves the format argument list
unbalanced and all future args are wrong.

Another serious problem is that we don't actually know the names of the
functions that they need to call, because we haven't emitted them yet.

`func3` is not emitted at all. Sampling from a fragment processor
apparently fails in this context.

This is a more general case repro for skia:10684--it turns out that
recursion in particular wasn't the issue, but nested function calls just
don't work properly at all in FP files. This wasn't an issue in practice
because we don't have any existing FP files which nest function calls,
and the inliner also tends to aggressively flatten everything out if we
don't explicitly disable it.

Change-Id: Iff029c459c7d90be566f9b4c9be0e3150e459866
Bug: skia:10684
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329367
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-10-23 21:07:36 +00:00
Mike Reed
65dc579f13 Show cubic made up of 2 quads
Change-Id: Iafc2e6c23c8fa8a69424d7c42dfb4d2c59e1ea08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329420
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-10-23 21:03:45 +00:00
John Stiles
80f240a3d3 Revive SkSLFPTestbed for basic verification of CPP/H codegen.
This brings back the basics from SkSLFPTest.cpp. This file was removed
entirely in http://review.skia.org/319029 but, in retrospect, it's still
a good idea for dm to verify that CPPCodeGen and HCodeGen can do their
jobs. And, like SkSLGLSLTestbed, this gives us a good place to attach
the debugger in dm for testing CPP/H-specific code generation bugs.

Change-Id: I514192bacd63021708dbd02a0276a3d55a43195f
Bug: skia:10684
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329370
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-23 20:32:35 +00:00
Robert Phillips
42a741a214 Allow vertex data to be stored in the thread safe cache
Bug: 1108408
Change-Id: I4d51b9c837fad435c7a3e6823390b519b785631b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329363
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-10-23 18:08:05 +00:00
Jim Van Verth
7c64798b3d Add control to toggle immediate/delayed MTLDrawable acquisition
Change-Id: Ia1b57dc4af65e7625659c147077b5e47b09b6b62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329178
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-10-23 17:30:15 +00:00
Kevin Lubick
acdc283404 [canvaskit] Use portable fonts for GMs
This adds an Init() which should be called before any resources
are loaded or GMs/Tests are called.

This also adds a little helper in compile.sh for building only
a single GM, which can make local development faster given the
fact that emsdk doesn't do its final compilation/linking in
parallel.

Bug: skia:10812
Change-Id: I1a8932549b9ae951c153c0d49927bdc933c29657
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329358
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-10-23 17:04:48 +00:00
John Stiles
530933006d Add unit test demonstrating recursion codegen bug.
The generated code does not assign to sk_OutColor correctly; it assigns
into the `factorial` function name instead, which doesn't make sense.

Change-Id: Ibad1d47f2f9c4fbb410b5277cea6e1022daf8b9d
Bug: skia:10684
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329360
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-10-23 16:33:15 +00:00
John Stiles
9cef66fbf5 Fix use-after-free discovered by fuzzer.
In cases where multiple variables were declared on a single line, it is
legal for variable initialization-expressions to reference variables
declared earlier in the var-decl statement. It is NOT legal for the
inliner to move those references up to the previous statement, where the
variable doesn't exist yet.

This is mitigated by disabling the IRGenerator inliner for var-decls
past the first one in a var-decls statement. (The optimizer will still
pass over this code later and is able to inline it correctly, if it is
worth doing.)

Change-Id: I7a0d45eab20e30ed9f6b2f5c1251b6e0d8eeaea3
Bug: oss-fuzz:26167
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329357
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-10-23 16:10:15 +00:00
John Stiles
15d8174fc9 Add unit test for self-referential initializer expressions.
These don't compile in GLSL, so they shouldn't compile in SkSL either--
and fortunately, they do not.

(In C++, and consequently in Metal, these expressions are considered
legal by the grammar and do compile, but generate garbage output.)

Change-Id: I6c7bea70b3d91677ccd8fcbad1eba123d655e856
Bug: skia:10694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329359
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-10-23 14:36:05 +00:00
skia-autoroll
58cf3fe83b Roll Dawn from 22505a5afe1f to ade9a5235c73 (2 revisions)
https://dawn.googlesource.com/dawn.git/+log/22505a5afe1f..ade9a5235c73

2020-10-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 8f7c80347dc6 to 88d705dc85ff (1 revision)
2020-10-22 cwallez@chromium.org SwapChainVk: handle mismatching size and usage with a blit

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 dsinclair@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: dsinclair@google.com
Change-Id: I4129c68c903dc645410184dd3ec602861258b5bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329213
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 05:06:35 +00:00
skia-autoroll
075c527877 Roll SwiftShader from e02d8938821a to 8012e62471be (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e02d8938821a..8012e62471be

2020-10-22 srisser@google.com Update VkStringify to use vulkan.hpp to_string

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+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: egdaniel@google.com
Change-Id: I51ebb431c2b26293be1511c4baa47418ecae2e51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329215
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 05:01:45 +00:00
skia-autoroll
3718e300e2 Roll ANGLE from d74754378f09 to 097f307e75a4 (10 revisions)
d74754378f..097f307e75

2020-10-23 courtneygo@google.com Vulkan: Fix segv referencing contextVk
2020-10-22 ianelliott@google.com Add run-time check in EVENT() to disable debug markers
2020-10-22 sugoi@chromium.org Allow rendering to half float in ES2 contexts when possible
2020-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 72a62c652dc1 to 8832c373d22b (1033 revisions)
2020-10-22 cnorthrop@google.com Revert "Tests: Add FIFA Mobile trace"
2020-10-22 syoussefi@chromium.org Vulkan: Validate SPIR-V transformer at link time
2020-10-22 xiaoxuan.liu@arm.com Fix end2end tests VertexAttribute* failure
2020-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from 970c132746b1 to 91ce213a1d88 (3 revisions)
2020-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 84f5eeb6dd9b to e02d8938821a (3 revisions)
2020-10-22 lexa.knyazev@gmail.com Vulkan: Fix invalid clamping of ES3 clear stencil values

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

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: egdaniel@google.com
Test: Test: angle_perftests -v --local-output --gtest_filter="TracePerfTest.Run/*nba*"
Change-Id: I3f65f226706d20c20d49de995e96614a9d6df407
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329214
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 04:54:15 +00:00
skia-autoroll
734a27a2f3 Roll Chromium from 502ec4ce30b3 to e47bf15edfc4 (424 revisions)
502ec4ce30..e47bf15edf

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+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: egdaniel@google.com
Change-Id: I44ab1b7a82d3e7b5242e5bf7a1348cdf286e1865
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329212
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 04:47:15 +00:00
John Stiles
2d68ea3fbf Allow SkSL compilers to reuse SkSL Pools without reallocating.
When a Program is freed, rather than immediately disposing of its Pool,
it now sends it to Pool::Recycle, which holds onto it. If Pool::Create
is called, it satisfies the request by simply handing back the recycled
pool. Only one pool is kept in recycle storage at a time--recycling
more than one pool in a row will cause all but one to be freed. To avoid
holding onto Pool memory indefinitely, pool recycle storage is cleaned
up whenever a Compiler is destroyed.

Change-Id: I21c1ccde84507e344102d05506d869e62ca095a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329175
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-10-22 22:46:14 +00:00
Tyler Denniston
53281c7121 [svg] Add current node to render context
A couple of render-time decisions require knowledge of object bounding
boxes, such as gradients (whose default coordinate space is
"objectBoundingBox". This CL adds the current node being rendered to the
render context so that it can be accessed down-stack (for example, when
gradients are being resolved and added to the paint as Skia shaders).

Each node will overload the bounds computation, for now it just returns
empty bounds for all nodes. TBD if we want to cache bounds somewhere,
either inside the node object or in a separate cache.

Bug: skia:10842
Change-Id: I40061ffedcb840e4dd28dba6351421f5b4fc904b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329221
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-10-22 21:01:04 +00:00
Ethan Nicholas
01b05e5b83 moved SkSL Switch data into IRNode
Change-Id: I0373cccfd3acc56417f8d1545bbe7320dc2dfa05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327256
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-10-22 20:44:04 +00:00
John Stiles
060503ec27 Use SkMutex in SkSL.
Change-Id: I1b14e4c8de0ca60a0ebbdbc225befc5074e8de22
Bug: skia:10862
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329177
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-10-22 19:47:00 +00:00
Ethan Nicholas
cdeae8c0cc added SkSL OptimizationContext
This simplifies the signatures of several methods and makes it easier to
ignore errors we have already reported.

Change-Id: I767ca22a66e69fe72557c2560ef84f5dbe339eb8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329220
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-10-22 19:33:10 +00:00
Kevin Lubick
65674e4c2e [canvaskit] Compile in most gms for testing
The few we omit fail to compile or link.

Bug: skia:10812
Change-Id: I660d64b6f9bfe63949a12506d29e9a8d73898e6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328377
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2020-10-22 16:44:07 +00:00
John Stiles
0bb9ec5437 Reland "Add pooling support on iOS."
This reverts commit f73091bb81.

Reason for revert: rolling forward after fixing prior CL

Original change's description:
> Revert "Add pooling support on iOS."
>
> This reverts commit 38a93e622b.
>
> Reason for revert: need revert first pool change
>
> Original change's description:
> > Add pooling support on iOS.
> >
> > This replaces the `thread_local` attribute with `pthread_setspecific`
> > and `pthread_getspecific`. I don't have easy access to iOS 8/9 for
> > testing purposes, but on Mac OS X, this implementation works and
> > benchmarks the same as the `thread_local` implementation.
> >
> > Change-Id: I86db88c24d59d946adb66141b32733ebf5261c76
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328837
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
>
> TBR=brianosman@google.com,adlai@google.com,johnstiles@google.com
>
> Change-Id: Ic06f9e32e524b2be601ee21a5da605fd19aaa64b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329164
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,brianosman@google.com,adlai@google.com,johnstiles@google.com

Change-Id: I0e021e9304ee88d6a29739c287eb515abff8b8a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329173
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-10-22 16:38:40 +00:00
Greg Daniel
4fd41ffd54 Fix asserts for npot tiling in gl.
Change-Id: Iadbb0f85f929bf846f5ba03809b298b1d9d03786
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329172
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-10-22 16:07:30 +00:00
John Stiles
5c7bb326a7 Reland "Create a basic IRNode pooling system."
This is a reland of e16eca95f5

This fixes the no-op (iOS) implementation of CreatePoolOnThread.

Original change's description:
> Create a basic IRNode pooling system.
>
> Allocations are redirected by overriding `operator new` and `operator
> delete` on the IRNode class. This allows us to use our existing
> `unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
> it holds a fixed number of nodes and recycles them as they are returned.
>
> A fixed pool size of 2000 nodes was chosen. That is large enough to hold
> the contents of `sksl_large` during compilation, but it can be
> overflowed by very large shaders, or if multiple programs are converted
> at the same time. Exhausting the pool is not a problem; if this happens,
> additional nodes will be allocated via the system allocator as usual.
> More elaborate schemes are possible but might not add a lot of value.
>
> Thread safety is accomplished by placing the pool in a `thread_local`
> static during a Program's creation and destruction; the pool is freed
> when the program is destroyed. One important consequence of this
> strategy is that a program must free every node that it allocated during
> its creation, or else the node will be leaked. In debug, leaking a node
> will be detected and causes a DEBUGFAIL. In release, the pool will be
> freed despite having a live node in it, and if that node is later freed,
> that pointer will be passed to the system `free` (which is likely to
> cause a crash).
>
> In this CL, iOS does not support pooling, since support for
> `thread_local` was only added on iOS 9. This is fixed in the followup
> CL, http://review.skia.org/328837, which uses pthread keys on iOS.
>
> Nanobench shows ~15% improvement:
>   (last week) http://screen/5CNBhTaZApcDA8h
>       (today) http://screen/8ti5Rymvf6LUs8i
>
> Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Change-Id: I8623a574a7e92332ff00b83982497863c8953929
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329171
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-10-22 15:56:00 +00:00
Greg Daniel
f15a598ab0 Revert "Reland "Create a basic IRNode pooling system.""
This reverts commit 5b09e6a007.

Reason for revert: breaking g3

Original change's description:
> Reland "Create a basic IRNode pooling system."
>
> This is a reland of e16eca95f5
>
> Original change's description:
> > Create a basic IRNode pooling system.
> >
> > Allocations are redirected by overriding `operator new` and `operator
> > delete` on the IRNode class. This allows us to use our existing
> > `unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
> > it holds a fixed number of nodes and recycles them as they are returned.
> >
> > A fixed pool size of 2000 nodes was chosen. That is large enough to hold
> > the contents of `sksl_large` during compilation, but it can be
> > overflowed by very large shaders, or if multiple programs are converted
> > at the same time. Exhausting the pool is not a problem; if this happens,
> > additional nodes will be allocated via the system allocator as usual.
> > More elaborate schemes are possible but might not add a lot of value.
> >
> > Thread safety is accomplished by placing the pool in a `thread_local`
> > static during a Program's creation and destruction; the pool is freed
> > when the program is destroyed. One important consequence of this
> > strategy is that a program must free every node that it allocated during
> > its creation, or else the node will be leaked. In debug, leaking a node
> > will be detected and causes a DEBUGFAIL. In release, the pool will be
> > freed despite having a live node in it, and if that node is later freed,
> > that pointer will be passed to the system `free` (which is likely to
> > cause a crash).
> >
> > In this CL, iOS does not support pooling, since support for
> > `thread_local` was only added on iOS 9. This is fixed in the followup
> > CL, http://review.skia.org/328837, which uses pthread keys on iOS.
> >
> > Nanobench shows ~15% improvement:
> >   (last week) http://screen/5CNBhTaZApcDA8h
> >       (today) http://screen/8ti5Rymvf6LUs8i
> >
> > Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
>
> Change-Id: I114971e8e7ac0fabaf26216ae8813eeeaad0d4a2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329086
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>

TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com

Change-Id: Ie77a23366f2ba52fcbb0a751d11ca2792790a30c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329165
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-10-22 14:07:45 +00:00
Greg Daniel
f73091bb81 Revert "Add pooling support on iOS."
This reverts commit 38a93e622b.

Reason for revert: need revert first pool change

Original change's description:
> Add pooling support on iOS.
>
> This replaces the `thread_local` attribute with `pthread_setspecific`
> and `pthread_getspecific`. I don't have easy access to iOS 8/9 for
> testing purposes, but on Mac OS X, this implementation works and
> benchmarks the same as the `thread_local` implementation.
>
> Change-Id: I86db88c24d59d946adb66141b32733ebf5261c76
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328837
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

TBR=brianosman@google.com,adlai@google.com,johnstiles@google.com

Change-Id: Ic06f9e32e524b2be601ee21a5da605fd19aaa64b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329164
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-10-22 14:04:02 +00:00
Brian Osman
bd70be614f Add much better SkTHashMap visualization to Skia.natvis
No-Try: true
Change-Id: I48a1722778931175c2d828171c40cc5ee4a7677e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329162
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-22 14:02:42 +00:00
Kevin Lubick
d1b4d34e99 [fuzz] Copy crashing outputs before failing
Also try to avoid lots of purple timeouts until
https://github.com/google/oss-fuzz/issues/4548
is fixed

Change-Id: I6a98352b3f5a583a137f915a4c3adf6954a35777
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328989
Reviewed-by: Eric Boren <borenet@google.com>
2020-10-22 14:01:33 +00:00
John Stiles
38a93e622b Add pooling support on iOS.
This replaces the `thread_local` attribute with `pthread_setspecific`
and `pthread_getspecific`. I don't have easy access to iOS 8/9 for
testing purposes, but on Mac OS X, this implementation works and
benchmarks the same as the `thread_local` implementation.

Change-Id: I86db88c24d59d946adb66141b32733ebf5261c76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328837
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-10-22 13:58:40 +00:00