aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Rename finishOpList to finishFlush and call it less frequentlyGravatar Robert Phillips2017-05-15
| | | | | | | | | It is expected that this will fix the Vulkan perf regression associated with splitting up the opLists Change-Id: I1bbb6f71745bb08d4a8c2f7810e5ab84cca75e84 Reviewed-on: https://skia-review.googlesource.com/16901 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* add unaligned_store()Gravatar Mike Klein2017-05-15
| | | | | | | | | | | | | Don't know why I never wrote unaligned_store() to mirror unaligned_load(), but now I have. This replaces all remaining memcpy() in SkJumper_stages.cpp, which is nice. The generated stage code didn't change. Change-Id: I714c1072a975d7fa268a4b06c13f06557bf0c12c Reviewed-on: https://skia-review.googlesource.com/16870 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add filled occluders to shadow_utils GM, take 2Gravatar Jim Van Verth2017-05-15
| | | | | | | | | | Classifies fully visible opaque shadows differently than transparent to avoid cache collisions. Change-Id: Iba5aab2b2cbe08f70205c343e86fe92b0cab7497 Reviewed-on: https://skia-review.googlesource.com/16858 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Attempt to work around iOS varying limit in GLPrograms testGravatar Brian Salomon2017-05-15
| | | | | | | | | | Dump shaders when linking fails. Bug: skia:6627 Change-Id: I7f1df4be039eb56d990aa64c58c8dd2a22d97dbe Reviewed-on: https://skia-review.googlesource.com/16867 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add evenly spaced stops and unify gradient contextsGravatar Herb Derby2017-05-15
| | | | | | | Change-Id: I17ac13b9d1ea6765e2c1a2b53aa6975eab408856 Reviewed-on: https://skia-review.googlesource.com/16713 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* composeshader stagesGravatar Mike Reed2017-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | needed to add two helper stages for composeshader load_rgba, store_rgba These just read/write the r,g,b,a registers to context memory, making no promise as to how the memory is formatted (e.g. interleaved -vs- planar). Note that we have similar existing stages, but they did not seem to suit: constant_color This guy loads 4 floats from memory, and splats them into registers. I need to load 4 entire registers. load_f32, store_f32 These offset where they read/write based on the 'x' register, plus they guarantee that the memory will be interleaved ala SkPM4f. Bug: skia: Change-Id: Iaa81f950660b837bdb34416ab3e342d56a92239b Reviewed-on: https://skia-review.googlesource.com/16716 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* move impl for drawvertices into separate fileGravatar Mike Reed2017-05-15
| | | | | | | | | | | expect to refactor the impl, so this just makes that easier (plus SkDraw.cpp was just too big) Bug: skia: Change-Id: I22c07d37429195363d9a76e56a1dca915f9c2d57 Reviewed-on: https://skia-review.googlesource.com/16863 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Allow numerical color spaces with legacy renderingGravatar Matt Sarett2017-05-15
| | | | | | | | Bug: 720083 Change-Id: Ibd4dbf6ee95ac14857e8280a441f81976710e5e8 Reviewed-on: https://skia-review.googlesource.com/16700 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Sort all user-supplied rects before computeFastBoundsGravatar Brian Osman2017-05-13
| | | | | | | | | | | | | | | | https://codereview.chromium.org/908353002 fixed drawRect 2+ years ago, but drawOval and drawArc were still susceptible. This version ensures that all rects are sorted before we do the bounds check. Added a new makeSorted helper to simplify the code, and an assert to catch any future oversight. All other drawing functions compute their bounds rect in some way that already ensures it is sorted. Bug: skia: Change-Id: I8926b2dbe9d496d0876f1ac5313bd058ae4568b7 Reviewed-on: https://skia-review.googlesource.com/16702 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Switch ImageStorageAccess over to GrTextureProxiesGravatar Robert Phillips2017-05-12
| | | | | | | | | Split out of: https://skia-review.googlesource.com/c/10484/ (Omnibus: Push instantiation of GrTextures later (post TextureSampler)) Change-Id: I341de6ae121620d30e50bff21450878a18bdf4f2 Reviewed-on: https://skia-review.googlesource.com/16714 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Include non-legacy GrMeshDrawOps in GLPrograms test.Gravatar Brian Salomon2017-05-12
| | | | | | | | Bug: skia: Change-Id: Ifa0c3ffb5643c84ccdcb339fae75ea5d03a8451c Reviewed-on: https://skia-review.googlesource.com/16580 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* implement 4f for composeshaderGravatar Mike Reed2017-05-12
| | | | | | | | Bug: skia: Change-Id: I7ad0077345f7589528c89cd84d252539a1df6614 Reviewed-on: https://skia-review.googlesource.com/16703 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* fix SkJumperHSL blend modesGravatar Mike Klein2017-05-12
| | | | | | | | | | | | | | | I took a new, unprincipled approach here, which is to just mimic the legacy code path exactly (e.g. hue_modeproc in SkXfermode.cpp). This fixes how we handle alpha in these blend modes, and ought to be faster by avoiding the unpremul. BUG=skia:6621 Change-Id: I21635290985ff42d9421d2718f7a88cf44a85d7f Reviewed-on: https://skia-review.googlesource.com/16711 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* fix legacy/SkRasterPipeline SkHighContrastFilterGravatar Mike Klein2017-05-12
| | | | | | | Change-Id: I395be972abf571af79ccf6ed5917bf463fd2166d Reviewed-on: https://skia-review.googlesource.com/16709 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Modify SkEventTracer::SetInstance to fail rather than assert if a tracer has ↵Gravatar Brian Salomon2017-05-12
| | | | | | | | | | | | already been installed. Chromium usually calls SetInstance once per process. However, when run in single process more renderer threads will try to set the instance after the browser process already has done so. This allows them to fail gracefully without asserting. Bug: skia:6603 Change-Id: Ic8a35422d787335aa67eefc07d0658f0fbe73db4 Reviewed-on: https://skia-review.googlesource.com/16664 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Add new SkImageGenerator::getPixels() API, deprecate the oldGravatar Matt Sarett2017-05-12
| | | | | | | | | | | | This is fairly aggressive in that it will break any client that is currently using SkImageGenerator with kIndex8. I'm guessing that we don't have any clients doing that. Bug: skia:6620 Change-Id: Ifd16f5232bb3a9f759c225315c57492d917ed9ca Reviewed-on: https://skia-review.googlesource.com/16601 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Make GrRenderTarget[(Proxy)|(Context)]? advertise a "full scene aa type".Gravatar Brian Salomon2017-05-12
| | | | | | | | Bug: skia: Change-Id: I24549604e8305028e34e0022bfef992a8e8c33f7 Reviewed-on: https://skia-review.googlesource.com/16230 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* fold matrices together for tricolorGravatar Mike Reed2017-05-12
| | | | | | | | Bug: skia: Change-Id: Ic4ef679c6b5514f0fc7f895d71b5feeb812da53e Reviewed-on: https://skia-review.googlesource.com/16606 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Cleanup SkImageGenerator, add missing fns to GrBackendTextureImageGeneratorGravatar Brian Osman2017-05-12
| | | | | | | | | | | | No "real" API changes. TBR=reed@google.com Bug: skia: Change-Id: I08c29f76806388394938f204f2a50b2fd6ea8942 Reviewed-on: https://skia-review.googlesource.com/16662 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Pass alphaType to append_gamut_transform() to inform the clampGravatar Matt Sarett2017-05-12
| | | | | | | | | BUG=skia: Change-Id: I1a8aef36043d4091bffae95b0275fa7fa8a35c97 Reviewed-on: https://skia-review.googlesource.com/9441 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Split up opLists (take 3)Gravatar Robert Phillips2017-05-12
| | | | | | | | | | | | Reland of: https://skia-review.googlesource.com/c/11581/ (Split up opLists) https://skia-review.googlesource.com/c/13860/ (Make InstancedRendering more opList-splitting friendly) has landed so this should be good for another attempt. TBR=egdaniel@google.com Change-Id: I2a09729342bb035af3a16807c1895adbae432ade Reviewed-on: https://skia-review.googlesource.com/14186 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* refactor gradient stage namesGravatar Mike Klein2017-05-12
| | | | | | | | | | | | | | | | | | | | | | This is just a name refactor and I'm happy to delay it until we're done with the current wave of gradient CLs. The main ideas: - we use the "linear_gradient" stages for all gradients, so cut the "linear" and just call them "gradient"; - remind ourselves that the 2-stop stage requires even spacing, i.e. stops at 0 and 1. This name should harmonize with Herb's new general evenly spaced gradient stage, currently "evenly_spaced_linear_gradient", and after it lands and I rebase, "evenly_spaced_gradient" - remind ourselves which polar coordinate xy_to_polar_unit returns, the angle. Change-Id: I0fd0c8bd4c1ead7d2d0fff45a199d318b71f34ac Reviewed-on: https://skia-review.googlesource.com/16500 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Evenly space gradient stage."Gravatar Mike Klein2017-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 892501d09bc8608704362235c73a59bb23a386b3. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=721682 :( Original change's description: > Evenly space gradient stage. > > This seems like an experiment at this point because I don't know how to do > this kind of thing on arm. > > > Numbers from Skylake... > Before: > ./out/Release/nanobench --config srgb \ > --match gradient_linear_clamp_3color gradient_linear_clamp_hicolor -q 19:48:13 > Timer overhead: 36.7ns > ! -> high variance, ? -> moderate variance > micros bench > 439.92 ? gradient_linear_clamp_3color srgb > 2697.60 gradient_linear_clamp_hicolor srgb > 437.28 gradient_linear_clamp_3color_4f srgb > 2700.50 gradient_linear_clamp_hicolor_4f srgb > > > After: > micros bench > 382.35 gradient_linear_clamp_3color srgb > 593.49 gradient_linear_clamp_hicolor srgb > 382.36 gradient_linear_clamp_3color_4f srgb > 565.60 gradient_linear_clamp_hicolor_4f srgb > > > Numbers on my Mac Trashcan are about even; there is no > speedup or slowdown between master and this change. > > Change-Id: I04402452e23c0888512362fd1d6d5436cea61719 > Reviewed-on: https://skia-review.googlesource.com/15960 > Commit-Queue: Herb Derby <herb@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,fmalita@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ic6a064c66686b6f238ca1417ba1abd9ce25de1b4 Reviewed-on: https://skia-review.googlesource.com/16660 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Fix Ubuntu-Clang-x86_64-Release-MiniGravatar Matt Sarett2017-05-11
| | | | | | | | | | Bug: skia: Change-Id: Iab3dbb007ae67b5d82a727cb1fd5ced6b10b325a Reviewed-on: https://skia-review.googlesource.com/16605 Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Classify spot shadows for general shapesGravatar Jim Van Verth2017-05-11
| | | | | | | | | | | Add some simple checks so we can tell whether a shadow's umbra is completely covered by the occluder, partially covered, or less than halfway covered. Change-Id: I092281c4933bd0380946eb0fdd458ce04b0d713c Reviewed-on: https://skia-review.googlesource.com/16603 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Evenly space gradient stage.Gravatar herb2017-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This seems like an experiment at this point because I don't know how to do this kind of thing on arm. Numbers from Skylake... Before: ./out/Release/nanobench --config srgb \ --match gradient_linear_clamp_3color gradient_linear_clamp_hicolor -q 19:48:13 Timer overhead: 36.7ns ! -> high variance, ? -> moderate variance micros bench 439.92 ? gradient_linear_clamp_3color srgb 2697.60 gradient_linear_clamp_hicolor srgb 437.28 gradient_linear_clamp_3color_4f srgb 2700.50 gradient_linear_clamp_hicolor_4f srgb After: micros bench 382.35 gradient_linear_clamp_3color srgb 593.49 gradient_linear_clamp_hicolor srgb 382.36 gradient_linear_clamp_3color_4f srgb 565.60 gradient_linear_clamp_hicolor_4f srgb Numbers on my Mac Trashcan are about even; there is no speedup or slowdown between master and this change. Change-Id: I04402452e23c0888512362fd1d6d5436cea61719 Reviewed-on: https://skia-review.googlesource.com/15960 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* proposed: inclusive gradients, exclusive imagesGravatar Mike Klein2017-05-11
| | | | | | | | Change-Id: I5821f823a4c0df54d4388a2f455767f58ae646b8 Reviewed-on: https://skia-review.googlesource.com/16547 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* spin off: always clamp linear gradientsGravatar Mike Klein2017-05-11
| | | | | | | | | | | | | | | | | | While we're refactoring how gradients work it's going to be easier to centralized how and when we tile. - PS2 changed linear and radial in place to alwys clamp. - PS3 moved tiling to the base class, where it's even harder to screw up. Sweeps don't need but don't mind tiling. - PS4 clamps when iff evenly spaced PS4 has image diffs for only a few GMs that I'm not familiar with. If its logic reads as correct to you, they may be bug fixes? Change-Id: I5e37d6e88aaea898356d4c57db0cd5bf414c0295 Reviewed-on: https://skia-review.googlesource.com/16501 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Setup for another attempt to split up opListsGravatar Robert Phillips2017-05-11
| | | | | | | | | Split out of: https://skia-review.googlesource.com/c/14186 (Split up opLists (take 3)) Change-Id: Ifa600c88fb9185991d3197c7776c820f54c9bf0f Reviewed-on: https://skia-review.googlesource.com/16540 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Fix GPU text colors when color spaces are involvedGravatar Brian Osman2017-05-11
| | | | | | | | | | | | | 1) Only store GrColors in GrTextUtils::Paint. We still store premul and unpremul versions, but this is slightly clearer. 2) GrTextUtils::Paint also needs info from the render target context to linearize and transform the color to dst space. Bug: skia:6605 Change-Id: I6e12c55eafaecd2a090c82b4f56827401305bf3a Reviewed-on: https://skia-review.googlesource.com/16486 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove SkCrossContextImageData and all support codeGravatar Brian Osman2017-05-11
| | | | | | | | Bug: skia: Change-Id: I8eb8cef5456c05a8e314d8404698893c7af82d13 Reviewed-on: https://skia-review.googlesource.com/16368 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* remove TODO in SkGradientShader.cppGravatar Mike Klein2017-05-11
| | | | | | | | | | | | | | | As we have factored things, we _do_ need to map y. This matrix maps us back from dst to src space now, but not all the way to t. We let the subclass inject its own logic for x,y -> t. (Linear gradients do actually still do this by modifying the first matrix rather than appending another matrix for x,y -> t. But in general we cannot not map y here anymore.) Change-Id: I2f9a87c7b510269a8b218a0247cbff416fe8d6c9 Reviewed-on: https://skia-review.googlesource.com/16495 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Workaround for Intel 6xxx clear to opaque black bugGravatar Brian Salomon2017-05-11
| | | | | | | | Bug: skia: Change-Id: Id5e29b483c2b6f698219abfc5bbb2d858c4fc117 Reviewed-on: https://skia-review.googlesource.com/16427 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Fix transparent ambient shadowsGravatar Jim Van Verth2017-05-11
| | | | | | | | | Add a clamp value to indicate the percentage of the blurWidth to apply. Change-Id: I962dc57ed786fa67ed1606b1148f1b2c568025e5 Reviewed-on: https://skia-review.googlesource.com/16424 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fix transparent ambient for perspective shadowsGravatar Jim Van Verth2017-05-11
| | | | | | | | | | | When splitting the long edges for the ambient code, I wasn't adding the corresponding triangle for the new point into the center region for transparent occluders. Change-Id: Ie2d1dcffbd701c0750d5da95e9d673b700a0e85a Reviewed-on: https://skia-review.googlesource.com/16492 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Add SkJpegEncoder and SkWebpEncoder to public APIGravatar Matt Sarett2017-05-11
| | | | | | | | | Bug: 713862 Change-Id: I05d8b3a506f817d63b0bc3ab3f9233e24bbe3be0 Reviewed-on: https://skia-review.googlesource.com/16233 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Add a way to force raster pipeline blitter.Gravatar Mike Klein2017-05-11
| | | | | | | | | | | | And add some Test/Perf bots to try it out! CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER Change-Id: I56ea2285f9fec2e468fae89673a545a717ab0f49 Reviewed-on: https://skia-review.googlesource.com/16423 Reviewed-by: Eric Boren <borenet@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add some swizzle checks to vulkan backendGravatar Greg Daniel2017-05-11
| | | | | | | | Bug: skia: Change-Id: I9f5a5c1fda9cf26fc6479e1cd6d0e981e6991c8e Reviewed-on: https://skia-review.googlesource.com/16426 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* A8 fast path for raster clip masksGravatar Florin Malita2017-05-11
| | | | | | | | | | | | | | | | | | | When the clip mask is already A8, we don't need to convert explicitly. Before: 792.72 clipmask_a8 8888 After: 560.06 clipmask_a8 8888 BUG=skia:6005 Change-Id: I9a319df9a82edfc9b412787a36f037bbe82c2825 Reviewed-on: https://skia-review.googlesource.com/16420 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Remove comments referencing locked pixelsGravatar Leon Scroggins III2017-05-10
| | | | | | | | | | | | | Pixels no longer need to be locked. TBR=reed@google.com Bug: skia: 6481 Change-Id: I4b49f710add9134205d1520755b44bee308bd502 Reviewed-on: https://skia-review.googlesource.com/16113 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Make SkCreateRasterPipelineBlitter() not fail.Gravatar Mike Klein2017-05-10
| | | | | | | | | | | | | | Mostly this is about extending the fallback in SkShader::appendStages() to cover more cases, and making sure subclasses call appendStages() so they can get the fallback, not onAppendStages() directly. We still need to watch for SkShader::makeContext() failing in the fallback itself, so sadly SkShader::appendStages() may still fail. Change-Id: I2314b234a24bdcecac401a385ce050d7fdf0a83e Reviewed-on: https://skia-review.googlesource.com/16369 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* sksl support for static ifs & switchesGravatar Ethan Nicholas2017-05-10
| | | | | | | | Bug: skia: Change-Id: Ic9e01a3a18efddb19bab26e92bfb473cad294fc1 Reviewed-on: https://skia-review.googlesource.com/16144 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
* Unify ShadowUtils interfaceGravatar Jim Van Verth2017-05-10
| | | | | | | | Bug: skia: Change-Id: I116bec82783d297e91ef061217b5e61f7ff16a76 Reviewed-on: https://skia-review.googlesource.com/16371 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* use SkColorSpaceXformer in SkShader appendStages() fallbackGravatar Mike Klein2017-05-10
| | | | | | | | | | | | | We've been transforming the gamut after running the legacy shader, but now that we have SkColorSpaceXformer, we can transform the legacy shader into the dst color space instead. This should be both more correct and faster. Change-Id: If017048874e6cce46837d3ecbd88dfde503fd03a Reviewed-on: https://skia-review.googlesource.com/16373 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* clean up SkShader friendsGravatar Mike Klein2017-05-10
| | | | | | | | | | | | | | | Many SkShader subclasses are only friends to use makeColorSpace(). Our usual solution to this is to add a method on SkColorSpaceXformer that calls makeColorSpace() for us, so that only SkColorSpaceXformer needs to be a friend. Just a refactor. No image diffs. Change-Id: Icf952b739edf45f2fb8c0c35e353ef2866f4c5cc Reviewed-on: https://skia-review.googlesource.com/16370 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* add flag to hide deprecated clipopsGravatar Mike Reed2017-05-10
| | | | | | | | | | | | needs this to land first https://codereview.chromium.org/2877493002/# Bug: skia:3191 Change-Id: Iff5271064877c4e96353d3564464f513eaad0bb5 Reviewed-on: https://skia-review.googlesource.com/16365 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix alpha coverage for lerp_565 stage.Gravatar bungeman2017-05-10
| | | | | | | | | Like three gray with alpha blends and taking the max alpha. Change-Id: I104c84f784979030744127f8f66905ad9d1bdf0e Reviewed-on: https://skia-review.googlesource.com/15898 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Clean up shadow assert.Gravatar Jim Van Verth2017-05-10
| | | | | | | | | | | | | | | When drawing an analytic rrect shadow, the mask filter could pass the devRect into the drawOp. If we have a small scale that could make the radii less than SK_ScalarNearlyZero. We might also have a rect that we outset by a value less than SK_ScalarNearlyZero to the penumbra border. So the best we can check is that the the two radii are equal. Bug: skia:6608 Change-Id: I8bdafe089b302fbc5c9042ff30798d3688e9e781 Reviewed-on: https://skia-review.googlesource.com/16364 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Move all non-AA fill rect ops off of GrLegacyMeshDrawOp.Gravatar Brian Salomon2017-05-10
| | | | | | | | | This adds perspective to GrNewNonAAFillRectOp, renames it to GrNonAAFillRectOp, and deletes the previous version of that namespace. Change-Id: I20f35bf019f9c9105e6ec83dda11328451138109 Reviewed-on: https://skia-review.googlesource.com/15634 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* allow inf/nan in GrRect isect utility functions.Gravatar Brian Salomon2017-05-10
| | | | | | | | | | Separately we may want to determine why we get NaNs here in flutter. Bug: skia:6607 Change-Id: Id90fff1ccf487794d55dc011b1a2d176cedb931a Reviewed-on: https://skia-review.googlesource.com/16342 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>