Go to file
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
animations
bench Migrate MakeTextureImage to take GrDirectContext 2020-07-16 16:17:28 +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 Use Dawn's BUILD.gn instead of defining another one for Skia. 2020-04-13 23:26:31 +00:00
client_utils/android Remove SkBitmapRegionDecoder and SkBRDAllocator 2020-06-01 20:56:29 +00:00
demos.skia.org [demos] Move to subdir 2020-06-23 17:29:37 +00:00
dm Add GrStagingBufferManager and use GrGpuBuffers to manage caching. 2020-07-15 14:17:50 +00:00
docker Support specifying hash and patch_ref in skia-release & skia-wasm-release Dockerfiles 2020-05-06 20:39:04 +00:00
docs/examples Update some of the dox code to GrDirectContext 2020-07-13 13:57:12 +00:00
example Clean up GrContext references in the src/gpu 2020-07-16 14:14:08 +00:00
experimental Add a full build option for SkottieKit 2020-06-29 18:48:14 +00:00
fuzz Add SkRuntimeEffect Fuzzer 2020-07-10 15:54:23 +00:00
gm Revert "Revert "Serialize mipmaps"" 2020-07-16 21:30:27 +00:00
gn Switch the DDLRecorder over to holding a GrRecordingContext ... 2020-07-15 23:17:03 +00:00
include Roll skcms from c21106442079 to f73242142ce5 (1 revision) 2020-07-16 21:50:37 +00:00
infra Use staging buffers in d3d for texture uploads. 2020-07-16 18:16:34 +00:00
modules Add Puppeteer perf for release and experimental_simd builds of CanvasKit against SKPs 2020-07-16 17:47:08 +00:00
platform_tools turn skottie view into a view group so we can swap out TextureView and SurfaceView 2020-07-09 19:19:30 +00:00
resources [skottie] Pucker & Bloat shape layer vector effect 2020-07-10 18:09:53 +00:00
samplecode more cleanup after removing volatile from bitmap 2020-07-12 19:37:29 +00:00
site Add Flutter as a Skia customer 2020-07-12 15:05:43 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Sneak per-GrBlockAllocator user-controlled metadata into head block 2020-07-17 13:31:10 +00:00
tests Sneak per-GrBlockAllocator user-controlled metadata into head block 2020-07-17 13:31:10 +00:00
third_party Roll skcms from c21106442079 to f73242142ce5 (1 revision) 2020-07-16 21:50:37 +00:00
tools Add Puppeteer perf for release and experimental_simd builds of CanvasKit against SKPs 2020-07-16 17:47:08 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
.gitignore Reland the new module for skia lib for g3 2020-06-23 14:19:13 +00:00
.gn
AUTHORS GCC: fix unknown attribute warnings for no_sanitize 2020-07-06 13:52:22 +00:00
BUILD.gn add SkParagraph to public headers and fix warnings 2020-07-15 17:56:43 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING
CQ_COMMITTERS
DEPS Roll ANGLE from 6fe87f4a226d to cc5513855cc5 (14 revisions) 2020-07-17 05:25:05 +00:00
go.mod Add canary roll CL link to canary task driver 2020-07-16 17:34:08 +00:00
go.sum Add canary roll CL link to canary task driver 2020-07-16 17:34:08 +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 PRESUBMIT: Don't check formatting of deleted files 2020-04-08 10:36:09 +00:00
public.bzl Fix Mac GPU references 2020-07-13 18:04:28 +00:00
README
README.chromium
RELEASE_NOTES.txt Revert "Add GrContext api to update compressed backend textures." 2020-07-14 15:05:58 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +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.