skia2/include/private
csmartdalton 42eafa4bc0 Begin instanced rendering for simple shapes
Adds a module that performs instanced rendering and starts using it
for a select subset of draws on Mac GL platforms. The instance
processor can currently handle rects, ovals, round rects, and double
round rects. It can generalize shapes as round rects in order to
improve batching. The instance processor also employs new drawing
algorithms, irrespective of instanced rendering, that improve GPU-side
performance (e.g. sample mask, different triangle layouts, etc.).

This change only scratches the surface of instanced rendering. The
majority of draws still only have one instance. Future work may
include:

 * Passing coord transforms through the texel buffer.
 * Sending FP uniforms through instanced vertex attribs.
 * Using instanced rendering for more draws (stencil writes,
   drawAtlas, etc.).
 * Adding more shapes to the instance processor’s repertoire.
 * Batching draws that have mismatched scissors (analyzing draw
   bounds, inserting clip planes, etc.).
 * Bindless textures.
 * Uber shaders.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2066993003

Review-Url: https://codereview.chromium.org/2066993003
2016-06-30 12:15:49 -07:00
..
GrAuditTrail.h Fix up GrAuditTrail to allow arbitrary reordering 2016-03-08 10:43:42 -08:00
GrInstancedPipelineInfo.h Begin instanced rendering for simple shapes 2016-06-30 12:15:49 -07:00
GrRenderTargetProxy.h Add Gr*Proxy classes 2016-05-04 12:47:41 -07: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 Add Gr*Proxy classes 2016-05-04 12:47:41 -07:00
GrTextureProxy.h Add Gr*Proxy classes 2016-05-04 12:47:41 -07:00
SkAtomics.h Convert SkRefCnt to std::atomic. 2016-04-08 06:58:52 -07:00
SkChecksum.h Switch uses of SkChecksum::Compute to Murmur3. 2015-11-16 11:16:23 -08:00
SkFixed.h Remove Sk(Float|Double)PinToFixed functions, only used in tests. 2016-05-06 11:45:55 -07:00
SkFloatBits.h Clean up SkFloatBits 2016-05-27 10:47:32 -07:00
SkFloatingPoint.h Move immintrin/arm_neon includes to where they are used. 2016-06-09 13:40:56 -07:00
SkGpuFenceSync.h Implement vulkan fence syncs for nanobench 2016-05-16 14:09:56 -07:00
SkLeanWindows.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkMiniRecorder.h return pictures as sk_sp 2016-03-18 07:25:55 -07:00
SkMutex.h Type-erase SkAutoMutexAcquire and SkAutoExclusive. 2016-06-10 13:56:35 -07:00
SkOnce.h Simplify implementation of SkOnce to not need so many comments. 2016-05-04 13:57:30 -07:00
SkRecords.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkSemaphore.h Modernize SkMutex and SkSemaphore. 2016-05-05 10:57:37 -07:00
SkSpinlock.h Add reminders that these classes have constexpr default constructors. 2016-04-29 13:58:18 -07:00
SkTArray.h sk_sp for Ganesh. 2016-06-09 08:01:03 -07:00
SkTDArray.h detach -> release 2016-03-16 13:53:35 -07:00
SkTDict.h move SkTDict and SkTSearch into private 2016-01-03 18:36:05 -08:00
SkTemplates.h Make container classes in SkTemplates.h more consistent 2016-06-23 12:55:14 -07:00
SkTFitsIn.h Templatize SkToXXX. 2016-03-19 15:06:56 -07:00
SkTHash.h SkTHash: hash from fnptr to functor type 2015-10-15 12:23:02 -07:00
SkThreadID.h Unify ThreadID. 2015-09-29 14:38:01 -07:00
SkTLogic.h Remove skstd::is_function. 2016-04-29 08:27:14 -07:00
SkTSearch.h move SkTDict and SkTSearch into private 2016-01-03 18:36:05 -08:00
SkWeakRefCnt.h Convert SkRefCnt to std::atomic. 2016-04-08 06:58:52 -07:00