History log of /external/skia/src/core/SkGlyphCache.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2ff52920b43304e83d7def592dfacc73b54373e 07-Mar-2015 herb <herb@google.com> Fix bit rot in SkGlyphCache validate code.

TESTED
CFLAGS=-DSK_DEBUG_GLYPH_CACHE CPPFLAGS=-DSK_DEBUG_GLYPH_CACHE ./gyp_skia

ninja -C out/Debug dm
out/Debug/dm

Review URL: https://codereview.chromium.org/989683002
/external/skia/src/core/SkGlyphCache.cpp
c1e97b372e21edf9c7e45cfea0eca7f1a52fe9e5 05-Mar-2015 herb <herb@google.com> Fix uninitialized memory bug in the SkGlyphCache.

The core of the problem is that the system is asked to lookup the metrics for a character with id == 0. This causes a hit in the fCharToGlyphHash matching the sentinel glyph. This happens because fCharToGlpyhHash is initialized with all zeros, therefore, the fID is zero matching the char with id == 0. The fAdvanceX field of the sentinel glyph is in fact not initialized.

The bigger question is now did a zero character get passed to getUnicharMetrics?

The breaking code is basically as follows:
wchar_t glyph = L'S';
paint.measureText(&glyph, 2);

This get mischaracterized as a utf8 string instead of a utf16(?) string. Because of the little endian ordering, this is the character string 'L' '\0'. Since the size of the original string is two bytes (but a single character) the '\0' is treated as its own character and past to getUnicharMetrics.

TEST:
On windows failed using DrMemory. With this change does not fail.

BUG=463204

Review URL: https://codereview.chromium.org/977063002
/external/skia/src/core/SkGlyphCache.cpp
e70de9e4f0b7bf73f7cd1a20dbabcb233ffbb7f1 27-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.

Perf Reports
bin/c --match nytimes --config 8888
desk_nytimes.skp_1_mpd 1.41ms -> 1.38ms 0.98x
desk_nytimes.skp_1 1.94ms -> 1.87ms 0.97x

bin/c --match nytimes --config gpu
desk_nytimes.skp_1_mpd 1.63ms -> 1.59ms 0.97x
desk_nytimes.skp_1 1.56ms -> 1.5ms 0.97x

Here are results from mac instruments:
--match nytimes --config gpu --samples 10000 --skps /Users/herb/src/skia/skps

Inline:
Total Samples Running Time Self Symbol Name
94335 94335.0ms 98.3% 0.0 start
2365 2365.0ms 2.4% 2365.0 SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
975 975.0ms 1.0% 975.0 SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

Clean:
Total Samples Running Time Self Symbol Name
96833 96833.0ms 97.3% 0.0 start
3418 3418.0ms 3.4% 3418.0 SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
1961 1961.0ms 1.9% 1961.0 SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

Review URL: https://codereview.chromium.org/885903002
/external/skia/src/core/SkGlyphCache.cpp
b69d0e0ac45e13f667bc11a937dcb547072bc93d 25-Feb-2015 herb <herb@google.com> BUG=skia:

(mtklein from here on)
No public API changes.
TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15

