diff options
author | mtklein <mtklein@google.com> | 2015-04-08 14:09:41 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-08 14:09:41 -0700 |
commit | 35f55764b81390a085fb90f624082c196fbd6229 (patch) | |
tree | e16cf8961b814300b4c3f02551aff5cd869ffd06 /src/core/SkRecord.cpp | |
parent | e2dd9408cd711777afaa9410427fb0d761ab004a (diff) |
Revert of Rearrange SkRecord with small N in mind (patchset #8 id:120001 of https://codereview.chromium.org/1061783002/)
Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug/builds/149/steps/dm/logs/stdio
Original issue's description:
> Rearrange SkRecord with small N in mind
>
> This rearranges the record pointers and types so they can go in a single array, then preallocates some space for them and for the SkVarAlloc.
>
> picture_overhead_draw bench drops from ~1000ns to 500-600ns, with no effect on picture_overhead_nodraw.
>
> I don't see any significant effect on large picture recording times from our .skps.
>
> BUG=chromium:470553
>
> Committed: https://skia.googlesource.com/skia/+/e2dd9408cd711777afaa9410427fb0d761ab004a
TBR=reed@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:470553
Review URL: https://codereview.chromium.org/1068383003
Diffstat (limited to 'src/core/SkRecord.cpp')
-rw-r--r-- | src/core/SkRecord.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/core/SkRecord.cpp b/src/core/SkRecord.cpp index c2008a850a..e2d919b777 100644 --- a/src/core/SkRecord.cpp +++ b/src/core/SkRecord.cpp @@ -1,10 +1,3 @@ -/* - * Copyright 2015 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - #include "SkRecord.h" SkRecord::~SkRecord() { @@ -16,13 +9,13 @@ SkRecord::~SkRecord() { void SkRecord::grow() { SkASSERT(fCount == fReserved); - SkASSERT(fReserved > 0); - fReserved *= 2; + fReserved = SkTMax<unsigned>(kFirstReserveCount, fReserved*2); fRecords.realloc(fReserved); + fTypes.realloc(fReserved); } size_t SkRecord::bytesUsed() const { return fAlloc.approxBytesAllocated() + - (fReserved - kInlineRecords) * sizeof(Record) + + fReserved * (sizeof(Record) + sizeof(Type8)) + sizeof(SkRecord); } |