aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRecord.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@google.com>2015-04-08 14:09:41 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-08 14:09:41 -0700
commit35f55764b81390a085fb90f624082c196fbd6229 (patch)
treee16cf8961b814300b4c3f02551aff5cd869ffd06 /src/core/SkRecord.cpp
parente2dd9408cd711777afaa9410427fb0d761ab004a (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.cpp13
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);
}