Go to file
John Stiles 15bfe3837a Split the SkSL pool into small and large sections.
To make this possible, the logic for maintaining a pool of a given node
size has been split into a separate `Subpool` class. We now have two
Subpool objects in the PoolData class; they are always adjacent in
memory, and we can still identify a pooled node just as easily by
verifying that the pointer address is within the range of one of our
Subpools. (Identifying which subpool requires one extra check.)

This change will allow us to pool a handful of larger allocations, which
will benefit almost every program since a handful of variables and
functions are universally necessary, even in simple code.

For now, the chosen size of a large node is just a guess (2x the small
node size); this can be adjusted easily once we have a better idea of
the expected sizes for our larger IRNodes, but for now this successfully
catches a significant number of allocations in `sksl_medium` and
`sksl_large`.

Change-Id: I08fb9c55c02162d4b56e72ff4e0923f2cf258651
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/330124
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-28 14:11:41 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench replace GrOpMemoryPool with GrMemoryPool 2020-10-27 16:15:11 +00:00
bin bin/try: automatically set 'git cl issue' when not found 2020-06-25 17:44:01 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Port to ANGLE's GN files 2020-09-11 15:22:34 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org [canvaskit] Remove Sk from nearly all function/type names. 2020-10-07 21:01:32 +00:00
dm [svg] Add support for preserveAspectRatio 2020-10-21 22:10:33 +00:00
docker [canvaskit,pathkit] Update to emsdk 2.0 2020-08-20 14:55:50 +00:00
docs/examples Only expose isConvex on path publicly. 2020-08-28 16:56:29 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental [svg] Post-relocation cleanup 2020-10-18 19:29:38 +00:00
fuzz Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
gm add API for Op creation 2020-10-26 18:51:15 +00:00
gn Use shared version of libcutils for host Android builds 2020-10-27 18:07:00 +00:00
include replace GrOpMemoryPool with GrMemoryPool 2020-10-27 16:15:11 +00:00
infra Add a bot to run with reduced ops task splitting 2020-10-27 19:05:58 +00:00
modules [svg] Convert text-anchor to a presentation attribute 2020-10-28 14:10:01 +00:00
platform_tools Slight tweak to SkTHashMap natvis support 2020-10-26 17:12:37 +00:00
resources [skottie] Black & White effect 2020-10-27 17:03:40 +00:00
samplecode Add support for arc-length metric in variable width stroke sample 2020-10-28 13:40:21 +00:00
site Update site favicon to new theme. 2020-10-12 15:23:48 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Split the SkSL pool into small and large sections. 2020-10-28 14:11:41 +00:00
tests replace GrOpMemoryPool with GrMemoryPool 2020-10-27 16:15:11 +00:00
third_party remove absl experiment 2020-10-27 13:45:10 +00:00
tools add API for Op creation 2020-10-26 18:51:15 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore bazel baby steps 2020-09-14 15:18:32 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Fix GrCCPerFlushResources error caused by cache eviction 2020-10-14 17:24:41 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn remove absl experiment 2020-10-27 13:45:10 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll ANGLE from 98c5ff6b49b3 to ee4e0866cb85 (17 revisions) 2020-10-28 04:58:30 +00:00
go.mod [infra] Sync to latest infra repo. 2020-10-20 13:56:41 +00:00
go.sum [infra] Sync to latest infra repo. 2020-10-20 13:56:41 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py Generate SkSL golden output files from test inputs during the build. 2020-09-14 14:54:12 +00:00
public.bzl [svg] Post-relocation cleanup 2020-10-18 19:29:38 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Remove code guarded by SK_LEGACY_SURFACE_PROPS. 2020-10-23 22:41:36 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.