Review URL: https://codereview.chromium.org/939123002
/external/skia/src/core/SkGlyphCache.cpp
e59bbf1cd5dcce66181083821c43a157998bc78b 24-Feb-2015 scroggo <scroggo@google.com> Revert of Make fID and MixedID calculations private (patchset #5 id:80001 of https://codereview.chromium.org/939123002/)

Reason for revert:
This actually *does* change the public API - fID is now private, and it was being used on Android. See https://android-build.storage.googleapis.com/builds/git_master-skia-linux-volantis-userdebug/1751533/5242b865d3e9bebc650c9b326dfa9d68c8bd1f59562bf32b85301fb984dc8b26/logs/build.log?Signature=Q0el9M4kTu1KQ8u02KX9TH1Pa22y9BkDK1IW%2B9OeJJNfrDEVzLXAz0XQ%2BHHQM8xVjft06jZJva1V8InZmgjcOk6PdZQbQW6XwwsHLKsbpbAE48iTWH3AlJAAoTtj9cifzgeHW8g80IcVxwHXmINRER%2BLPz3eHGisgfTTFUoWYCc%3D&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com&Expires=1424786471 :

In file included from frameworks/base/libs/hwui/tests/../font/Font.cpp:26:0:
external/skia/src/core/SkGlyph.h: In member function 'android::uirenderer::CachedGlyphInfo* android::uirenderer::Font::cacheGlyph(const SkPaint*, glyph_t, bool)':
external/skia/src/core/SkGlyph.h:157:17: error: 'uint32_t SkGlyph::fID' is private
uint32_t fID;
^
frameworks/base/libs/hwui/tests/../font/Font.cpp:482:39: error: within this context
newGlyph->mGlyphIndex = skiaGlyph.fID;

We need to update Android in order to hide fID.

Original issue's description:
> BUG=skia:
>
> (mtklein from here on)
> No public API changes.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/f8d24e2c0c7b44b7ccf20e40890514db4cde7b15

TBR=mtklein@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/951353002
/external/skia/src/core/SkGlyphCache.cpp
f8d24e2c0c7b44b7ccf20e40890514db4cde7b15 24-Feb-2015 herb <herb@google.com> BUG=skia:

(mtklein from here on)
No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/939123002
/external/skia/src/core/SkGlyphCache.cpp
5a2a5e729c081aa8ddfaab3311b7730622689abf 09-Feb-2015 mtklein <mtklein@google.com> Revert of Make the glyph array entries inline. (patchset #11 id:190001 of https://codereview.chromium.org/885903002/)

Reason for revert:
Still broken.

Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1
>
> Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

TBR=reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/911513003
/external/skia/src/core/SkGlyphCache.cpp
b4c29ac173e6f8844327338687248b98bc94132d 09-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Review URL: https://codereview.chromium.org/885903002
/external/skia/src/core/SkGlyphCache.cpp
9bf4e5bbf6ca96042c0e0f5dca9a52a943f25716 03-Feb-2015 bsalomon <bsalomon@google.com> Revert of Make the glyph array entries inline. (patchset #10 id:170001 of https://codereview.chromium.org/885903002/)

Reason for revert:
I suspect this is causing the off-by-one character issues that show up in gold.skia.org as of now. All the errors I've seen are on a Win7 bot. Example:

good:
https://gold.skia.org/img/images/35396bb0d299b81c0031dc0632a019d4.png

bad:
https://gold.skia.org/img/images/484e511f9e696d95031cd25aeae59da0.png

Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

TBR=mtklein@google.com,reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/897463004
/external/skia/src/core/SkGlyphCache.cpp
4c08f16b252a55e438a61f26e5581394ed177da1 03-Feb-2015 herb <herb@google.com> Make the glyph array entries inline.
BUG=skia:

Review URL: https://codereview.chromium.org/885903002
/external/skia/src/core/SkGlyphCache.cpp
f8dd0765c04cd029f90cadd040b18a0724d2a2df 28-Jan-2015 herb <herb@google.com> Make char hash dynamic when needed.

BUG=skia:

Review URL: https://codereview.chromium.org/880383002
/external/skia/src/core/SkGlyphCache.cpp
40dab98de1bdb803035304077f43410d1f86f2d2 28-Jan-2015 reed <reed@google.com> Use murmur3 finisher to improve font hash efficiency.
Add dump() method to inspect glyphcache strikes.

Murmur addition improves hash efficient roughly 50%

BUG=skia:

Review URL: https://codereview.chromium.org/877113002
/external/skia/src/core/SkGlyphCache.cpp
25b76119e949fb064c840003a2e92633c25e8cdf 28-Jan-2015 mtklein <mtklein@google.com> Revert of patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001) (patchset #1 id:1 of https://codereview.chromium.org/881953002/)

Reason for revert:
==32435==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x621000d8cd00

Lots of info here:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/1198/steps/dm/logs/stdio

Original issue's description:
> patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001)
>
> Make the char cache dynamic in SkGlyphCache
> because it is rarely used.
>
> Landing on behalf of Herb.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/95faa61d63a6f62916f6f7be58c4624da8357e3b

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/881023003
/external/skia/src/core/SkGlyphCache.cpp
95faa61d63a6f62916f6f7be58c4624da8357e3b 28-Jan-2015 mtklein <mtklein@chromium.org> patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001)

Make the char cache dynamic in SkGlyphCache
because it is rarely used.

Landing on behalf of Herb.

BUG=skia:

Review URL: https://codereview.chromium.org/881953002
/external/skia/src/core/SkGlyphCache.cpp
a27b82ddf0fad959371a4ab1fba931826edb2f54 07-Jan-2015 jvanverth <jvanverth@google.com> Remove distance field generation and storage from SkGlyphCache.

BUG=skia:3103

Review URL: https://codereview.chromium.org/834103004
/external/skia/src/core/SkGlyphCache.cpp
148ec59001ca7d7e54aec580a048c6dd2a085991 13-Oct-2014 mtklein <mtklein@chromium.org> Require SK_DECLARE_STATIC_LAZY_PTR is used in global scope.

Function- or method- local scope isn't threadsafe; the pointer is generally
zero-initialized on first use in function scope (i.e. lazily... we have to go
deeper), but for globals we can be pretty sure the linker will do that for us.

BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/651723003
/external/skia/src/core/SkGlyphCache.cpp
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
/external/skia/src/core/SkGlyphCache.cpp
8a986721926f77aba3772acb5d1c575072acd05c 18-Aug-2014 bungeman <bungeman@google.com> Remove unused SkGlyphCache::VisitAllCaches.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/472153002
/external/skia/src/core/SkGlyphCache.cpp
78358bf624c7e7c09ffccf638c50870808d884d6 02-Jun-2014 mtklein <mtklein@chromium.org> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=15006

Committed: http://code.google.com/p/skia/source/detail?r=15014

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005
/external/skia/src/core/SkGlyphCache.cpp
f71e8fd0c5d2da9795d00a5b81b716ae585be14a 31-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Port most uses of SkOnce to SkLazyPtr. (https://codereview.chromium.org/304383005/)

Reason for revert:
linux x86-64 release segfault in src/ports/SkFontHost_fontconfig.cpp:107

http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX660-x86_64-Release/builds/905/steps/RunTests/logs/stdio

Original issue's description:
> Port most uses of SkOnce to SkLazyPtr.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=15006
>
> Committed: http://code.google.com/p/skia/source/detail?r=15014

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/306063004

git-svn-id: http://skia.googlecode.com/svn/trunk@15015 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
56f7cca144c539ec01f00d6382fded362ff193a3 31-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=15006

R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005

git-svn-id: http://skia.googlecode.com/svn/trunk@15014 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
f6351a071810b3a848a5002a0c0ba7e1490fd0db 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Port most uses of SkOnce to SkLazyPtr. (https://codereview.chromium.org/304383005/)

Reason for revert:
Leaking refs on SkTypeface on Macs.

Original issue's description:
> Port most uses of SkOnce to SkLazyPtr.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=15006

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/304283007

git-svn-id: http://skia.googlecode.com/svn/trunk@15009 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
5a70945ddd036b8079987954123ff8f382c285af 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Port most uses of SkOnce to SkLazyPtr.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/304383005

git-svn-id: http://skia.googlecode.com/svn/trunk@15006 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
261d0153e2ce1828355221f8dad0855eb6e6e243 12-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up global gSkSuppressFontCachePurgeSpew.

No one is using it except to flick it to true to shut up the spew,
but the spew is already guarded by #ifdef SPEW_PURGE_STATUS. Let's
leave it to SPEW_PURGE_STATUS.

Noticed this specificially when TSAN complained about FontScalerBench
modifying it in a thread-unsafe way.

BUG=skia:1792
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/264333008

git-svn-id: http://skia.googlecode.com/svn/trunk@14697 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
72b7bf859d8c1af3797d0c7e1ab661e6572ad898 28-Apr-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add missing include for r14397.


git-svn-id: http://skia.googlecode.com/svn/trunk@14398 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
b6ad00b17f1c983707013f7adec54bca72c0917b 28-Apr-2014 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create SkGlyphCache globals with SkOnce.

VC++ will have magic statics with VS2014, but does not currently have them.
The thread unsafe implementation was causing the DirectWrite bots to randomly
crash when running multi-threaded tests, as gGlobals could be seen as NULL.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/252713002

git-svn-id: http://skia.googlecode.com/svn/trunk@14397 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
762cd804375ff8478427dba4fe29379562b8fb60 15-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move distance field generation to the glyph cache.

Distance fields are currently created in GrTextStrike, which is the wrong place. This moves that to the glyph cache where it belongs.

As part of my testing, I found that when we fall back to paths in the GrDistanceFieldTextContext it was not scaling them properly, so that's fixed in here too.

R=robertphillips@google.com, reed@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/227593010

git-svn-id: http://skia.googlecode.com/svn/trunk@14193 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
a8c7f7702fb4bbedb615031bc653c5cd161a038e 24-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix (some) 64bit warnings -- size_t -> int

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/147053003

git-svn-id: http://skia.googlecode.com/svn/trunk@13178 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
d6bab0238655dbab24dfe92bd0b16b464310a8c7 02-Dec-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12427

git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
5b39f5ba9c339d1e4dae391fee9ec1396feec180 02-Dec-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
49360dfa6144621db9f3ec25995b8e817a0003c0 27-Nov-2013 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unused fields from SkGlyphCache.

Review URL: https://codereview.chromium.org/89423003

git-svn-id: http://skia.googlecode.com/svn/trunk@12407 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
65caeaf32d09f5886f3c740cfef2f1c26ef9cb50 27-Sep-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@11493 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
baed71fbfeee030184af74eb7e8622e99952bbf8 26-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add counting to Globals, and refactor some for clarity

BUG=

Review URL: https://codereview.chromium.org/24447003

git-svn-id: http://skia.googlecode.com/svn/trunk@11484 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
dfc740393e3476905af1964a280cd1e7a0940cc2 24-Sep-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete USE_CACHE_HASH

BUG=

Review URL: https://codereview.chromium.org/23526082

git-svn-id: http://skia.googlecode.com/svn/trunk@11450 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
84e22d847fc84727bc220947162363ee1fe068fc 10-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow createScalerContext to return null, and then have the GDI backend trigger that if we fail to create the necessary GDI resources

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/18484005

git-svn-id: http://skia.googlecode.com/svn/trunk@9957 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
4b60dbe661feadc276f911ee6dfc2058e5aea7ca 09-Jul-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move failable work outside of constructors for SkGlyphCache and SkScalerContextGDI. If we fail, try to purge everything and try again, in case the failure was from memory/os-resource exhaustion (e.g. out of HDC handles in windows)

BUG=

Review URL: https://codereview.chromium.org/18132009

git-svn-id: http://skia.googlecode.com/svn/trunk@9930 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
4d494f031cd52c79fec69adeaab2c02134b7959b 20-Jun-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@9695 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
6757a3c71fd6c16af6bbd76f268307f0177b17ae 19-Jun-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> combine glyph and image bulk alloc, and adjust initial alloc size, to reduce total waste from 50% to 30%

add diagnostics to measure cache efficiency

BUG=

Review URL: https://codereview.chromium.org/17449012

git-svn-id: http://skia.googlecode.com/svn/trunk@9691 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
0a01f5a2c44f3d6a7fa2d3c837f46894d9b29e5d 08-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> we only need one fontmetrics, since the paint (and fontcache) now know explicitly
if they are horizontal or vertical.

Review URL: https://codereview.chromium.org/14940018

git-svn-id: http://skia.googlecode.com/svn/trunk@9058 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
90808e87c21e93b8e670360655e0b0eb12cb2f87 19-Mar-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkTypeface* parameter to SkScalerContext (and its callers)
Use SkTypeface to create scalercontext instead of SkFontHost
Review URL: https://codereview.chromium.org/12706010

git-svn-id: http://skia.googlecode.com/svn/trunk@8223 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
e16efc1882ab34a0bb3ae361a2d37f840044cf87 26-Jan-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
000dea7573e5c902c3e04e93ad6a1aaf83c44d88 30-Nov-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Disabling validation of the glyph cache for standard debug builds.

The validation step is adding 50% overhead to the rendering of
text heavy SkPicture files.

Review URL: https://codereview.appspot.com/6856123

git-svn-id: http://skia.googlecode.com/svn/trunk@6635 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
0c3b9cfebaa40bd67d21fd4abd990e478f2006a1 29-Oct-2012 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Use consistent globals in AttachCache.
https://codereview.appspot.com/6816052/


git-svn-id: http://skia.googlecode.com/svn/trunk@6188 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
fbfcd5602128ec010c82cb733c9cdc0a3254f9f3 23-Aug-2012 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)

This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
c73dd5c6880739f26216f198c757028fd28df1a4 07-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkFlattenable buffers to be more modular.

This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.

BUG=

Review URL: https://codereview.appspot.com/6448095

git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
79a1c34ee45a3eb5edd568fd97626dff1b64a0db 30-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> land https://codereview.appspot.com/6448046/
Add a method reporting used font cache size to the SkGraphics API



git-svn-id: http://skia.googlecode.com/svn/trunk@4825 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
73c48f17137e332f4d1f06ff230d00c98ef92d27 20-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> removing trailing ',' on last entry in enum, to fix warning



git-svn-id: http://skia.googlecode.com/svn/trunk@4686 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
26344cfaffa6a78c545c3e2253ec26cc277f82c9 27-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add explicit purgeAll() so we don't get foiled by the min cache-limit
call unref instead of delete on the GrFontScaler
Review URL: https://codereview.appspot.com/6353045

git-svn-id: http://skia.googlecode.com/svn/trunk@4366 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
df9d656c352928f995abce0a62c4ec3255232a45 07-Jun-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add SkPath::getVerbs/countVerbs
Review URL: http://codereview.appspot.com/6306053/


git-svn-id: http://skia.googlecode.com/svn/trunk@4209 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
7b578928a5705f40cfe051ae1c41c1b2e1df0bdd 21-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> ~glyphcache_globals needs to actually delete its cache



git-svn-id: http://skia.googlecode.com/svn/trunk@4011 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
803c67dbd766185a1d72eda2561df006d2ecf382 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> change SetTLSFontCacheLimit to be void, since it doesn't easily know the prev value



git-svn-id: http://skia.googlecode.com/svn/trunk@3987 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
6172d67d1ca81876333d6753e7ce407e2d6d9c3f 17-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow font-cache to use thread_local_storage for a private cache
Review URL: https://codereview.appspot.com/6200051

git-svn-id: http://skia.googlecode.com/svn/trunk@3986 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
82d447d4f193f10a5ea77a0bcb5737fc35fb340d 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert TLS change (until we impl windows backend)



git-svn-id: http://skia.googlecode.com/svn/trunk@3858 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
09dcf754ff979dd30c3a1bd4443b54d99562fff0 07-May-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> allow thread-local font cache
Review URL: https://codereview.appspot.com/6101053

git-svn-id: http://skia.googlecode.com/svn/trunk@3857 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
098370137fc9c13acf1631bcc16d9ffbb0abf45f 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> move FontCacheLimit implementations into SkGlyphCache.cpp, in prep for TLS
Review URL: https://codereview.appspot.com/6110043

git-svn-id: http://skia.googlecode.com/svn/trunk@3751 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
331560e461a5ea12ebf2f0fba2371d0944b3a3a3 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix debug build



git-svn-id: http://skia.googlecode.com/svn/trunk@3750 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
eb9a9bfc73d7fa03e2dab16dd4734290a738e9e7 23-Apr-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> cleanups in prep for tls cache
Review URL: https://codereview.appspot.com/6109045

git-svn-id: http://skia.googlecode.com/svn/trunk@3749 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
8887be06192f85ad3c7c11df04dc03428627c76b 25-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> disable SPEW_PURGE_STATUS



git-svn-id: http://skia.googlecode.com/svn/trunk@3085 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
9998c669300281b5682fce72b036c1a6a619a44e 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove all references to SkGlobals (obsolete)



git-svn-id: http://skia.googlecode.com/svn/trunk@2713 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
5d248bce640b7f0a32afdc8b8ca571f3673c792b 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove use of SkGlobals



git-svn-id: http://skia.googlecode.com/svn/trunk@2712 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
d54c85731eb45afcdee1272acfd0cafda6348bab 17-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove obsolete SK_USE_RUNTIME_GLOBALS



git-svn-id: http://skia.googlecode.com/svn/trunk@2711 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
77407ca019ca1bb98dd65f940be825d38719e983 08-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add api to SkGraphics to get/set font cache limit
add SK_DEFAULT_FONT_CACHE_LIMIT to SkUserConfig, to override our default value



git-svn-id: http://skia.googlecode.com/svn/trunk@2621 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
11b4d8a251f23e399180f60e7b0fc70e68246e03 02-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add hack for testing gSkSuppressFontCachePurgeSpew



git-svn-id: http://skia.googlecode.com/svn/trunk@2589 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
5e2df64215f12660ab26b96816f40ad8e32bf16f 21-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> detect when LCD is really just BW, and remark the glyph as that.
allows us to take a much faster blitter.
TODO: inform SkGlyphCache of this, so it can shrink its allocation
for the image buffer (since BW takes up 1/16 as much ram)
TODO(2): allow for A8->BW conversion my having scalercontext set a flag
if it really-wants A8 (i.e. we have a maskfilter)



git-svn-id: http://skia.googlecode.com/svn/trunk@2301 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e 28-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Automatic update of all copyright notices to reflect new license terms.

I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
0bc7bf5fe418191473f8325d89dd9e74be3ff928 04-Mar-2011 ctguil@chromium.org <ctguil@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement SkScalerContext_Windows::generateGlyphCount() and provide access via SkGlyphCache interface.
* This will be used by PDF font code.

Review URL: http://codereview.appspot.com/4261042

git-svn-id: http://skia.googlecode.com/svn/trunk@888 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
22a0221968bbc7498110f098d7975989d0fbcf6d 01-Mar-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> check that alloc() succeeded before calling the scaler's getImage()



git-svn-id: http://skia.googlecode.com/svn/trunk@873 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
f2b98d67dcb6fcb3120feede9c72016fc7b3ead8 20-Dec-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> merge with changes for GPU backend



git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
17f694b0386ae42e66e76ffa19a0dabbc2191c62 19-Oct-2010 scarybeasts@gmail.com <scarybeasts@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clamp the maximum size of glyph width we will attempt to render.

Review URL: http://codereview.appspot.com/2519045



git-svn-id: http://skia.googlecode.com/svn/trunk@607 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
9d3a985aa3c82605346ed1518375a8c384b925e5 08-Jan-2010 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add glyph->unichar query (inverse of a cmap)



git-svn-id: http://skia.googlecode.com/svn/trunk@472 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp
8a1c16ff38322f0210116fa7293eb8817c7e477e 17-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> grab from latest android



git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkGlyphCache.cpp