skia2/include/private
Brian Osman 03776fc0d7 Speed up convexpaths GM in debug builds
That GM has a path with 16k points, arranged in a rectangle. When we try
to draw it in Ganesh, we first check to see if it's a (closed) rectangle.
We eventually decide that it is a rectangle, but not closed, so it gets
passed along. Then we construct a GrShape, which tries to simplify the
shape, again asking if it's a rectangle...

Each isRect query was iterating over the 16k verbs, and for each one,
calling atVerb(i). That, internally, calls verbs(), which calls validate()
in debug builds. So we were walking all 16k points 16k times (to ensure
the bounds were correct). The end result is that the GM took over 11
seconds to draw, and now takes 3 ms.

Bug: skia:
Change-Id: If5f7a067b8c25f049dc64275d94a42ae4a50f6a9
Reviewed-on: https://skia-review.googlesource.com/34723
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-08-15 20:29:07 +00:00
..
GrAuditTrail.h Remove RenderTarget pointer from GrRenderTargetOpList::RecordedOp 2017-05-17 14:19:40 +00:00
GrGLSL.h renamed SkSL types in preparation for killing precision modifiers 2017-07-28 20:43:03 +00:00
GrInstancedPipelineInfo.h Remove GrSurfaceProxy::desc() 2017-05-17 13:27:12 +00:00
GrRenderTargetProxy.h Remove accessRenderTarget calls in service of binding stencil buffer 2017-08-10 12:47:25 +00:00
GrSingleOwner.h Reland of Make a single GrSingleOwner in GrContext (patchset #1 id:1 of https://codereview.chromium.org/1565303003/ ) 2016-01-08 10:09:13 -08:00
GrSurfaceProxy.h Remove accessRenderTarget calls in service of binding stencil buffer 2017-08-10 12:47:25 +00:00
GrSwizzle.h Add Swizzle FP, and remove swizzle logic from GrConfigConversionEffect 2017-03-22 19:16:30 +00:00
GrTextureProxy.h Reduce dependence on GrSurface's origin field (take 3) 2017-07-25 17:34:29 +00:00
GrTypesPriv.h Make GrFragmentProcessor be non-refcounted and use std::unique_ptr. 2017-08-11 14:13:26 +00:00
SkAtomics.h Clean up some unused atomic routines. 2016-07-27 08:40:45 -07:00
SkBitmaskEnum.h SkPDF: SkPDFFont class changes 2016-08-16 09:36:23 -07:00
SkChecksum.h Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -07:00
SkFixed.h Fix new IT blocks ARMv8 2017-04-26 22:45:15 +00:00
SkFloatBits.h clean up useage of SkFloatBits 2017-08-07 02:49:29 +00:00
SkFloatingPoint.h handle overflows in float->int 2017-08-09 16:07:24 +00:00
SkLeanWindows.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkMalloc.h Change SkMemory to the more accurately named SkMalloc. 2017-03-27 18:13:07 +00:00
SkMessageBus.h Purge clip masks when they are no longer findable. 2017-01-06 19:42:08 +00:00
SkMutex.h Type-erase SkAutoMutexAcquire and SkAutoExclusive. 2016-06-10 13:56:35 -07:00
SkOnce.h tweak SkOnce.h header to work around issues with std::atomic::compare_exchange_strong 2016-12-16 22:21:27 +00:00
SkPathRef.h Speed up convexpaths GM in debug builds 2017-08-15 20:29:07 +00:00
SkSafe_math.h Guard against buggy ucrt\math.h. 2016-11-28 15:40:23 +00:00
SkSemaphore.h Fix SkSemaphore comments. 2017-02-22 20:11:54 +00:00
SkShadowFlags.h Add tonal color support for shadows. 2017-06-09 17:18:58 +00:00
SkSpinlock.h Cache GrColorSpaceXforms 2016-10-20 20:47:33 +00:00
SkTArray.h Make SkTArray maintain reserve count 2017-06-16 12:17:19 +00:00
SkTDArray.h Change SkMemory to the more accurately named SkMalloc. 2017-03-27 18:13:07 +00:00
SkTemplates.h make SkAutoTMalloc self-move safe 2017-04-07 19:06:12 +00:00
SkTFitsIn.h Templatize SkToXXX. 2016-03-19 15:06:56 -07:00
SkTHash.h Add mock config to tools and run through gms and benchs without crashing. 2017-07-07 20:47:38 +00:00
SkThreadID.h Unify ThreadID. 2015-09-29 14:38:01 -07:00
SkTLogic.h Fix syntax error for adjusting old stdc++ headers. 2017-01-13 21:26:03 +00:00
SkTSearch.h move SkTDict and SkTSearch into private 2016-01-03 18:36:05 -08:00
SkWeakRefCnt.h Mark overridden destructors with 'override' and remove 'virtual' 2017-03-22 16:06:18 +00:00