skia2/tests
fmalita 3c196def91 Souped-up SkTextBlob.
Refactored text blob backend for improved performance: instead of using
separate buffers for runs/positions/glyphs, everything is now packed in
a consolidated slab (including the SkTextBlob object itself!).

Benefits:

 * number of allocations per blob construction reduced from ~4 to 1
   (also minimizes internal fragmentation)
 * run record size reduced by 8 bytes

This takes the blob construction overhead down to negligible levels
(for the current Blink uncached textblob implementation).

Unfortunately, the code is much more finicky (run merging in
particular) -- hence the assert spree.

Multi-run blobs are vulnerable to realloc storms but this is not a
problem at the moment because Blink is using one-run blobs 99% of the
time. Will be addressed in the future.

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

Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/581173003
2014-09-20 05:40:22 -07:00
..
AAClipTest.cpp Revert of Revert of allow canvas to force conservative clips (for speed) (patchset #1 id:1 of https://codereview.chromium.org/554033003/) 2014-09-09 18:46:22 -07:00
AnnotationTest.cpp
ARGBImageEncoderTest.cpp make allocPixels throw on failure 2014-09-02 12:50:45 -07:00
AsADashTest.cpp
AtomicTest.cpp
BBoxHierarchyTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
BitmapCopyTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
BitmapGetColorTest.cpp
BitmapHasherTest.cpp make allocPixels throw on failure 2014-09-02 12:50:45 -07:00
BitmapHeapTest.cpp
BitmapTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
BitSetTest.cpp
BlendTest.cpp
BlitRowTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
BlurTest.cpp
CachedDecodingPixelRefTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
CanvasStateHelpers.cpp
CanvasStateHelpers.h
CanvasStateTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
CanvasTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
ChecksumTest.cpp
ClampRangeTest.cpp
ClipCacheTest.cpp
ClipCubicTest.cpp
ClipperTest.cpp
ClipStackTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
ColorFilterTest.cpp
ColorPrivTest.cpp
ColorTest.cpp
DashPathEffectTest.cpp
DataRefTest.cpp
DeferredCanvasTest.cpp Picture Recording: fix the performance bottleneck in SkDeferredCanvas::isFullFrame 2014-09-15 22:30:38 -07:00
DequeTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
DeviceLooperTest.cpp
DiscardableMemoryPoolTest.cpp
DiscardableMemoryTest.cpp
DocumentTest.cpp
DrawBitmapRectTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
DrawPathTest.cpp
DrawTextTest.cpp
DynamicHashTest.cpp
EmptyPathTest.cpp
ErrorTest.cpp Clear away any lingering error before testing SkError. 2014-09-11 14:41:56 -07:00
FillPathTest.cpp
FitsInTest.cpp
FlatDataTest.cpp
FlateTest.cpp
FloatingPointTextureTest.cpp
FontConfigParser.cpp
FontHostStreamTest.cpp
FontHostTest.cpp
FontMgrTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
FontNamesTest.cpp
FontObjTest.cpp
FrontBufferedStreamTest.cpp
GeometryTest.cpp
GifTest.cpp
GLInterfaceValidationTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
GLProgramsTest.cpp Stop calling rand() in debug-only code for GLProgramsTest 2014-09-19 07:47:08 -07:00
GpuColorFilterTest.cpp
GpuDrawPathTest.cpp use surface instead of explicitly making gpudevice 2014-09-18 06:09:44 -07:00
GpuLayerCacheTest.cpp Separate replacement creation from layer discovery 2014-09-17 07:50:47 -07:00
GpuRectanizerTest.cpp
GradientTest.cpp
GrAllocatorTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
GrBinHashKeyTest.cpp Make textures register with GrResourceCache2 as scratch. 2014-08-28 09:54:34 -07:00
GrContextFactoryTest.cpp
GrDrawTargetTest.cpp
GrGLSLPrettyPrintTest.cpp
GrMemoryPoolTest.cpp
GrOrderedSetTest.cpp
GrRedBlackTreeTest.cpp
GrSurfaceTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
GrTBSearchTest.cpp
ImageCacheTest.cpp Change SkResourceCache to take a Visitor inside its find(). 2014-09-15 11:39:45 -07:00
ImageDecodingTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
ImageFilterTest.cpp Allow negative values in SkBlurImageFilter sigma. 2014-09-09 09:15:04 -07:00
ImageGeneratorTest.cpp Add support for the Rec601 YUV color space to GrYUVtoRGBEffect. 2014-09-12 17:45:58 -07:00
ImageIsOpaqueTest.cpp
ImageNewShaderTest.cpp
InfRectTest.cpp
InterpolatorTest.cpp
JpegTest.cpp
KtxTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
LayerDrawLooperTest.cpp
LayerRasterizerTest.cpp
LListTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
MallocPixelRefTest.cpp use SkData::NewUninitialized 2014-09-12 12:12:27 -07:00
MathTest.cpp
Matrix44Test.cpp Add helper SkMatrix44::hasPerspective() 2014-09-16 08:29:29 -07:00
MatrixClipCollapseTest.cpp
MatrixTest.cpp Fix matrix similarity test on arm64 2014-09-02 13:15:41 -07:00
MD5Test.cpp
MemoryTest.cpp
MemsetTest.cpp
MessageBusTest.cpp
MetaDataTest.cpp
MiniDataTest.cpp Add SkMiniData. 2014-09-17 12:21:59 -07:00
MipMapTest.cpp
NameAllocatorTest.cpp
ObjectPoolTest.cpp
OnceTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
OSPathTest.cpp
PackBitsTest.cpp
PaintTest.cpp
ParsePathTest.cpp
PathCoverageTest.cpp
PathMeasureTest.cpp
PathOpsAngleIdeas.cpp
PathOpsAngleTest.cpp
PathOpsBattles.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
PathOpsBoundsTest.cpp
PathOpsCubicIntersectionTest.cpp
PathOpsCubicIntersectionTestData.cpp
PathOpsCubicIntersectionTestData.h
PathOpsCubicLineIntersectionIdeas.cpp
PathOpsCubicLineIntersectionTest.cpp
PathOpsCubicQuadIntersectionTest.cpp
PathOpsCubicReduceOrderTest.cpp
PathOpsCubicToQuadsTest.cpp
PathOpsDCubicTest.cpp
PathOpsDebug.cpp
PathOpsDLineTest.cpp
PathOpsDPointTest.cpp
PathOpsDQuadTest.cpp
PathOpsDRectTest.cpp
PathOpsDTriangleTest.cpp
PathOpsDVectorTest.cpp
PathOpsExtendedTest.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
PathOpsExtendedTest.h fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
PathOpsInverseTest.cpp
PathOpsLineIntersectionTest.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
PathOpsLineParametetersTest.cpp
PathOpsOpCubicThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsOpLoopThreadedTest.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
PathOpsOpRectThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsOpTest.cpp fail early if coincidence can't be resolved 2014-09-19 06:33:31 -07:00
PathOpsQuadIntersectionTest.cpp
PathOpsQuadIntersectionTestData.cpp
PathOpsQuadIntersectionTestData.h
PathOpsQuadLineIntersectionTest.cpp
PathOpsQuadLineIntersectionThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsQuadParameterizationTest.cpp
PathOpsQuadReduceOrderTest.cpp
PathOpsSimplifyDegenerateThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsSimplifyFailTest.cpp
PathOpsSimplifyQuadralateralsThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsSimplifyQuadThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsSimplifyRectThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsSimplifyTest.cpp
PathOpsSimplifyTrianglesThreadedTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsSkpClipTest.cpp Change SkPicture::draw to playback 2014-09-04 08:42:50 -07:00
PathOpsSkpTest.cpp
PathOpsTestCommon.cpp
PathOpsTestCommon.h
PathOpsThreadedCommon.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsThreadedCommon.h SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsTightBoundsTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
PathOpsTypesTest.cpp
PathTest.cpp Fix convexicator bug 2014-09-16 09:43:32 -07:00
PathUtilsTest.cpp
PDFJpegEmbedTest.cpp JPEG(JFIF only) directly embedded into PDF 2014-08-27 13:00:54 -07:00
PDFPrimitivesTest.cpp
PictureShaderTest.cpp
PictureStateTreeTest.cpp
PictureTest.cpp Fix bug in layer hoisting transition to SkRecord backend 2014-09-16 10:32:43 -07:00
PipeTest.cpp
PixelRefTest.cpp
PointTest.cpp
PremulAlphaRoundTripTest.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
QuickRejectTest.cpp
RandomTest.cpp
Reader32Test.cpp
ReadPixelsTest.cpp make allocPixels throw on failure 2014-09-02 12:50:45 -07:00
ReadWriteAlphaTest.cpp Make SkGpuDevice constructors private. 2014-08-28 14:06:42 -07:00
RecordDrawTest.cpp Fix bug in layer hoisting transition to SkRecord backend 2014-09-16 10:32:43 -07:00
RecorderTest.cpp Implement all SkCanvas overrides that SkPictureRecord does. 2014-09-04 14:12:44 -07:00
RecordingTest.cpp
RecordingXfermodeTest.cpp Fix recording of saveLayout with unusual Xfermodes. 2014-09-15 10:53:16 -07:00
RecordOptsTest.cpp Turn disable or delete optimizations that don't have any effect. 2014-09-16 11:11:20 -07:00
RecordPatternTest.cpp
RecordReplaceDrawTest.cpp Copy layer-hoisting related SkPaints 2014-09-18 08:01:23 -07:00
RecordTest.cpp Align all SkRecord::alloc() calls up to at least a pointer size. 2014-08-28 14:10:05 -07:00
RecordTestUtils.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
RefCntTest.cpp
RefDictTest.cpp
RegionTest.cpp
ResourceCacheTest.cpp use surface instead of explicitly making gpudevice 2014-09-18 06:09:44 -07:00
RoundRectTest.cpp
RTConfRegistryTest.cpp
RTreeTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
RuntimeConfigTest.cpp
ScalarTest.cpp
SerializationTest.cpp Serialize the font index. 2014-09-18 10:55:32 -07:00
SHA1Test.cpp
ShaderImageFilterTest.cpp
ShaderOpacityTest.cpp
SizeTest.cpp
SkBase64Test.cpp
skia_test.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
SkpSkGrTest.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
SkResourceCacheTest.cpp allow SkBitmapCache to operate on a local instance, for testability 2014-09-16 10:39:55 -07:00
SListTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SmallAllocatorTest.cpp
SortTest.cpp
SrcOverTest.cpp
StreamTest.cpp
StringTest.cpp
StrokeTest.cpp
SurfaceTest.cpp Bis: Use SkImage::NewFromGenerator() instead of SkImage::newEncodedData() 2014-09-18 11:55:14 -07:00
TArrayTest.cpp
TDStackNesterTest.cpp
Test.cpp SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
Test.h SkThreadPool ~~> SkTaskGroup 2014-09-03 15:34:37 -07:00
TextBlobTest.cpp Souped-up SkTextBlob. 2014-09-20 05:40:22 -07:00
TextureCompressionTest.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
TileGridTest.cpp Change SkPicture::draw to playback 2014-09-04 08:42:50 -07:00
TLSTest.cpp
ToUnicodeTest.cpp
TracingTest.cpp
TSetTest.cpp
TypefaceTest.cpp
UnicodeTest.cpp
UtilsTest.cpp
WArrayTest.cpp
WritePixelsTest.cpp make allocPixels throw on failure 2014-09-02 12:50:45 -07:00
Writer32Test.cpp
XfermodeTest.cpp