aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkArenaAlloc.h
Commit message (Collapse)AuthorAge
* Allow CCPR in DDL mode (take 2)Gravatar Robert Phillips2018-05-31
| | | | | | | | | | | | A lot of the changes to get this compiling on the win_chromium_compile_dbg_ng bot (i.e., moving a lot of header files to private) should be undone if that bot is ever "fixed". Bug: skia:7988 Change-Id: I704ff793d80b18e7312048538874498824803580 Reviewed-on: https://skia-review.googlesource.com/130920 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add a generalized array of bytes with a given alignmentGravatar Herb Derby2018-02-16
| | | | | | | Change-Id: I1bf453754bdc16452aff7d6d63ef464c7edf6df3 Reviewed-on: https://skia-review.googlesource.com/108062 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Revert "Add Atlas Text interface for rendering SDF glyphs.""Gravatar Brian Salomon2017-11-19
| | | | | | | | | | This reverts commit 9c2202ffc22b4293b48a4edeafa1b5d2bab8bb83. Bug: skia: Change-Id: I482ddf74f8e40d3d0908c840ba5c6ff981ccefbd Reviewed-on: https://skia-review.googlesource.com/73345 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Add Atlas Text interface for rendering SDF glyphs."Gravatar Greg Daniel2017-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 39631f3df172feb385527a5d125bc53b0bded7e6. Reason for revert: break google3 rool Original change's description: > Add Atlas Text interface for rendering SDF glyphs. > > This new API is built upon SDF text atlas code from the GPU backend. Unlike using the GPU > backend to draw text, this set of interfaces allows the client to render the SDF glyphs. The > client issues text draws to potentially multiple targets and then the client flushes. The > client then gets commands from Skia with data to put into a texture atlas and vertices to > draw that reference the texture. The client is responsible for creating the texture, uploading > the SDF data to the texture, and drawing the vertices provided by Skia. > > Change-Id: Ie9447e19b85f0ce1c2b942e5216c787a74f335d3 > Reviewed-on: https://skia-review.googlesource.com/59360 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I4aad0c99e645b476fd8ba25731f2a10e8802bb25 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/73420 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Add Atlas Text interface for rendering SDF glyphs.Gravatar Brian Salomon2017-11-17
| | | | | | | | | | | | | | This new API is built upon SDF text atlas code from the GPU backend. Unlike using the GPU backend to draw text, this set of interfaces allows the client to render the SDF glyphs. The client issues text draws to potentially multiple targets and then the client flushes. The client then gets commands from Skia with data to put into a texture atlas and vertices to draw that reference the texture. The client is responsible for creating the texture, uploading the SDF data to the texture, and drawing the vertices provided by Skia. Change-Id: Ie9447e19b85f0ce1c2b942e5216c787a74f335d3 Reviewed-on: https://skia-review.googlesource.com/59360 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fix bogus math in object allocation.Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | | | | When a size_t is convert from a very large number to ptrdiff_t, it becomes negative causing the existing block to be used instead of allocating a new block. Remove broken test from last try. TBR=bungeman@google.com BUG=chromium:744109 Change-Id: Ifc81bb8f416d64f640730c66bce56a8e4c677173 Reviewed-on: https://skia-review.googlesource.com/35080 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix bogus math in object allocation."Gravatar Florin Malita2017-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0bc4d60fe0a1ceae6dde0103c3fdf78ee1673ffa. Reason for revert: https://chromium-swarm.appspot.com/task?id=38007b6df51fef10&refresh=10 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Caught signal 6 [Aborted], was running: 8888 image scanline_kNonNative_premul interlaced3.png unit test ArenaAllocReallyBigAlloc unit test ClampRange 565 image scaled_codec_premul_0.200 interlaced3.png_0.200 unit test ClipStack Likely culprit: unit test ArenaAllocReallyBigAlloc Stack trace: /mnt/pd0/s/w/ir/out/Debug/dm(+0x2381c1) [0x567aa1c1] linux-gate.so.1(__kernel_sigreturn+0) [0xf770cca0] linux-gate.so.1(__kernel_vsyscall+0x9) [0xf770cc89] /lib/i386-linux-gnu/libc.so.6(gsignal+0xb0) [0xf7027dc0] /lib/i386-linux-gnu/libc.so.6(abort+0x157) [0xf7029287] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x16f) [0xf729d2ff] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x71ea4) [0xf729aea4] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x71f1d) [0xf729af1d] /usr/lib/i386-linux-gnu/libstdc++.so.6(__cxa_rethrow+0) [0xf729b1d0] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x727ff) [0xf729b7ff] /usr/lib/i386-linux-gnu/libstdc++.so.6(_Znaj+0x18) [0xf729b898] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN12SkArenaAlloc11ensureSpaceEjj+0xa0) [0x56f113a6] /mnt/pd0/s/w/ir/out/Debug/dm(+0x3c2462) [0x56934462] /mnt/pd0/s/w/ir/out/Debug/dm(+0x239acb) [0x567abacb] /mnt/pd0/s/w/ir/out/Debug/dm(+0x239bdc) [0x567abbdc] /mnt/pd0/s/w/ir/out/Debug/dm(+0xa6417b) [0x56fd617b] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNKSt8functionIFvvEEclEv+0x20) [0x56f10504] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN12SkThreadPool4LoopEPv+0x298) [0x56f10bdb] /mnt/pd0/s/w/ir/out/Debug/dm(+0xb39700) [0x570ab700] /lib/i386-linux-gnu/libpthread.so.0(+0x627a) [0xf76df27a] /lib/i386-linux-gnu/libc.so.6(clone+0x66) [0xf70e3b56] Aborted Command exited with code 134 Original change's description: > Fix bogus math in object allocation. > > When a size_t is convert from a very large number to ptrdiff_t, it > becomes negative causing the existing block to be used instead of > allocating a new block. > > BUG=chromium:744109 > > Change-Id: I0bf98e3fb924851c162f6eca43d29a3f40dc9eaa > Reviewed-on: https://skia-review.googlesource.com/34541 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Herb Derby <herb@google.com> TBR=bungeman@google.com,herb@google.com Change-Id: I8ce2b45d13178395247dabd7af6853354399721c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:744109 Reviewed-on: https://skia-review.googlesource.com/35000 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix bogus math in object allocation.Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | When a size_t is convert from a very large number to ptrdiff_t, it becomes negative causing the existing block to be used instead of allocating a new block. BUG=chromium:744109 Change-Id: I0bf98e3fb924851c162f6eca43d29a3f40dc9eaa Reviewed-on: https://skia-review.googlesource.com/34541 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Control crash ArenaAlloc for unsatisfiable requests.Gravatar Ben Wagner2017-07-24
| | | | | | | | | BUG=chromium:747043 Change-Id: I24b757d75098a1125dcdf908a3aeffe98b16e66d Reviewed-on: https://skia-review.googlesource.com/26372 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkSTArenaAllocGravatar Florin Malita2017-05-24
| | | | | | | | | Syntactic sugar, gets rid of some boilerplate. Change-Id: Ibdb28b7a8f1d5e4a4e18c12d423b987d7194e340 Reviewed-on: https://skia-review.googlesource.com/17837 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* inline SkArenaAlloc::allocObject()Gravatar Mike Klein2017-05-24
| | | | | | | | | Call overhead does appear to be showing up on our profiles. Change-Id: If3875a8972769f45282e0eb1d4aef6324cd56878 Reviewed-on: https://skia-review.googlesource.com/17833 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add instrumentation into SkArenaAlloc.Gravatar Herb Derby2017-04-27
| | | | | | | | | | | | Add a parameter to the constructor that will have the dtor print out stats for setting the initial parameters. Clean up: Move some function so they are in the same order as .h Change-Id: I19d87dcc9c3b8dcc3e1d4f2ff078b78bbc490d92 Reviewed-on: https://skia-review.googlesource.com/14600 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Remove dangerous constructor from SkArenaAllocGravatar Herb Derby2017-04-14
| | | | | | | | | | | Make the constructors for SkArenaAlloc unambiguous. TBR=mtklein@google.com Change-Id: Iaa6419574e78e17bf746f5f9bcdf99c9d6c9d727 Reviewed-on: https://skia-review.googlesource.com/13540 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Use Fibonacci instead of 2^n for block growth.Gravatar Herb Derby2017-03-08
| | | | | | | | | | | | Chrome on android showed an increase of 5% memory use when 2^n block growth was introduced. Use Fibonacci instead. BUG=chromium:699130 Change-Id: I228d66385c63d487e72db46356f44e9efb5fa0f3 Reviewed-on: https://skia-review.googlesource.com/9447 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Use an exponential growth strategy for extra blocks.Gravatar Herb Derby2017-03-03
| | | | | | | Change-Id: I4137cb60b79184456aa71d18cb31a52c27bd8792 Reviewed-on: https://skia-review.googlesource.com/9260 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Switch from size_t to uint32_t to represent constraints better.Gravatar Herb Derby2017-02-17
| | | | | | | | | | TBR=mtklein@google.com Change-Id: Ib7400f2a3e2af0d8976998e5857c4d2c9cb6dbd0 Reviewed-on: https://skia-review.googlesource.com/7614 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Add sk_sp make variant to SkArenaAlloc.Gravatar Herb Derby2017-02-06
| | | | | | | | | | R=bungeman@google.com BUG=skia: Change-Id: Iec588cb6946f0230ff3d3ec46499c365aa6b8d09 Reviewed-on: https://skia-review.googlesource.com/8067 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Simplify Footers in SkArenaAlloc to 64-bit values using pointers.Gravatar Herb Derby2017-01-25
| | | | | | | | | TBR=mtklein@google.com Change-Id: I72c6cf6857b2bb00f4259cc9c4de2d51d454e6ab Reviewed-on: https://skia-review.googlesource.com/7582 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Make the footer big to handle bug 684061.Gravatar Herb Derby2017-01-24
| | | | | | | | | | | | R=mtklein@google.com BUG=chromium:684061 Change-Id: I210ca93e00ec6fa5d166c0fde5cdcff0f60c26ca Reviewed-on: https://skia-review.googlesource.com/7450 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix comparison that overflows for addresses near uint max.Gravatar Herb Derby2017-01-23
| | | | | | | | | | | | - Fix Assert TBR=mtklein@google.com BUG=chromium:683578 Change-Id: Iba503d1febace367c71f79a3b9accc0ec3e50f11 Reviewed-on: https://skia-review.googlesource.com/7418 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix comparison that overflows for addresses near uint max."Gravatar Ethan Nicholas2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit db8b8376b09cec9656b0ab864413b7911d81a84c. Reason for revert: Assertion failure, see https://luci-milo.appspot.com/swarming/task/33e5ae4d2bb25210/steps/dm/0/stdout Original change's description: > Fix comparison that overflows for addresses near uint max. > > BUG=chromium:683578 > > Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067 > Reviewed-on: https://skia-review.googlesource.com/7410 > Commit-Queue: Herb Derby <herb@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:683578 Change-Id: I198ea4c7209d060d0d15dfa3f6e555fa06e1a632 Reviewed-on: https://skia-review.googlesource.com/7415 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
* Fix comparison that overflows for addresses near uint max.Gravatar Herb Derby2017-01-23
| | | | | | | | | | BUG=chromium:683578 Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067 Reviewed-on: https://skia-review.googlesource.com/7410 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Update SkTDict to use SkArenaAlloc.Gravatar Herb Derby2017-01-23
| | | | | | | Change-Id: I7ac33faa59bcad25b0580193af965a8525eb18e7 Reviewed-on: https://skia-review.googlesource.com/7360 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix reset and deleting behavior.Gravatar Herb Derby2017-01-19
| | | | | | | | | | * Reset the Arena state. * Call all the dtors before deleting the blocks. Change-Id: I6d90463966ac7bf9f0a4fda229f67d508c86bebb Reviewed-on: https://skia-review.googlesource.com/7308 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix reset and deleting behavior."Gravatar Herb Derby2017-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 412a86d014783be99a7a9a0fae407791b95806e8. Reason for revert: <INSERT REASONING HERE> Original change's description: > Fix reset and deleting behavior. > > * Reset the Arena state. > * Call all the dtors before deleting the blocks. > > TBR=mtklein@google.com > > Change-Id: Iac320fec16e572cc9a6184c1f580089ab720f036 > Reviewed-on: https://skia-review.googlesource.com/7221 > Reviewed-by: Herb Derby <herb@google.com> > Commit-Queue: Herb Derby <herb@google.com> > TBR=herb@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4f4d34e0190a60d418f11326a9a9688d7487b8d8 Reviewed-on: https://skia-review.googlesource.com/7261 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Fix reset and deleting behavior.Gravatar Herb Derby2017-01-18
| | | | | | | | | | | | * Reset the Arena state. * Call all the dtors before deleting the blocks. TBR=mtklein@google.com Change-Id: Iac320fec16e572cc9a6184c1f580089ab720f036 Reviewed-on: https://skia-review.googlesource.com/7221 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Remove SkFallbackAlloc and SkFixedAlloc.Gravatar Herb Derby2017-01-16
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN TBR=reed@google.com Change-Id: I1000dc9ed8ad65b249798759d9af99f47fc237d2 Reviewed-on: https://skia-review.googlesource.com/6809 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>