aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* SkColorSpace: remove named API, add gamut APIGravatar Matt Sarett2017-02-07
| | | | | | | | | | | Reland from: https://skia-review.googlesource.com/c/8021/ BUG=skia: Change-Id: I18985f130587b15fccbc86b76b2bb5c49ba5ba8a Reviewed-on: https://skia-review.googlesource.com/8136 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "SkColorSpace: remove named API, add gamut API"Gravatar Matt Sarett2017-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ecaaf6f1c156e5690200322fc2636380c1f63dd8. Reason for revert: Breaks everything Original change's description: > SkColorSpace: remove named API, add gamut API > > BUG=skia: > > Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6 > Reviewed-on: https://skia-review.googlesource.com/8021 > Reviewed-by: Brian Osman <brianosman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=msarett@google.com,brianosman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: Ief5a0a4eeabe75a21f7512e23fc15309151066c4 Reviewed-on: https://skia-review.googlesource.com/8127 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* SkColorSpace: remove named API, add gamut APIGravatar Matt Sarett2017-02-07
| | | | | | | | | | BUG=skia: Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6 Reviewed-on: https://skia-review.googlesource.com/8021 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Add a fast case for copying vertices in GrDrawVerticesOp.Gravatar Brian Salomon2017-02-07
| | | | | | | | | | | Uses Sk2f to apply a translation-only matrix when the vertex attributes contain only positions and colors. We should look at how to generalize this for other draw vertices cases and other ops. Change-Id: I5eb692982dc216b1c0a71209c969672b0562143c Reviewed-on: https://skia-review.googlesource.com/8103 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fix rounding error with tiled bitmap drawsGravatar Brian Osman2017-02-06
| | | | | | | | | | | | | | | We were snapping the top-left of the destination rectangle to integers, but using the original (fractional) size. This led to us losing rows or columns of pixels at the first tile boundary. Also added a GM that demonstrates the bug (now renders correctly). BUG=skia: Change-Id: I50629dab9dd90fedad2c7e3393a1b1d1c7a8d45e Reviewed-on: https://skia-review.googlesource.com/8102 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* GrTessellator (AA): improve antialiasing of thin shapes.Gravatar Stephen White2017-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Long description, but actually quite a small change.) This is the first change inspired by the "straight skeleton" algorithm. This algorithm gives us a mental model to describe the edge-antialiasing problem: consider the shape as walls of a house, the outer alpha geometry is a 45-degree "roof" up to a flat top at a height of 1.0 (the filled interior). The faces of the sloping roof join at the bisectors between the inner and outer points. When the shape being drawn is sufficiently thin, there should be no flat roof, and the sloping roof meets at an edge (the straight skeleton). This patch detects cases where an edge inverts on stroking, which indicates that the flat roof has turned inside out, and should be reduced to a point instead. The model above describes what to do: follow down the "roof" along the bisectors to their intersection. This is the point to which an inverted edge should be collapsed. Fortunately, the bisector edges are easy to compute: they're the connector edges joining inner and outer points. Linearly interpolating the distance from the top to the bottom point gives the alpha we should use to approximate coverage. Now that we are correctly handling inversions, bevelling outer edges is no longer necesary, since pointy outer edges won't cause nasty opaque artifacts. A couple of other quality improvements: on intersection, always lerp the alpha of connector edge, even if the opposite edge is an inner edge (later, when these edges are collapsed, we need this value to compute the correct alpha). Fix the case where an intruding outer vertex intersects exactly with an inner edge by maxing its alpha with the computed value in check_for_intersection(). Finally, we also no longer round off the intersections produced by Line::intersect(), since it introduces a loss of quality with no measurable performance benefit. Change-Id: I6fd93df3a57fffc0895e8cb68adbdba626ded0f1 Reviewed-on: https://skia-review.googlesource.com/8028 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* Make workaround for std::unique_ptr<const T[]> bug in old libstdc++ work.Gravatar Brian Salomon2017-02-06
| | | | | | | | | | BUG=skia: Change-Id: I58a07d4ce35bdd03e7edcf50e88d9982b3885546 Reviewed-on: https://skia-review.googlesource.com/8101 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Work around broken std::unique_ptr<const T[]> constructor from ↵Gravatar Brian Salomon2017-02-06
| | | | | | | | std::unique_ptr<T>&& in older libstdc++. Change-Id: Ie4190800369515168203ff98b3e3fe0e2d790f1a Reviewed-on: https://skia-review.googlesource.com/8072 Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fix two bugs when deciding to tile. Large images were always tiling.Gravatar Brian Osman2017-02-06
| | | | | | | | | | | | | | | | | | usedTileBytes was actually usedTileTexels, so we underestimated how much of the image we were using by a factor of 4. Then, to determine if we were using more than 50% of the image, we wrote: usedTileBytes < 2 * bmpSize; That meant we were off by another factor of 4. BUG=skia: Change-Id: Iba2acc75c5e7603543f05e4473b73f76a2937d7a Reviewed-on: https://skia-review.googlesource.com/8063 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add refcnt'ed immutable vertices class for SkCanvas::drawVertices.Gravatar Brian Salomon2017-02-06
| | | | | | | Change-Id: I44a62f5efc674d0adbbf4a33690c3ded9fab3803 Reviewed-on: https://skia-review.googlesource.com/8040 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* GrTessellator (AA): Fix for missing fill artifacts.Gravatar Stephen White2017-02-03
| | | | | | | | | | | | | | | | | | | | Some regions were being incorrectly filled due to setting connector edges winding to zero *after* merging collinear edges. This would cause the merge to add the wrong winding value. Putting the adjust before the call to merge_collinear_edges() fixes the problem. Also, some pixels were not getting coverage due the inner edge being +1 winding. Using -2 winding for inner edges ensure the interior regions are -1 winding, which gives coverage in more cases of self-intersection. This required flipping the comparisons on the intruding-vertices workaround. BUG=skia: Change-Id: I216fa3d30c196a6b7773637e48802f6572c993c7 Reviewed-on: https://skia-review.googlesource.com/7962 Commit-Queue: Stephan White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Batch across matrix changes in drawVertices and add GM to test.Gravatar Brian Salomon2017-02-03
| | | | | | | Change-Id: I6b08d37781e3c715a1d9d8c9729667ec78625836 Reviewed-on: https://skia-review.googlesource.com/7949 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Replaced all calls to fragmentPosition() with sk_FragCoord"Gravatar Ethan Nicholas2017-02-02
| | | | | | | | | | | | | This reverts commit de4d301881e7fd084f1f0b359ec6f9b2bf8bd4c5. Reason for revert: several Chrome rendering bugs on Mac BUG=skia: Change-Id: I492082b0b7e7c902ede4b598c5809f604d210ce1 Reviewed-on: https://skia-review.googlesource.com/7887 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "Revert "SkScalar: delete code that doesn't compile.""Gravatar Hal Canary2017-02-02
| | | | | | | | | This reverts commit 8233fc82b00763d37a7b0db7890b15c7d58939d4. Change-Id: Ia32ccdb3b385ed28e1b41e553c7d80cf803522cc Reviewed-on: https://skia-review.googlesource.com/7899 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkScalar: delete code thqat doesn't compile."Gravatar Leon Scroggins2017-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 565da18f6e4a0f04dc836ce9d35f31bee31644f7. Reason for revert: breaking android roll: https://googleplex-android-review.git.corp.google.com/#/c/1853481/-1..1 Some code in Android references SK_SCALAR_IS_FLOAT: https://cs.corp.google.com/android/frameworks/base/core/jni/android/graphics/Interpolator.cpp?q=frameworks/base/core/jni/android/graphics/Interpolator.cpp&sq=package:android&l=30 Original change's description: > SkScalar: delete code thqat doesn't compile. > > Change-Id: I8a5c404d6151fca79af5c5a98d4b44924c0ade52 > Reviewed-on: https://skia-review.googlesource.com/7882 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4df06c4593abaa3ac3877b270a41aec7a9c3fc8f Reviewed-on: https://skia-review.googlesource.com/7888 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* make GR_TEST_UTILS=0 workGravatar Hal Canary2017-02-02
| | | | | | | Change-Id: Icce35140ca08b65217b32e6b1ffc6ad2f38ab37f Reviewed-on: https://skia-review.googlesource.com/7840 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Have Vulkan advertise that compressed textures are currently unsupportedGravatar Robert Phillips2017-02-02
| | | | | | | | | | This allows the ProxyTest to run on the Vulkan backend. Change-Id: I89a3212bdc2d4a1ceb0c27d0ff60f558d7b12647 Reviewed-on: https://skia-review.googlesource.com/7880 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* SkScalar: delete code thqat doesn't compile.Gravatar Hal Canary2017-02-02
| | | | | | | Change-Id: I8a5c404d6151fca79af5c5a98d4b44924c0ade52 Reviewed-on: https://skia-review.googlesource.com/7882 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Add a GM for SkShadowUtils and fix a few issues.Gravatar Brian Salomon2017-02-01
| | | | | | | | | | | | | | | 1) Transform the path center to device space before computing the shadow offset. 2) Modulate the shadow color by the color filter's output color. 3) Make the scale of path points in the spot tessellator be relative to the path centroid. 4) Clamp the shadow alphas at 1. Change-Id: I480476df79b959f11c1eca0ba2a49a134d355cbb Reviewed-on: https://skia-review.googlesource.com/7860 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Broaden checking of GrSurfaceProxy::MakeDeferred's return valueGravatar Robert Phillips2017-02-01
| | | | | | | | | | | | | We now expect MakeDeferred to baulk if the ultimate texture/rendertarget will not be instantiable. Added checks for MakeWrapped too since, technically, it too can baulk. BUG=676753 Change-Id: I3e052ebf98303fc46124272082c10f303d89da27 Reviewed-on: https://skia-review.googlesource.com/7830 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add test for proactive proxy-creation failureGravatar Robert Phillips2017-02-01
| | | | | | | | | | | This is a follow up to https://skia-review.googlesource.com/c/7828/ (Add more pre-checks to surfaceProxy creation) BUG=687174 Change-Id: I97385afbdaf1881b806ee37737020564e3f4d444 Reviewed-on: https://skia-review.googlesource.com/7864 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* GR_PROXY_MOVE: Work around Win/Clang eval order bugGravatar Hans Wennborg2017-02-01
| | | | | | | | | | BUG=chromium:687259 Change-Id: I145dac240a3c4f89cf1b6bf6ff54ba73cd110ebf Reviewed-on: https://skia-review.googlesource.com/7831 Reviewed-by: Hans Wennborg <hwennborg@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add more pre-checks to surfaceProxy creationGravatar Robert Phillips2017-02-01
| | | | | | | | | | | | | Chrome is seeing crashes in GrProcessor::TextureSampler::reset when the textures are being instantiated. This CL moves more potential failures cases up-stack. BUG=687174 Change-Id: I014acff9730ffd1e8ac178611372ed4dedbd82f3 Reviewed-on: https://skia-review.googlesource.com/7828 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Reduce use of SkImage_Base::peekTextureGravatar Robert Phillips2017-01-31
| | | | | | | Change-Id: I079093c9706df4911d47fba04b786e59240e8cb4 Reviewed-on: https://skia-review.googlesource.com/7792 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Make sure to preserve stencil on vulkan copy as drawsGravatar Greg Daniel2017-01-31
| | | | | | | | | BUG=skia: Change-Id: I65a7eebe2024585e0696f8185b8ae9af5069f459 Reviewed-on: https://skia-review.googlesource.com/7782 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* GrTessellator (AA): improve AA quality for near-overlapping paths.Gravatar Stephen White2017-01-30
| | | | | | | | | | | | | | | When path features are very close together, the outer contours can overlap. This causes the connector edges (the ones joining the inner and outer vertices) to intersect other edges. Lerping the alpha along the connector edge gives us a good approximation of the coverage at that point. BUG=skia: Change-Id: I56bcc570fc185344c5f84d11ef995d3940a08793 Reviewed-on: https://skia-review.googlesource.com/7701 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* Rationalize GrContext's Gr*Proxy getter namingGravatar Robert Phillips2017-01-30
| | | | | | | | | | | | | | | | | | | | | | | | This CL replaces the entry points: asDeferredSurface asDeferredTexture asDeferredRenderTarget with: GrSurfaceProxy* asSurfaceProxy sk_sp<GrSurfaceProxy> asSurfaceProxyRef GrTextureProxy* asTextureProxy sk_sp<GrTextureProxy> asTextureProxyRef GrRenderTargetProxy* asRenderTargetProxy sk_sp<GrRenderTargetProxy> asRenderTargetProxyRef Change-Id: I7c2b1ea3d702023ff23019815ca13c9ff6f3b32d Reviewed-on: https://skia-review.googlesource.com/7741 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Change shadow tessellators to use SkColor and move to util.Gravatar Jim Van Verth2017-01-30
| | | | | | | | | BUG=skia:6119 Change-Id: I4c4a8933c663ccc057596318a06c538175b9f16b Reviewed-on: https://skia-review.googlesource.com/7726 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Make blur utils take GrTextureProxies - take 2Gravatar Robert Phillips2017-01-30
| | | | | | | | | This is a re-land of https://skia-review.googlesource.com/c/7738/ (Make blur utils take GrTextureProxies) with a fix for the Nexus7 Change-Id: I5821a26b1e986daa11d960ae826a1207512cd2a0 Reviewed-on: https://skia-review.googlesource.com/7746 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Make SkGpuDevice::drawVertices perform color byte order swap and premul step ↵Gravatar Brian Salomon2017-01-30
| | | | | | | | | using vertex shader. Change-Id: I8153ba8c6bb48d8b15d524fbfafbe3c6d83f39c5 Reviewed-on: https://skia-review.googlesource.com/7727 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Make blur utils take GrTextureProxies"Gravatar Robert Phillips2017-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d0dc05b98b71af43b44f13beba1292db52b75539. Reason for revert: assertion failure on N7 Original change's description: > Make blur utils take GrTextureProxies > > Change-Id: I1c5054de6d9827eece2f73c4c78818b4db0bc611 > Reviewed-on: https://skia-review.googlesource.com/7738 > 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: I82d9385e23279db4c7a6757f1224e603e231354c Reviewed-on: https://skia-review.googlesource.com/7744 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Make blur utils take GrTextureProxiesGravatar Robert Phillips2017-01-30
| | | | | | | Change-Id: I1c5054de6d9827eece2f73c4c78818b4db0bc611 Reviewed-on: https://skia-review.googlesource.com/7738 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Push GrTextureProxy down to more effectsGravatar Robert Phillips2017-01-30
| | | | | | | Change-Id: Ie3f32a88f25af082c25bc6daf3fe24e303e80f9e Reviewed-on: https://skia-review.googlesource.com/7616 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Rename GrFragmentProcessor::MulOutputByInputUnpremulColor to ↵Gravatar Brian Salomon2017-01-28
| | | | | | | | | MakeInputPremulAndMulByOutput. Change-Id: I33d74ddb8a7836e8f1922a5ae73f0adb74d59db3 Reviewed-on: https://skia-review.googlesource.com/7609 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* AA GrTessellator: fix bevelling of acute angles.Gravatar Stephen White2017-01-27
| | | | | | | | | | | | | | | | | The code to handle acute outer angles in generated geometry was pretty broken: it did a simple runnning average of consecutive acute vertices, and didn't handle acute angles between the last and first edges. Replaced it with something simpler that does proper bevelling for angles less than 2.5 degrees. This revealed a bug with thin path segments, exposed by the thinconcavepaths test. This will be fixed by upcoming changes, but I've also dded a few more test cases to make it clearer. Change-Id: I23a628ab2e16acaab798c746a5fd87842cacbfab Reviewed-on: https://skia-review.googlesource.com/7660 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* verify that glyph position rect is non-empty in GrAtlasTextBlob::appendGlyphGravatar Lee Salzman2017-01-27
| | | | | | | | | BUG=skia: Change-Id: I35d170480cb3320a9d116e34aaf740aa201a294f Reviewed-on: https://skia-review.googlesource.com/7700 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add geometric version of spot shadowGravatar Jim Van Verth2017-01-27
| | | | | | | | | BUG=skia:6119 Change-Id: Ib9770bd88f4eebd68f2d893c5788f966d89f193c Reviewed-on: https://skia-review.googlesource.com/7585 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Add utilities to create GrSurfaceProxy & GrSurfaceContext from backend descsGravatar Robert Phillips2017-01-27
| | | | | | | Change-Id: Iff2278de8ddd6c0dff74e5cf1996702bad31217b Reviewed-on: https://skia-review.googlesource.com/7647 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add offset to uniform blocks in VulkanGravatar Greg Daniel2017-01-27
| | | | | | | | | | | This is the first step to being able to use push constants. BUG=skia:5039 Change-Id: I49edea8faacf78814036ce3b3f9f2814974cf2c7 Reviewed-on: https://skia-review.googlesource.com/7448 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Revert "Revert "Start of rewrite of GrFragmentProcessor optimizations.""Gravatar Brian Salomon2017-01-27
| | | | | | | | | | | This reverts commit 052fd5158f7f85e478a9f87c45fecaacf7d0f5f3. Disables the test (of unused code) until platform-specific issues are addressed. Change-Id: I7aa23a07954fccf382aa07d28afcbffb0bebcd6d Reviewed-on: https://skia-review.googlesource.com/7656 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Start of rewrite of GrFragmentProcessor optimizations."Gravatar Ethan Nicholas2017-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 85eb4226a4cd8c10a0e3f3ba2f3a60efbb2dd61b. Reason for revert: test failures on Windows, e.g. https://chromium-swarm.appspot.com/task?id=33f9527484414110&refresh=10 Original change's description: > Start of rewrite of GrFragmentProcessor optimizations. > > This adds a replacement for computeInvariantOutput buts does not use it yet. The replacement allows for three types of optimizations: > > * known input color -> known output color for GrFP elimination > * tracking of whether all color processors modulate their input for the "tweak alpha" optimziation > * opaqueness tracking > > This loses some of the generality of computInvariantOutput. It does not track the known output status of individual color components (other than opaque alpha). It does not track whether GrFragmentProcessors read their input color. It doesn't allow a processor that will receive non-constant output to advertise that it produces a constant output. These could probably be added back in the unlikely case that they prove valuable. > > Unlike computeInvariantOutput the optimizations are decided at instantiation time and constant colors are expressed as GrColor4f rather than GrColor. > > Change-Id: I684d3f9050693dde2d28154fa695e049ed8cf61a > Reviewed-on: https://skia-review.googlesource.com/7481 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> > TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I2390df257456013fa74137cb5d7b5a93820c291e Reviewed-on: https://skia-review.googlesource.com/7652 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
* Start of rewrite of GrFragmentProcessor optimizations.Gravatar Brian Salomon2017-01-27
| | | | | | | | | | | | | | | | | This adds a replacement for computeInvariantOutput buts does not use it yet. The replacement allows for three types of optimizations: * known input color -> known output color for GrFP elimination * tracking of whether all color processors modulate their input for the "tweak alpha" optimziation * opaqueness tracking This loses some of the generality of computInvariantOutput. It does not track the known output status of individual color components (other than opaque alpha). It does not track whether GrFragmentProcessors read their input color. It doesn't allow a processor that will receive non-constant output to advertise that it produces a constant output. These could probably be added back in the unlikely case that they prove valuable. Unlike computeInvariantOutput the optimizations are decided at instantiation time and constant colors are expressed as GrColor4f rather than GrColor. Change-Id: I684d3f9050693dde2d28154fa695e049ed8cf61a Reviewed-on: https://skia-review.googlesource.com/7481 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Fix extension suffic for getting procs from GL_EXT_debug_marker on ESGravatar Brian Salomon2017-01-26
| | | | | | | Change-Id: I483fbf7c5f6d4489802def78fa855f70313e4a19 Reviewed-on: https://skia-review.googlesource.com/7602 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Move SkGammaColorFilter to tools, limit to sRGBGravatar Brian Osman2017-01-26
| | | | | | | | | | | Similarly, limit GrGammaEffect to sRGB (and rename it). BUG=skia: Change-Id: I88feef11ab7040bca2fa4c2eed71923ded87a0d0 Reviewed-on: https://skia-review.googlesource.com/7375 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Move GrDrawingManager pointer to GrSurfaceContextGravatar Robert Phillips2017-01-26
| | | | | | | | Change-Id: Ic285b24b384bbf284cc680fe770433dd4d643833 Reviewed-on: https://skia-review.googlesource.com/7561 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove redundant caps field from GrProcessorTestDataGravatar Brian Salomon2017-01-25
| | | | | | | Change-Id: Ic31338f08d1bd5b55ffab75d30c0f54436c8b917 Reviewed-on: https://skia-review.googlesource.com/7510 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Switch GrConfigConversionEffect over to taking GrTextureProxiesGravatar Robert Phillips2017-01-25
| | | | | | | Change-Id: Ic8be773e210e1ac05dcb9aad6c89dcd63e9e4ba2 Reviewed-on: https://skia-review.googlesource.com/7521 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Use GrSurfaceContext::read/write-Pixels moreGravatar Robert Phillips2017-01-25
| | | | | | | | Change-Id: I04bcaf91aa7a43e0563e332c1fe2836d762a04d4 Reviewed-on: https://skia-review.googlesource.com/7520 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Move SkShadowTessellator to GrShadowTessellatorGravatar Jim Van Verth2017-01-25
| | | | | | | | | BUG=skia:6119 Change-Id: I9756b5aeaced1f21a65063470ccb013c7b856f28 Reviewed-on: https://skia-review.googlesource.com/7505 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Allow GrSingleTextureEffect to take GrTextureProxiesGravatar Robert Phillips2017-01-24
| | | | | | | Change-Id: I1dd441a5838f665c6815a5c629f5763f43f66e09 Reviewed-on: https://skia-review.googlesource.com/7429 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>