aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Clean up/remove unused GrFragmentProcessor-derived ctorsGravatar Robert Phillips2017-02-28
| | | | | | | | | This is the simple (i.e., non-TextureAdjuster) portion of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I8f673ebe922e03c69473c18c166bcf818507c662 Reviewed-on: https://skia-review.googlesource.com/8997 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix -Wshadow-field warningsGravatar Brian Salomon2017-02-28
| | | | | | | | | BUG=skia: Change-Id: I44f1e11787eab88bdc5ed25c34ea802e9001d427 Reviewed-on: https://skia-review.googlesource.com/9083 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add GrExternalTextureData and SkCrossContextImageDataGravatar Brian Osman2017-02-28
| | | | | | | | | | | | | | | | | | | | | | | | GrExternalTextureData is an API for exporting the backend-specific information about a texture in a type-safe way, and without pointing into the GrTexture. The new detachBackendTexture API lets us release ownership of a texture to the client. SkCrossContextImageData is the public API that lets clients upload textures on one thread/GrContext, then safely transfer ownership to another thread and GrContext for rendering. Only GL is implemented/supported right now. Vulkan support requires that we add thread-safe memory pools, or otherwise transfer the actual memory block containing the texture to the new context. Re-land of https://skia-review.googlesource.com/c/8529/ BUG=skia: Change-Id: I48ebd57d1ea0cfd3a1db10c475f2903afb821966 Reviewed-on: https://skia-review.googlesource.com/8960 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Allow GrSurfaceProxy-derived classes to use flags when instantiating (take 2)Gravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | | | | | In some instances proxies must be created that, when instantiated, have no pending IO. This is split out of: https://skia-review.googlesource.com/c/8679/ (Add per-Flush callback to GrDrawingManager) and is a reland of: https://skia-review.googlesource.com/c/8988/ ( Allow GrSurfaceProxy-derived classes to use flags when instantiating) Change-Id: I36f52a6d249e762bdfc1f0d7528aba6d4071e492 Reviewed-on: https://skia-review.googlesource.com/9070 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* When traversing convex paths only consume zero length segments.Gravatar Brian Salomon2017-02-28
| | | | | | | | | BUG=chromium:688671 Change-Id: Ic27dde1ea7c1fe8b6afa0a05c637d8272e88b803 Reviewed-on: https://skia-review.googlesource.com/9071 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Reland: Allow DFPathRenderer to store bitmaps at low resolutionsGravatar Jim Van Verth2017-02-28
| | | | | | | | | BUG=chromium:682918 Change-Id: Ieadb41229227a20d41b8e932ba0770fe72479898 Reviewed-on: https://skia-review.googlesource.com/9068 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Allow GrSurfaceProxy-derived classes to use flags when instantiating"Gravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c8f1e3a5c08d58657dddccdeedbe5d6e8c16d891. Reason for revert: check on ANGLE failure Original change's description: > Allow GrSurfaceProxy-derived classes to use flags when instantiating > > In some instances proxies must be created that, when instantiated, have no pending IO. > > This is split out of: (Add per-Flush callback to GrDrawingManager) > > https://skia-review.googlesource.com/c/8679/ > > Change-Id: I68b5504d35ad436a4ae737ac4bb3c171fc9a5826 > Reviewed-on: https://skia-review.googlesource.com/8988 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I157417c443028b2148ee355ce69c946a96bb9407 Reviewed-on: https://skia-review.googlesource.com/9066 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* GrTessellator: take sweep_gt out behind the woodshed.Gravatar Stephen White2017-02-28
| | | | | | | | | No need for it, since sweep_gt(a, b) == sweep_lt(b, a). Change-Id: I9244687845530a8e11673c5360d9ac700933baa0 Reviewed-on: https://skia-review.googlesource.com/8987 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Revert "Allow distance field path renderer to store bitmaps at low resolutions"Gravatar Cary Clark2017-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c0bc1bb8690e5ce489394112b0cf4fe4601c1f2c. Reason for revert: broke build with SkTDynamicHash error Original change's description: > Allow distance field path renderer to store bitmaps at low resolutions > > BUG=chromium:682918 > > Change-Id: I1a0608f7e6394ab05eebc4b78fb7087ca718f617 > Reviewed-on: https://skia-review.googlesource.com/8971 > Commit-Queue: Jim Van Verth <jvanverth@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> > TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:682918 Change-Id: I4a3c370a248915fe7c7e77dd0346d6ab6f0d10c6 Reviewed-on: https://skia-review.googlesource.com/9063 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Allow GrSurfaceProxy-derived classes to use flags when instantiatingGravatar Robert Phillips2017-02-28
| | | | | | | | | | | | | In some instances proxies must be created that, when instantiated, have no pending IO. This is split out of: (Add per-Flush callback to GrDrawingManager) https://skia-review.googlesource.com/c/8679/ Change-Id: I68b5504d35ad436a4ae737ac4bb3c171fc9a5826 Reviewed-on: https://skia-review.googlesource.com/8988 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Allow distance field path renderer to store bitmaps at low resolutionsGravatar Jim Van Verth2017-02-28
| | | | | | | | | BUG=chromium:682918 Change-Id: I1a0608f7e6394ab05eebc4b78fb7087ca718f617 Reviewed-on: https://skia-review.googlesource.com/8971 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Use construct/init pattern with GrPipeline to replace CreateAt.Gravatar Brian Salomon2017-02-24
| | | | | | | Change-Id: Ic6c7432a9a298a143ce4f2431e94c89a0ea79793 Reviewed-on: https://skia-review.googlesource.com/8938 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Revert "Add GrExternalTextureData and SkCrossContextImageData"Gravatar Brian Osman2017-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9ad1f92e2fceea33215c0f13cee42a679fb88d44. Reason for revert: Breaking lots of bots Original change's description: > Add GrExternalTextureData and SkCrossContextImageData > > GrExternalTextureData is an API for exporting the backend-specific > information about a texture in a type-safe way, and without pointing > into the GrTexture. The new detachBackendTexture API lets us release > ownership of a texture to the client. > > SkCrossContextImageData is the public API that lets clients upload > textures on one thread/GrContext, then safely transfer ownership to > another thread and GrContext for rendering. > > Only GL is implemented/supported right now. Vulkan support requires > that we add thread-safe memory pools, or otherwise transfer the > actual memory block containing the texture to the new context. > > BUG=skia: > > Change-Id: I784a3a74be69807df038c7d192eaed002c7e45ca > Reviewed-on: https://skia-review.googlesource.com/8529 > Commit-Queue: Brian Osman <brianosman@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,chinmaygarde@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: If27d1f4c3a169efb6533170f67a172664c0fe8ce Reviewed-on: https://skia-review.googlesource.com/8955 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove the skip-draw xp optimizationGravatar Brian Salomon2017-02-24
| | | | | | | | | This seems like extra complexity for a impractical case. Also, if this is important a lot more work could be saved by catching this upstack (e.g. SkCanvas or SkPaintToGrPaint). Change-Id: Ib47be9f3cdc8ce9e5b12d9e9eac5266f04c337a9 Reviewed-on: https://skia-review.googlesource.com/8949 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add GrExternalTextureData and SkCrossContextImageDataGravatar Brian Osman2017-02-24
| | | | | | | | | | | | | | | | | | | | | | GrExternalTextureData is an API for exporting the backend-specific information about a texture in a type-safe way, and without pointing into the GrTexture. The new detachBackendTexture API lets us release ownership of a texture to the client. SkCrossContextImageData is the public API that lets clients upload textures on one thread/GrContext, then safely transfer ownership to another thread and GrContext for rendering. Only GL is implemented/supported right now. Vulkan support requires that we add thread-safe memory pools, or otherwise transfer the actual memory block containing the texture to the new context. BUG=skia: Change-Id: I784a3a74be69807df038c7d192eaed002c7e45ca Reviewed-on: https://skia-review.googlesource.com/8529 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix a confusing typo in a comment about MSAAGravatar Brian Osman2017-02-24
| | | | | | | | BUG=skia: Change-Id: I8d35862fc5f8ff2b511d716d30c734a2f0e92442 Reviewed-on: https://skia-review.googlesource.com/8946 Reviewed-by: Robert Phillips <robertphillips@google.com>
* Wrap cached GrTextures in GrTextureProxies (e.g., blur profiles, nine-patch ↵Gravatar Robert Phillips2017-02-24
| | | | | | | | | | | blurs, etc.) This is pulled out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I5feac04dc1bf54bd74c65febdf6bba9e7ce28f55 Reviewed-on: https://skia-review.googlesource.com/8942 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* GrTessellator (AA): simplify boundary extraction.Gravatar Stephen White2017-02-23
| | | | | | | | | | | | | | Perform boundary simplification and meshing inline with extraction. Removed EdgeList::fNext (don't need to concatenate edge lists). Removed new_contour() (don't need to heap-allocate them either). BUG=skia: Change-Id: I0f89bad105c03f3021b0d2f021064f408a361b59 Reviewed-on: https://skia-review.googlesource.com/8794 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Fix memory leak: adopt rather than ref GrTexture* in GrTextureStripAtlasGravatar Robert Phillips2017-02-23
| | | | | | | | | | This was introduced in: https://skia-review.googlesource.com/c/8881/ (Switch GrTextureStripAtlas over to GrTextureProxies) Change-Id: I6635e9fee9f63d703373b31c31fda459f5b63763 Reviewed-on: https://skia-review.googlesource.com/8916 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Don't use mixed samples if NVPR is disabledGravatar csmartdalton2017-02-23
| | | | | | | | | BUG=skia: Change-Id: I48c72268e30e202a101177393eb777f18a11cb6f Reviewed-on: https://skia-review.googlesource.com/8790 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* GrTessellator (AA): sorting and comparison performance improvements.Gravatar Stephen White2017-02-23
| | | | | | | | | | | | | | | | | | | Change comparison functions to perform the common case first (a.fX > b.fX), and the uncommon case (a.fX == b.fX) after the short-circuit. Change Comparator to switch on a direction enum instead of using function pointers. Inline sorted_merge() and front_back_split() into merge_sort(), and template it on the comparator function, so it instantiates two versions. This is even faster (but costs us some code bloat of course). BUG=skia: Change-Id: I45a2376492240ed7e0552ca2aed75e303e918bc6 Reviewed-on: https://skia-review.googlesource.com/8791 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* In Vulkan make sure resolve is sent to GPU when preparing msaa RenderTarget ↵Gravatar Greg Daniel2017-02-23
| | | | | | | | | | | | | | | | | | for external IO In GrDrawingManager, when preparing for I/O we first flush the GPU then call resolve. However, in Vulkan the resolve lives in a command buffer that needs to be flushed to the GPU as well. This is most likely the cause we were seeing in Viewer app where first frame was always black since the actually resolve command buffer was not flushed to the gpu before presenting. All future frames would then typically show one frame behind. BUG=skia: Change-Id: Iaf492f88680b998be0087637279cc78d5a38ec50 Reviewed-on: https://skia-review.googlesource.com/8903 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Switch GrTextureStripAtlas over to GrTextureProxiesGravatar Robert Phillips2017-02-23
| | | | | | | | | This is split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors) Change-Id: I9f602985b6010fc58b595e2be6d4e67e50179747 Reviewed-on: https://skia-review.googlesource.com/8881 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Make GrPipeline::CreateAt take GrRenderTarget and not GrRenderTargetContextGravatar Brian Salomon2017-02-23
| | | | | | | | | This is needed in order to create pipelines at flush time. Change-Id: I0bcd64d503d45c3383dbb932b048e2d7faa07c67 Reviewed-on: https://skia-review.googlesource.com/8849 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* abstract access to device-clip-boundsGravatar Mike Reed2017-02-23
| | | | | | | | | | | | | apply this to GpuDevice. Should allow us to switch to per-device-clipping with minimal change (since we've abstracted how the device sees its clip-bounds.) BUG=skia: Change-Id: I5245d90f308c21abdb58d441c326670b65e9179d Reviewed-on: https://skia-review.googlesource.com/8884 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Check for bounds intersection when batching MSAAPathOpsGravatar Jim Van Verth2017-02-22
| | | | | | | Change-Id: Ic4f1e13728b1137ffdc94dab077ec065619a0221 Reviewed-on: https://skia-review.googlesource.com/8883 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Add the ability to enable/disable GPU path renderersGravatar csmartdalton2017-02-22
| | | | | | | | | | | | | | Adds a bitfield to GrContextOptions that masks out path renderers. Adds commandline flags support to set this bitfield in tools apps. Removes GrGLInterfaceRemoveNVPR since we can now accomplish the same thing in the context options. BUG=skia: Change-Id: Icf2a4df36374b3ba2f69ebf0db56e8aedd6cf65f Reviewed-on: https://skia-review.googlesource.com/8786 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Make GrPipelineAnalysis a nested class of GrProcessorSet.Gravatar Brian Salomon2017-02-22
| | | | | | | | | | | | | | | | It is renamed to FragmentProcessorAnalysis since it represents the outputs of the final FPs. It now stores the analysis results that are subsequently needed rather than exposing GrProcOptInfo. GrProcOptInfo is now only used on color FPs (not coverage). Miscellaneous related renamings. Change-Id: I95c518a7a76df6dc294a9fa67c611f8f653247bc Reviewed-on: https://skia-review.googlesource.com/8534 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add new GMs to stress rendering of many circles and rrectsGravatar Jim Van Verth2017-02-22
| | | | | | | Change-Id: I060419bc39484b379329a1691e199d9d3db9c808 Reviewed-on: https://skia-review.googlesource.com/8807 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* remove device field from SkDrawGravatar Mike Reed2017-02-22
| | | | | | | | | BUG=skia:6214 Change-Id: I5d57feb3e92f2c1691231c982e74020560febeca Reviewed-on: https://skia-review.googlesource.com/8837 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove GrPipelineBuilder.cppGravatar Brian Salomon2017-02-22
| | | | | | | Change-Id: I14c26f2967e4722fa4d6ce4664a5857add0cf854 Reviewed-on: https://skia-review.googlesource.com/8822 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* GrTessellator: misc. cleanups and minor tweaks.Gravatar Stephen White2017-02-22
| | | | | | | | | | | | | | | | | | | | | Invert some math to remove a negation. Don't keep a persistent count in EdgeList; we'll test for degenerate boundaries in boundary_to_aa_mesh(). Make connect() use the top/bottom ordering that new_edge has already done for us. Don't add the an edge to the same poly twice when it's easily detectable. Remove some superfluous variables and intialization. BUG=skia: Change-Id: I0efd9ec385d6dfec8950b7acfc6dd25572f667b5 Reviewed-on: https://skia-review.googlesource.com/8784 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Print GL shader source with line numbers when there is a compile errorGravatar csmartdalton2017-02-21
| | | | | | | | | BUG=skia: Change-Id: I06bad4aacf5992d8207881f59f20615479536481 Reviewed-on: https://skia-review.googlesource.com/8562 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Make GrXferProcessor and related classes private.Gravatar Brian Salomon2017-02-21
| | | | | | | Change-Id: I81ea6f5ea5c8b7b23848ef24524a7e48e531efe8 Reviewed-on: https://skia-review.googlesource.com/8819 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove SkSpecialImage's GrTexture-based ctorsGravatar Robert Phillips2017-02-21
| | | | | | | Change-Id: Id71b8ab0477cd1d459089d97af27d63f9f08d21b Reviewed-on: https://skia-review.googlesource.com/7889 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Fix ComposeOneFragmentProcessor coverage as alpha optimization.Gravatar Brian Salomon2017-02-21
| | | | | | | | | It should only be advertised if the child also advertises it. Change-Id: I698213c9562d710dff45f0622d50eacc41e29af5 Reviewed-on: https://skia-review.googlesource.com/8811 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* GrTessellator (AA): implement fast path for removing non-boundary edges.Gravatar Stephen White2017-02-21
| | | | | | | | | | | | | | | Instead of using a full tessellate() pass, which allocates Polys, MonotonePolys, etc. It's faster to simply accumulate the winding number in the left-adjacent edge, and use that to remove non-boundary edges (edges for which apply_fill_type() returns the same value on either side of the edge). This gives ~4-5% boost on MotionMark Fill Shapes. Change-Id: I66bd4248ace01a8c35abd99519f4c455f936e5e5 Reviewed-on: https://skia-review.googlesource.com/8782 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Simplify GrPaint::isConstantBlendedColor to avoid FP analysis and XP virtual ↵Gravatar Brian Salomon2017-02-21
| | | | | | | | | | | calls This was the only non-test user of GrXPFactory::isConstantPreCoverageBlendedColor which is now removed. Change-Id: Ic1c130d30a44e1a955b89f8912433a3c9df2e61e Reviewed-on: https://skia-review.googlesource.com/8776 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Prefer EllipseOp instead of DIEllipseOpGravatar Stan Iliev2017-02-21
| | | | | | | | | | | | Prefer EllipseOp instead of DIEllipseOp, which improves the performance. BUG=skia: Change-Id: I607c21326b44a80e0586c577349452a9c369488f Reviewed-on: https://skia-review.googlesource.com/8690 Commit-Queue: Stan Iliev <stani@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Remove GrProcessorTestData's GrTexturesGravatar Robert Phillips2017-02-21
| | | | | | | | | | | (No longer) Blocked on: https://skia-review.googlesource.com/c/8450/ (Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2)) This also (unfortunately) picks up a few straggling effects that didn't have a sk_sp<GrTextureProxy> factory. Change-Id: I5ce583a084aa8fe00e866eec1db90e2ec9dd2ab0 Reviewed-on: https://skia-review.googlesource.com/8500 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Store GrRenderTarget rather than just its ID in ↵Gravatar Brian Salomon2017-02-21
| | | | | | | | | | | GrRenderTargetOpList::RecordedOp. This will allow us to feed the op's their render target when they don't have a pipeline before execution. Change-Id: I01f16bec32e930c0152105a9179306159cb14dc4 Reviewed-on: https://skia-review.googlesource.com/8693 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Clean up DFs for extremely small pathsGravatar Jim Van Verth2017-02-21
| | | | | | | | | BUG=skia:6255 Change-Id: Ie2b645c4e18fab30c67cd3ee9857f7b003713339 Reviewed-on: https://skia-review.googlesource.com/8665 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2)Gravatar Robert Phillips2017-02-20
| | | | | | | | | | | | | This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef This is a reland of: https://skia-review.googlesource.com/c/7995/ (Remove asTextureRef from SkSpecialImage & update effects accordingly) It should be good to land since https://skia-review.googlesource.com/c/8701/ (Replace SkSpecialImage::makeTightSubset with asImage (take 2)) fixes the Chrome-side issue Change-Id: I3d88b2b3d23fd69f3fb914a69dacca96cbc038a4 Reviewed-on: https://skia-review.googlesource.com/8450 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix -Wshadow-field warning in class NullInterfaceGravatar Brian Salomon2017-02-18
| | | | | | | | | This warning fires in a tip of tree clang build because the base class to NullInterface also has a field called fExtensions. Change-Id: I5e2a901583ae223a85d562f2d8b082e4d0cbf690 Reviewed-on: https://skia-review.googlesource.com/8691 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* use common intermediate device class for clipstack managementGravatar Mike Reed2017-02-17
| | | | | | | | | BUG=skia:6214 Change-Id: I64b849ad7c8dafe423e24e6fccfb3f0c1d096ab0 Reviewed-on: https://skia-review.googlesource.com/8669 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Add a workaround for platforms with broken geo shader invocationsGravatar csmartdalton2017-02-17
| | | | | | | | | | BUG=skia: Change-Id: I9105b65b522d9ffac5a90ca7126bfd4ae88f8069 Reviewed-on: https://skia-review.googlesource.com/8422 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Check for GL_EXT_geometry_shader on ESGravatar csmartdalton2017-02-17
| | | | | | | | | BUG=skia: Change-Id: If4f13af35679c048253c6c513a74e79be808dd74 Reviewed-on: https://skia-review.googlesource.com/8466 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* GrTessellator (AA): Performance tweaks and cleanup.Gravatar Stephen White2017-02-17
| | | | | | | | | | | | | | | | | | | | The SkArenaAlloc destructor was showing up as hot in profiling, especially on Linux. The reason is that it was being used incorrectly: the size estimate was being used as the chunk size. It turns out that the best performance seems to be achieved with no initial allocations and a fixed chunk size of 16K, as the CPU path renderer does. Also remove some unused code. (This is a partial re-land of https://skia-review.googlesource.com/c/8560/) TBR=bsalomon@google.com Change-Id: I277eb1a6e5718a221974cd694c8a7e481e432ca6 Reviewed-on: https://skia-review.googlesource.com/8561 Reviewed-by: Stephen White <senorblanco@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Revert "GrTessellator (AA): Performance tweaks and cleanup."Gravatar Ben Wagner2017-02-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e595bbfba6e7dcdda0d7d700343e9d814a406771. Reason for revert: Breaking roll into Chromium. virtual/gpu/fast/canvas/canvas-arc-circumference-fill.html virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill.html https://build.chromium.org/p/tryserver.blink/builders/linux_trusty_blink_rel/builds/5170 https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/5170/layout-test-results/results.html Original change's description: > GrTessellator (AA): Performance tweaks and cleanup. > > The SkArenaAlloc destructor was showing up as hot in profiling, > especially on Linux. The reason is that it was being used > incorrectly: the size estimate was being used as the chunk size. It > turns out that the best performance seems to be achieved with no > initial allocations and a fixed chunk size of 16K, as the CPU path > renderer does. > > Also, allocate the bisectors used for edge inversions on the > stack, not the heap. And remove some unused code. > > BUG=skia: > > Change-Id: I754531c753c9e602713bf2c8bb5a0eaf174bb962 > Reviewed-on: https://skia-review.googlesource.com/8560 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Stephen White <senorblanco@chromium.org> > TBR=bsalomon@google.com,senorblanco@chromium.org,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I3cf6495c7345b6e6a79c2cb3a21dc6df0eed122f Reviewed-on: https://skia-review.googlesource.com/8605 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Let DFPathRenderer accept smaller paths.Gravatar Jim Van Verth2017-02-16
| | | | | | | | | BUG=chromium:682918 Change-Id: Ib5f935a92f967354be696fb24ba874f3602ebdb4 Reviewed-on: https://skia-review.googlesource.com/8601 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>