skia2/src/gpu
Chris Dalton 46983b7dd8 Introduce dynamic pipeline state
Adds a DynamicState struct to GrPipeline that has a field for the
scissor rect. Eventually this should become the only way to specify a
scissor rectangle and may grow to contain more fields. Adds an array of
DynamicStates to GrGpuCommandBuffer::draw and implements support in GL
and Vulkan.

Bug: skia:
Change-Id: If5aebbf9da5d192acf7e68e7def4674ffc7ec310
Reviewed-on: https://skia-review.googlesource.com/18510
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-06-07 18:26:11 +00:00
..
effects move Coeff into blendmode 2017-06-06 15:07:00 +00:00
gl Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
glsl move Coeff into blendmode 2017-06-06 15:07:00 +00:00
instanced Convert DstTexture to DstProxy (take 2) 2017-05-29 19:26:26 +00:00
ops Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
text sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
vk Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
GrAHardwareBufferImageGenerator.cpp Implement an SkImage backed by a Android hardware buffer 2017-06-02 14:51:24 +00:00
GrAHardwareBufferImageGenerator.h Implement an SkImage backed by a Android hardware buffer 2017-06-02 14:51:24 +00:00
GrAllocator.h Add test for processor->resource ref/io counts 2017-01-11 16:01:07 +00:00
GrAppliedClip.h Revert "Revert "Remove GrPipeline from GrDrawOp."" 2017-03-21 23:55:32 +00:00
GrAuditTrail.cpp Remove RenderTarget pointer from GrRenderTargetOpList::RecordedOp 2017-05-17 14:19:40 +00:00
GrAutoLocaleSetter.h Pass LC_ALL_MASK to newlocale 2017-04-17 20:04:47 +00:00
GrBackendSurface.cpp Make GrBackendTexture take Gr*Info refs in ctor, and copy them. 2017-05-02 14:08:28 +00:00
GrBackendTextureImageGenerator.cpp Remove GrSurfaceProxy::desc() 2017-05-17 13:27:12 +00:00
GrBackendTextureImageGenerator.h Implement an SkImage backed by a Android hardware buffer 2017-06-02 14:51:24 +00:00
GrBitmapTextureMaker.cpp Allow numerical color spaces with legacy rendering 2017-05-15 13:46:50 +00:00
GrBitmapTextureMaker.h Make SkGr.h GrTexture-free 2017-03-23 16:06:04 +00:00
GrBlend.cpp
GrBlurUtils.cpp Retract GrContext from src/gpu/effects 2017-03-15 15:20:40 +00:00
GrBlurUtils.h Make GrPaints move their GrProcessor ownership into GrPipelineBuilder. 2017-01-11 19:56:48 +00:00
GrBuffer.cpp
GrBuffer.h Remove more headers from include/gpu 2017-04-21 17:12:17 +00:00
GrBufferAllocPool.cpp Allow GrSurfaceProxy-derived classes to use flags when instantiating (take 2) 2017-02-28 17:21:55 +00:00
GrBufferAllocPool.h
GrCaps.cpp Remove ImmediateFlush mode 2017-06-02 17:35:18 +00:00
GrClip.h Fix GrReducedClip.cpp: assertion failure surrounding tiny query bounds 2017-06-05 19:53:06 +00:00
GrClipStackClip.cpp Make GrRenderTarget[(Proxy)|(Context)]? advertise a "full scene aa type". 2017-05-12 16:32:57 +00:00
GrClipStackClip.h Compute clipped draw bounds outside GrAppliedClip. 2017-03-14 18:51:49 +00:00
GrColorSpaceXform.cpp Add const to GrColorSpaceXform member arguments 2017-03-14 15:05:45 +00:00
GrColorSpaceXform.h Remove more headers from include/gpu 2017-04-21 17:12:17 +00:00
GrContext.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrContextPriv.h Remove GrSurface-based surfaceContext factories from GrContextPriv 2017-06-01 14:47:31 +00:00
GrCoordTransform.cpp Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrCoordTransform.h Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrDefaultGeoProcFactory.cpp Do color correction of vertex colors in GPU drawVertices 2017-05-31 20:28:07 +00:00
GrDefaultGeoProcFactory.h Do color correction of vertex colors in GPU drawVertices 2017-05-31 20:28:07 +00:00
GrDistanceFieldGenFromVector.cpp SkScalarMul is deprecated 2017-02-14 14:43:47 +00:00
GrDistanceFieldGenFromVector.h Generate Signed Distance Field directly from vector path 2017-01-09 18:39:43 -08:00
GrDrawingManager.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrDrawingManager.h Remove ImmediateFlush mode 2017-06-02 17:35:18 +00:00
GrDrawOpAtlas.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrDrawOpAtlas.h Make SkImage_Gpu be deferred (take 2) 2017-03-22 11:52:16 +00:00
GrDrawOpTest.cpp Include non-legacy GrMeshDrawOps in GLPrograms test. 2017-05-12 19:08:32 +00:00
GrDrawOpTest.h Include non-legacy GrMeshDrawOps in GLPrograms test. 2017-05-12 19:08:32 +00:00
GrFixedClip.cpp Compute clipped draw bounds outside GrAppliedClip. 2017-03-14 18:51:49 +00:00
GrFixedClip.h Compute clipped draw bounds outside GrAppliedClip. 2017-03-14 18:51:49 +00:00
GrFragmentProcessor.cpp Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrFragmentProcessor.h Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrGeometryProcessor.h Add support for instanced draws 2017-05-31 20:40:20 +00:00
GrGlyph.h
GrGpu.cpp sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrGpu.h Revert "Revert "Workaround Adreno driver issue with stencil clears."" 2017-06-06 23:32:28 +00:00
GrGpuCommandBuffer.cpp Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
GrGpuCommandBuffer.h Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
GrGpuFactory.cpp
GrGpuFactory.h
GrGpuResource.cpp Setup for another attempt to split up opLists 2017-05-11 19:44:39 +00:00
GrGpuResourceCacheAccess.h Revert "Revert "Add a new GrResourceCache purging mechanism for purging unused resources."" 2017-03-22 20:08:21 +00:00
GrGpuResourcePriv.h Allow wrapped resources to have unique keys 2017-05-08 15:48:44 +00:00
GrGpuResourceRef.cpp Setup for another attempt to split up opLists 2017-05-11 19:44:39 +00:00
GrImageTextureMaker.cpp Fold SkImageCacherator into SkImage_Lazy 2017-04-27 18:31:19 +00:00
GrImageTextureMaker.h Fold SkImageCacherator into SkImage_Lazy 2017-04-27 18:31:19 +00:00
GrMemoryPool.cpp Add debug helper for finding leaks in GrMemoryPool.h 2017-03-28 22:51:34 +00:00
GrMemoryPool.h Add debug helper for finding leaks in GrMemoryPool.h 2017-03-28 22:51:34 +00:00
GrMesh.h Fix invalid assert in GrMesh::setIndexed 2017-06-06 21:24:43 +00:00
GrNonAtomicRef.h
GrOnFlushResourceProvider.cpp Split up opLists (take 3) 2017-05-12 12:10:31 +00:00
GrOnFlushResourceProvider.h Add postFlush call to GrOnFlushCallbackObject 2017-05-05 15:53:36 +00:00
GrOpFlushState.cpp Revert "Expand partial render target write pixels workaround." 2017-05-31 16:22:03 +00:00
GrOpFlushState.h Revert "Expand partial render target write pixels workaround." 2017-05-31 16:22:03 +00:00
GrOpList.cpp Update clearOp for split-OpList world (take 3) 2017-05-31 17:00:22 +00:00
GrOpList.h Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrPaint.cpp Revert "Revert "Add a new non-AA rect op that does not inherit from GrLegacyMeshDrawOp."" 2017-05-03 21:41:38 +00:00
GrPaint.h Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrPath.cpp
GrPath.h
GrPathProcessor.cpp Cleanup ops that are storing GrPipelineOptimizations. 2017-01-05 20:01:26 +00:00
GrPathProcessor.h Cleanup ops that are storing GrPipelineOptimizations. 2017-01-05 20:01:26 +00:00
GrPathRange.cpp
GrPathRange.h
GrPathRenderer.cpp
GrPathRenderer.h Make GrRenderTarget[(Proxy)|(Context)]? advertise a "full scene aa type". 2017-05-12 16:32:57 +00:00
GrPathRendererChain.cpp Update minimum non-ES OpenGL spec to 2.0. 2017-05-08 16:52:14 +00:00
GrPathRendererChain.h Add the ability to enable/disable GPU path renderers 2017-02-22 20:29:56 +00:00
GrPathRendering.cpp sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrPathRendering.h sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrPathRenderingRenderTargetContext.cpp Delay SkPaint->GrPaint conversion in text rendering. 2017-01-13 17:38:10 +00:00
GrPathRenderingRenderTargetContext.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
GrPathUtils.cpp Revert "Handle too many (or too large) paths in GrDefaultPathRenderer" 2017-06-07 14:43:29 +00:00
GrPathUtils.h Revert "Handle too many (or too large) paths in GrDefaultPathRenderer" 2017-06-07 14:43:29 +00:00
GrPendingProgramElement.h
GrPipeline.cpp Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
GrPipeline.h Introduce dynamic pipeline state 2017-06-07 18:26:11 +00:00
GrPipelineBuilder.h Remove support for GLs without separate stencil. 2017-05-08 16:50:04 +00:00
GrPrimitiveProcessor.cpp Fully remove coord transform precision code 2017-04-04 13:19:18 +00:00
GrPrimitiveProcessor.h Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrProcessor.cpp Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrProcessor.h Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrProcessorAnalysis.cpp Make GrSimpleMeshDrawOpHelper record whether coverage can be implemented as alpha 2017-06-05 16:47:45 +00:00
GrProcessorAnalysis.h Make GrSimpleMeshDrawOpHelper record whether coverage can be implemented as alpha 2017-06-05 16:47:45 +00:00
GrProcessorSet.cpp Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrProcessorSet.h Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrProcessorUnitTest.cpp make GR_TEST_UTILS=0 work 2017-02-02 12:49:17 +00:00
GrProcessorUnitTest.h Convert DstTexture to DstProxy (take 2) 2017-05-29 19:26:26 +00:00
GrProgramDesc.cpp Convert DstTexture to DstProxy (take 2) 2017-05-29 19:26:26 +00:00
GrProgramDesc.h Replaced all calls to fragmentPosition() with sk_FragCoord 2017-02-13 14:49:09 +00:00
GrProgramElement.h Remove more headers from include/gpu 2017-04-21 17:12:17 +00:00
GrQuad.h
GrRect.h allow inf/nan in GrRect isect utility functions. 2017-05-10 12:53:32 +00:00
GrRectanizer_pow2.cpp
GrRectanizer_pow2.h Change SkMemory to the more accurately named SkMalloc. 2017-03-27 18:13:07 +00:00
GrRectanizer_skyline.cpp
GrRectanizer_skyline.h
GrRectanizer.h
GrReducedClip.cpp Fix GrReducedClip.cpp: assertion failure surrounding tiny query bounds 2017-06-05 19:53:06 +00:00
GrReducedClip.h Remove origin from GrClipStackClip and GrWindowRectsState. 2017-03-13 22:01:06 +00:00
GrRenderTarget.cpp Revert "Revert "Remove GrSurfaceDesc member from GrSurface."" 2017-05-21 11:41:17 +00:00
GrRenderTargetContext.cpp Remove support in GPU backend for distance vector field. 2017-06-02 19:44:18 +00:00
GrRenderTargetContext.h Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrRenderTargetContextPriv.h Move all non-AA fill rect ops off of GrLegacyMeshDrawOp. 2017-05-10 14:48:47 +00:00
GrRenderTargetOpList.cpp Update copyOp to split-opList world 2017-06-01 15:33:12 +00:00
GrRenderTargetOpList.h Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrRenderTargetPriv.h
GrRenderTargetProxy.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrResourceCache.cpp Remove ImmediateFlush mode 2017-06-02 17:35:18 +00:00
GrResourceCache.h Remove ImmediateFlush mode 2017-06-02 17:35:18 +00:00
GrResourceHandle.h
GrResourceProvider.cpp sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrResourceProvider.h sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrScissorState.h
GrSemaphore.h Control making of GrSemaphore objects inside of GrResourceProvider 2017-03-07 20:37:38 +00:00
GrShaderCaps.cpp Add support for instanced draws 2017-05-31 20:40:20 +00:00
GrShaderVar.cpp
GrShaderVar.h Remove two more gpu headers from include/* 2017-04-24 12:57:31 +00:00
GrShape.cpp
GrShape.h
GrSKSLPrettyPrint.cpp Attempt to work around iOS varying limit in GLPrograms test 2017-05-15 15:41:01 +00:00
GrSKSLPrettyPrint.h Attempt to work around iOS varying limit in GLPrograms test 2017-05-15 15:41:01 +00:00
GrSoftwarePathRenderer.cpp Move all non-AA fill rect ops off of GrLegacyMeshDrawOp. 2017-05-10 14:48:47 +00:00
GrSoftwarePathRenderer.h Rebase and fix chromium 2017-03-04 13:49:47 +00:00
GrStencilAttachment.cpp
GrStencilAttachment.h
GrStencilSettings.cpp Revert "Revert "Workaround Adreno driver issue with stencil clears."" 2017-06-06 23:32:28 +00:00
GrStencilSettings.h Revert "Revert "Workaround Adreno driver issue with stencil clears."" 2017-06-06 23:32:28 +00:00
GrStyle.cpp Try out new refFoo pattern on GrStyle 2017-01-13 16:50:25 +00:00
GrStyle.h Try out new refFoo pattern on GrStyle 2017-01-13 16:50:25 +00:00
GrSurface.cpp Remove compressed (ETC1) texture support from Ganesh (take 2) 2017-05-23 12:45:21 +00:00
GrSurfaceContext.cpp Pass GrSurfaceContext into read/writeSurfacePixels 2017-04-18 12:29:07 +00:00
GrSurfaceContext.h consolidate read/writePixels in GrSurfaceContext 2017-04-10 12:56:33 +00:00
GrSurfaceContextPriv.h
GrSurfacePriv.h Omnibus: Push instantiation of GrTextures later (post TextureSampler) 2017-06-02 11:46:40 +00:00
GrSurfaceProxy.cpp sk_sp-ify GrResourceProvider some more 2017-06-05 18:07:05 +00:00
GrSurfaceProxyPriv.h Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrSWMaskHelper.cpp Move all non-AA fill rect ops off of GrLegacyMeshDrawOp. 2017-05-10 14:48:47 +00:00
GrSWMaskHelper.h Retract GrContext from src/gpu/effects 2017-03-15 15:20:40 +00:00
GrTessellator.cpp GrTessellator: implement out-of-range splitting and AEL rewinding. 2017-06-07 00:09:15 +00:00
GrTessellator.h
GrTestUtils.cpp Remove GrProcessorTestData's GrTextures 2017-02-21 16:34:11 +00:00
GrTestUtils.h Reland of SkShaderBase 2017-05-25 14:59:07 +00:00
GrTexture.cpp Remove compressed (ETC1) texture support from Ganesh (take 2) 2017-05-23 12:45:21 +00:00
GrTextureAdjuster.cpp Remove GrFragmentProcessor-derived class' GrTexture-based ctors 2017-03-27 16:31:02 +00:00
GrTextureAdjuster.h headers: fix 2017-05-03 19:44:52 +00:00
GrTextureContext.cpp Update copyOp to split-opList world 2017-06-01 15:33:12 +00:00
GrTextureContext.h sk_sp-ify opList creation & storage 2017-04-14 15:55:47 +00:00
GrTextureMaker.cpp Remove GrFragmentProcessor-derived class' GrTexture-based ctors 2017-03-27 16:31:02 +00:00
GrTextureMaker.h Remove GrFragmentProcessor-derived class' GrTexture-based ctors 2017-03-27 16:31:02 +00:00
GrTextureOpList.cpp Update copyOp to split-opList world 2017-06-01 15:33:12 +00:00
GrTextureOpList.h Update copyOp to split-opList world 2017-06-01 15:33:12 +00:00
GrTexturePriv.h Revert "Revert "Remove GrSurfaceDesc member from GrSurface."" 2017-05-21 11:41:17 +00:00
GrTextureProducer.cpp Remove compressed (ETC1) texture support from Ganesh (take 2) 2017-05-23 12:45:21 +00:00
GrTextureProducer.h Remove GrFragmentProcessor-derived class' GrTexture-based ctors 2017-03-27 16:31:02 +00:00
GrTextureProxy.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrTextureRenderTargetProxy.cpp Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrTextureRenderTargetProxy.h Make instantiate return a Boolean 2017-06-05 14:03:10 +00:00
GrTextureStripAtlas.h check-headers-self-sufficient: update 2017-03-21 15:28:12 +00:00
GrTraceMarker.cpp
GrTraceMarker.h
GrTracing.h
GrTRecorder.h
GrUserStencilSettings.h Remove XP override color. 2017-03-06 13:39:09 +00:00
GrWindowRectangles.h Remove origin from GrClipStackClip and GrWindowRectsState. 2017-03-13 22:01:06 +00:00
GrWindowRectsState.h Remove origin from GrClipStackClip and GrWindowRectsState. 2017-03-13 22:01:06 +00:00
GrXferProcessor.cpp Fix gpu lcd blending to semi-correctly handle alpha coverage 2017-05-19 17:20:33 +00:00
GrXferProcessor.h Convert DstTexture to DstProxy (take 2) 2017-05-29 19:26:26 +00:00
GrYUVProvider.cpp Rm makeRenderTargetContext in favor of deferred version (take 3) 2017-04-25 11:44:20 +00:00
GrYUVProvider.h Fix spelling of SkImageGenerator in comment 2017-04-24 13:31:32 +00:00
SkGpuDevice_drawTexture.cpp Make GrRenderTarget[(Proxy)|(Context)]? advertise a "full scene aa type". 2017-05-12 16:32:57 +00:00
SkGpuDevice.cpp Fix two more drawVertices "bugs" 2017-05-26 18:36:20 +00:00
SkGpuDevice.h move shadows to device virtual 2017-05-17 13:40:42 +00:00
SkGr.cpp Reland of SkShaderBase 2017-05-25 14:59:07 +00:00
SkGr.h move Coeff into blendmode 2017-06-06 15:07:00 +00:00