aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Revert "Add vector GrSLTypes for shorts"Gravatar Chris Dalton2017-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit af37a53a84d03fa08bc2f447034d7db754cfc5ba. Reason for revert: Compiler errors Original change's description: > Add vector GrSLTypes for shorts > > Bug: skia: > Change-Id: Icb9eb1fcb0f879cd0bfdd27d06459843361c9947 > Reviewed-on: https://skia-review.googlesource.com/62943 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Reviewed-by: Ethan Nicholas <ethannicholas@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com Change-Id: Ib23b28be92e199459fe1666fb1ec0e46e141a8f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/63460 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Add vector GrSLTypes for shortsGravatar Chris Dalton2017-10-24
| | | | | | | | | Bug: skia: Change-Id: Icb9eb1fcb0f879cd0bfdd27d06459843361c9947 Reviewed-on: https://skia-review.googlesource.com/62943 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* add srcover_bgra_8888Gravatar Mike Klein2017-10-24
| | | | | | | | | | | | | | Chrome generally uses BGRA buffers, so srcover_rgba_8888 isn't really doing them any good. Probably a good idea to cover both kN32 options any time we specialize like this? There's one small diff, so I've lazily guarded this by SK_LEGACY_LOWP_STAGES, which I want to rebaseline today anyway. Change-Id: Ice672aa01a3fc83be0798580d6730a54df075478 Reviewed-on: https://skia-review.googlesource.com/63301 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* more easy lowp shader stagesGravatar Mike Klein2017-10-24
| | | | | | | | | | | | | | This fills out a couple more matrix and gather stages. Deletes a not particularly important unit test that was using a scale matrix in a weird, non-lowp compatible way. This will require guards for Blink layout tests. Change-Id: I54cb228ff541f771e8f4758f07d26c5161d48af3 Reviewed-on: https://skia-review.googlesource.com/62520 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Create mipped texture proxys for PictureImageGeneratorGravatar Greg Daniel2017-10-24
| | | | | | | | Bug: skia: Change-Id: If86b01e5c008537de8c9af99000559bf524c836f Reviewed-on: https://skia-review.googlesource.com/63260 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Avoid double-dithering of legacy/gpu gradientsGravatar Florin Malita2017-10-24
| | | | | | | | | | | | The GPU backend is the only remaining user of getGradientTableBitmap(). But with Ganesh, dithering is applied as a separate GrPaint effect => we must not pre-dither the gradient texture also. Change-Id: Icc47c1e762c4913205b3715512894d3d2c3b7659 Reviewed-on: https://skia-review.googlesource.com/63261 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* preliminary SkSL Metal backendGravatar Ethan Nicholas2017-10-24
| | | | | | | | Bug: skia: Change-Id: I03e839fb4f1061bc6d1b1b72d54fd39ca7bd7b84 Reviewed-on: https://skia-review.googlesource.com/51245 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Respect if texture proxy will have mips or not when computing sizeGravatar Greg Daniel2017-10-24
| | | | | | | | Bug: skia: Change-Id: I47239ae68c103f29a8c8c2a2a5d8940c2c1d95fc Reviewed-on: https://skia-review.googlesource.com/63001 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* make enabling LOWP stages simplerGravatar Mike Klein2017-10-23
| | | | | | | | | | | | | | | | This method is a little simpler macro-wise, and makes it easier to guard new lowp stages: LOWP(foo) LOWP(bar) #ifndef SK_LEGACY_LOWP_BAZ LOWP(baz) #endif Change-Id: I06392f5cf7a04651e7bf47e79f10f7da8520f5ab Reviewed-on: https://skia-review.googlesource.com/63141 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add hint to SkSurface::MakeRenderTarget that we will use mipsGravatar Greg Daniel2017-10-23
| | | | | | | | | | | Additionally this changed triggered a cascade of plumbing GrMipMapped down throughout Ganesh. Bug: skia: Change-Id: I4181f44d9046d66139bb491c7abf86703305aaeb Reviewed-on: https://skia-review.googlesource.com/63000 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Use SK_SUPPORT_LEGACY_AA_CHOICE to stage some changesGravatar Yuqian Li2017-10-23
| | | | | | | | | | | So I can rebaseline the golden images and unify AA choices without fully turning on DAA. Bug: skia: Change-Id: I33447f60c8eac6318dda7730abd6caefdb14c5dc Reviewed-on: https://skia-review.googlesource.com/62840 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "Revert "Support creation/use of mipped proxy in ↵Gravatar Greg Daniel2017-10-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrBackendTextureImageGenerator"" This reverts commit 7477d9693869982a4b0b18d20fee32d2f3eaedbf. Reason for revert: Putting in fixes in tests Original change's description: > Revert "Support creation/use of mipped proxy in GrBackendTextureImageGenerator" > > This reverts commit b8ad00b5a68975cafd68d6df0d66f0a01f5c07c2. > > Reason for revert: Some various test failures > > Original change's description: > > Support creation/use of mipped proxy in GrBackendTextureImageGenerator > > > > Bug: skia: > > Change-Id: I9d06780ccb2db0865100b67041c03408f2445c62 > > Reviewed-on: https://skia-review.googlesource.com/61241 > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com > > Change-Id: I28e625776352ee6f9f27e66cd5d4b149ef50a22a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/61941 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: Ibfbca5101b06d9ff8f8a5d33bc6f2114806db552 Reviewed-on: https://skia-review.googlesource.com/62561 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Remove color space xform support from SkSLGravatar Brian Osman2017-10-23
| | | | | | | | Bug: skia: Change-Id: Ia50c1f750e4626211f012ae7543db126b10134c3 Reviewed-on: https://skia-review.googlesource.com/61906 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove dead SK_SUPPORT_LEGACY_PICTURESHADER_ROUNDING codeGravatar Florin Malita2017-10-23
| | | | | | | | | This flag is no longer used. Change-Id: I239e756f7945f0848d12409f0eb8d3077651a4cf Reviewed-on: https://skia-review.googlesource.com/62740 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Be considerate of GPUs lacking npot support when testing GrSimpleTextureEffectGravatar Robert Phillips2017-10-20
| | | | | | | Change-Id: I3b03c621d78971e1ed62b61d0466a6ac8132be79 Reviewed-on: https://skia-review.googlesource.com/62465 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Make GrRectBlurEffect use bilerpGravatar Robert Phillips2017-10-20
| | | | | | | | Bug: skia:7031 Change-Id: I8061f516741bf7efd5020984a5b45a9d57307d43 Reviewed-on: https://skia-review.googlesource.com/62461 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* translate+scale -> scale+translateGravatar Mike Klein2017-10-20
| | | | | | | | | | | | | | | | This is a no-op refactor. It's just always surprised me that the matrix_scale_translate stage expects [tx ty sx sy], when scales precede the translates in the names and in both normal row-major and column-major matrix layouts. This switches to [sx sy tx ty], scale then translate. Change-Id: I2d88701121ae8013facd5a28bb0ff520211db5a6 Reviewed-on: https://skia-review.googlesource.com/62541 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* start on lowp shadersGravatar Mike Klein2017-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | We're going to want to assign types to the stages depending on their inputs and outputs: GG: x,y -> x,y GP: x,y -> r,g,b,a PP: r,g,b,a -> r,g,b,a (There are a couple other degenerate cases here, where a stage ignores its inputs or creates no outputs, but we can always just pretend their null input or output is one type or the other arbitrarily.) The GG stages will be pretty much entirely float code, and the GP stages a mix of float math and byte stuff. Since we've chosen U16 to match our register size in _lowp land, we'll unpack each F register across two of those for transport between stages. This is a notional, free operation in both directions. Change-Id: I605311d0dc327a1a3a9d688173d9498c1658e715 Reviewed-on: https://skia-review.googlesource.com/60800 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove off64_t in SkHeifCodecGravatar Mike Klein2017-10-20
| | | | | | | | | | | | I argue int64_t is just as good, and much more familiar. This, I think, will also fix the Emscripten/wasm bot, where somewhat bizarrely off64_t is typedef'd to int. Change-Id: I4eb9d05cbd3066b107fa429beff79e7471e94526 Reviewed-on: https://skia-review.googlesource.com/62362 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Use uint16_t instead of SkIPoint16 when clipping texCoords for text.Gravatar Jim Van Verth2017-10-20
| | | | | | | | | | | | | The texCoords and texture indices are packed into two uint16_t, so that should be used instead of SkIPoint16 for clipping. This CL also cleans up the clipping code a little, and keeps everything in int arithmetic (since the positions and coords are pixel/texel aligned). Bug: skia:6990 Change-Id: I9a237f7df32467adb6a56ddeca6352cbd4f8dd6f Reviewed-on: https://skia-review.googlesource.com/62360 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* add SkStubHeifDecoderAPI.hGravatar Mike Klein2017-10-20
| | | | | | | | | | | | | | | This should let us build SkHeifCodec even without libheif. I didn't look at libheif itself, so this stub may disagree a bit with the actual interface... just flailed around until it compiled and linked. This turns on the stub in most of our internal builds. Change-Id: I62ed4993198118b2a8217ec846d92ff637cc8ab9 Reviewed-on: https://skia-review.googlesource.com/62321 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* make matrix serialization privateGravatar Cary Clark2017-10-20
| | | | | | | | | | | | | | | | | | Moves readFromMemory, writeToMemory to private section. No sign that these are called from google3, android, chromium, but function names are common enough that it's hard to know for sure. These are used inside templates internally and for testing, so it is not quite as simple as adding alternate entry points in SkMatrixPriv. R=reed@google.com Bug: skia:6898 Change-Id: I1fac142f4bf0f38608ea93438c46f39147606c4d Reviewed-on: https://skia-review.googlesource.com/62361 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Add clamped/unclamped xform to GrColorSpaceXformGravatar Brian Osman2017-10-20
| | | | | | | | | | | Use that in analytic gradient setup for future-proofing. Also fixed several out-of-date comments in gradient code. Bug: skia: Change-Id: I79726cad786c22f80e08cdc2b7a1e15ae27ecd5a Reviewed-on: https://skia-review.googlesource.com/62320 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Re-land unit test for clear bug (w/ AMD work-arounds)Gravatar Robert Phillips2017-10-20
| | | | | | | | | Bug: 768134 Change-Id: I76e5e3ff5719b0d2f9c74d49dfa9e187e4da7c1f Reviewed-on: https://skia-review.googlesource.com/60562 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-on: https://skia-review.googlesource.com/61221
* make skmatrix getmapproc privateGravatar Cary Clark2017-10-20
| | | | | | | | | | | | | | Make SkMatrix MapXYProc MapPtsProc and friends private. Code search turned up no clients in chromium, google3, android. Fingers crossed. R:reed@google.com Bug: skia:6898 Change-Id: Iee20fe5150499215a09f67cc6f117b685f38f455 Reviewed-on: https://skia-review.googlesource.com/62140 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Fix ASAN issue with clipped text.Gravatar Jim Van Verth2017-10-20
| | | | | | | Change-Id: I340dfc77afc26cd4c97ca7ec1419e7716e632dca Reviewed-on: https://skia-review.googlesource.com/62280 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Clip text geometrically when possible.Gravatar Jim Van Verth2017-10-20
| | | | | | | | | | | | Currently when we clip text we can't batch the clipped text with non-clipped text. By modifying the quads and texCoords we can produce the same effect, and allow batching. Includes some minor text code cleanup. Bug: skia:6990 Change-Id: Ibfd4bc2fdc2d7680071e2abddd4d77fc3017e3d3 Reviewed-on: https://skia-review.googlesource.com/60780 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Simplify GrGradientEffect color handlingGravatar Brian Osman2017-10-19
| | | | | | | | | | | | | For analytic gradients, hoist the byte -> float, premultiplication, and color space transformation to creation time. Eliminates second array (only one was ever used), and four different onSetData helpers. Bug: skia: Change-Id: Ib5740b37ef2a5dcf2551e85b1e72f64d8cbcc5fa Reviewed-on: https://skia-review.googlesource.com/62120 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Remove color space xform from alpha threshold FPGravatar Brian Osman2017-10-19
| | | | | | | | | | | | | | | | | | | | This does math on the sampled color. In order to do that math in the destination color space, I split the behavior up - the threshold FP now operates on the input color, and we construct a series with a simple texture effect (possibly wrapped in a color xform), then the threshold. I also added a GM that verifies this behavior. All other GMs using this effect were operating on a layer source, which is always created in the destination color space. The new GM explicitly makes a DAG with an image source, so the alpha threshold filter needs to handle any color space mismatch. Bug: skia: Change-Id: I1ed08c99f4eed17f68176bf751677a3ae1614fe3 Reviewed-on: https://skia-review.googlesource.com/61942 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Avoid 2PtConical gradient flippingGravatar Florin Malita2017-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when startRadius > endRadius conical gradients are inverting their data (start/end points and radii, colors and positions) to guarantee r0 < r1 at raster time. But the radii ordering is only mildly interesting to the impl: it controls which of the two quadratic solutions we select for the inside case, but doesn't fundamentally change the algorithm. Furthermore, for the "outside" case, inverting the order is already inconvenient and needs to be taken into account (both CPU/GPU impls are already tracking this bit of info). Instead of transforming the gradient definition, we can detect the inverted case and adjust the quadratic solution selector. In practice this means: * |edge| case - no change, the equation is linear * |inside| case - select the smaller root instead of largest * |outside| case - [gpu-only] invert the clamp/limiting function Change-Id: Ie3106464e39a4dd3848dc43671d973f7e1958e63 Reviewed-on: https://skia-review.googlesource.com/61660 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "Support creation/use of mipped proxy in GrBackendTextureImageGenerator"Gravatar Greg Daniel2017-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b8ad00b5a68975cafd68d6df0d66f0a01f5c07c2. Reason for revert: Some various test failures Original change's description: > Support creation/use of mipped proxy in GrBackendTextureImageGenerator > > Bug: skia: > Change-Id: I9d06780ccb2db0865100b67041c03408f2445c62 > Reviewed-on: https://skia-review.googlesource.com/61241 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com Change-Id: I28e625776352ee6f9f27e66cd5d4b149ef50a22a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/61941 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Support creation/use of mipped proxy in GrBackendTextureImageGeneratorGravatar Greg Daniel2017-10-19
| | | | | | | | Bug: skia: Change-Id: I9d06780ccb2db0865100b67041c03408f2445c62 Reviewed-on: https://skia-review.googlesource.com/61241 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* speculative fix for Android rollGravatar Mike Klein2017-10-19
| | | | | | | Change-Id: I2ad50ecad5b668e7196f27f0dda27d3a990374e7 Reviewed-on: https://skia-review.googlesource.com/61904 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* replace gInited with SkOnceGravatar Mike Klein2017-10-19
| | | | | | | | | | | The bug was originally about TSAN failures on Mac, but we might as well also fix _win. Bug: skia:7187 Change-Id: I086060c9f6719afbb6b0a067a9601b6abcc29d78 Reviewed-on: https://skia-review.googlesource.com/61300 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
* fix mapRect to always return the same as rectStaysRectGravatar Mike Reed2017-10-18
| | | | | | | | Bug: skia: Change-Id: I7c19703613b3173942a12153b30e9951f35c0008 Reviewed-on: https://skia-review.googlesource.com/61820 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Compute inverse gamma table at compile time.Gravatar Ben Wagner2017-10-18
| | | | | | | | | | | | | | | | | | | This introduces skstd::index_sequence and skstd::make_index_sequence so that these can be used in C++11. These are mostly equivalent to their std:: counterparts. This also introduces SkMakeArray<N, C> which is constexpr and creates a std::array with N elements with each element being initialized with the value of C(i) where i is the index of the element. These are then used to create inverse gamma table at compile time. This avoids threading issues. BUG=skia:7187 Change-Id: I61fb10a778898652e546d54c104a08d6e6bf88d3 Reviewed-on: https://skia-review.googlesource.com/61380 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix dirty rect used when updating GrRenderTarget after clearing as draw in ↵Gravatar Brian Salomon2017-10-18
| | | | | | | | | GrGLGpu. Change-Id: Ifa5ea8b459fa316db4d626f9a25d992535b49d36 Reviewed-on: https://skia-review.googlesource.com/61760 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Move SkCodec::Origin into its own fileGravatar Leon Scroggins III2017-10-18
| | | | | | | | | | | | | | It is now used by SkPixmap and will soon be in SkJpegEncoder. No need for those to depend on SkCodec. Bug: 768878 TBR=reed@google.com (reed@ already approved the API change in https://skia-review.googlesource.com/60721) Change-Id: If1a6e1d5b60a7a3d8c97818e15a48d28ba804668 Reviewed-on: https://skia-review.googlesource.com/61680 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Remove color space xform from GrTextureDomain & GrSimpleTextureEffectGravatar Brian Osman2017-10-18
| | | | | | | | Bug: skia: Change-Id: I31435d334da28cce9bbc654c4b98746b03078897 Reviewed-on: https://skia-review.googlesource.com/61460 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* SkPDF: TextSize > 0;Gravatar Hal Canary2017-10-18
| | | | | | | | BUG=chromium:767343 Change-Id: Ide85e82bfc53ef8cf5fb59d9c7733436f83d7209 Reviewed-on: https://skia-review.googlesource.com/61580 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "Add an Option for orientation on JPEG encodes"Gravatar Ben Wagner2017-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5411a60e0d7370a5d47b5049de845a06fe52e98b. Reason for revert: ASAN and Coverage failing: https://chromium-swarm.appspot.com/task?id=394978f3b7d44610 Flutter_Android failing. Original change's description: > Add an Option for orientation on JPEG encodes > > Move Origin to its own header so that SkPixmap and SkJpegEncoder need > not depend on SkCodec. > > Add libexif, which is already used by Android, and use it to write the > orientation. Write a makefile based on the Android.bp in Android, minus > warnings. (libexif has an LGPL license.) > > Add a test that verifies all the orientations work. > > Optionally enable writing the orientation (and therefore including > libexif). Chromium does not currently need it, and Android does not > expose an API that would allow using it. Disable on Windows, where we > still have build errors to fix. > > Bug: skia:7138 > Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1 > Reviewed-on: https://skia-review.googlesource.com/60721 > Commit-Queue: Leon Scroggins <scroggo@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Reed <reed@google.com> TBR=mtklein@chromium.org,mtklein@google.com,scroggo@google.com,reed@google.com Change-Id: I05b7ae8d1c5bbd1de1642d9ef024943500256273 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7138 Reviewed-on: https://skia-review.googlesource.com/61620 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* Add an Option for orientation on JPEG encodesGravatar Leon Scroggins III2017-10-18
| | | | | | | | | | | | | | | | | | | | | | | Move Origin to its own header so that SkPixmap and SkJpegEncoder need not depend on SkCodec. Add libexif, which is already used by Android, and use it to write the orientation. Write a makefile based on the Android.bp in Android, minus warnings. (libexif has an LGPL license.) Add a test that verifies all the orientations work. Optionally enable writing the orientation (and therefore including libexif). Chromium does not currently need it, and Android does not expose an API that would allow using it. Disable on Windows, where we still have build errors to fix. Bug: skia:7138 Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1 Reviewed-on: https://skia-review.googlesource.com/60721 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Reland the combined 3 pass image blur with a fix to the bounds calculationGravatar Herb Derby2017-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the old bounds calculation so that CPU and GPU agree. Adjust all the combined 3 pass code to use the new bounds. This reverts commit 59f8f154872a66433eb1dfccd3d56b540193089e and fixes bound calculation. Original change's description: > Revert "Use combined three pass code for image blur." > > This reverts commit d4a0fc7383546d106db2216515b3753937398ece. > > Reason for revert: Too naive about bounds > > Original change's description: > > Use combined three pass code for image blur. > > > > This changes more closely matches the GL output, and the runtimes are similar or > > faster for the common cases. > > > > x86_64 times: > > benchmark old-Us new-Us old/new > > blur_image_filter_large_80.00_80.00 4842.04 2626.10 1.84381 > > blur_image_filter_small_80.00_80.00 3297.72 854.97 3.85712 > > blur_image_filter_large_10.00_10.00 930.44 720.50 1.29138 > > blur_image_filter_small_10.00_10.00 69.96 42.15 1.65979 > > blur_image_filter_large_1.00_1.00 682.66 521.78 1.30833 > > blur_image_filter_small_1.00_1.00 19.21 14.43 1.33125 > > blur_image_filter_large_0.50_0.50 696.17 64.14 10.8539 > > blur_image_filter_small_0.50_0.50 16.26 5.02 3.23904 > > > > arm64 times: > > benchmark old-Us new-Us old/new > > blur_image_filter_large_80.00_80.00 42144.53 14128.42 2.98296 > > blur_image_filter_small_80.00_80.00 24840.58 4392.58 5.65512 > > blur_image_filter_large_10.00_10.00 3556.40 3793.70 0.937449 > > blur_image_filter_small_10.00_10.00 282.53 220.62 1.28062 > > blur_image_filter_large_1.00_1.00 2502.20 2937.99 0.851671 > > blur_image_filter_small_1.00_1.00 83.32 81.93 1.01697 > > blur_image_filter_large_0.50_0.50 5643.80 272.83 20.6861 > > blur_image_filter_small_0.50_0.50 141.02 38.29 3.68295 > > > > Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD > > Change-Id: Ic53b3186607d5485477b92e4ca7b092bf1366c52 > > Reviewed-on: https://skia-review.googlesource.com/52771 > > Commit-Queue: Herb Derby <herb@google.com> > > Reviewed-by: Mike Klein <mtklein@google.com> > > TBR=mtklein@google.com,herb@google.com,senorblanco@chromium.org > > Change-Id: Idf679a8fc6d777625ad9527b843aa1614d878cba > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD > Reviewed-on: https://skia-review.googlesource.com/60900 > Reviewed-by: Herb Derby <herb@google.com> > Commit-Queue: Herb Derby <herb@google.com> Change-Id: Idda0d83b1e2f753c9c8e703f9506dd31b117ec55 Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Reviewed-on: https://skia-review.googlesource.com/61320 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Feed seed_shader() iota through a context pointer.Gravatar Mike Klein2017-10-18
| | | | | | | | | | As this array grows longer it causes troublesome code generation when we're compiling offline, but it's easy as an argument. Change-Id: I53526443f534f29d3bff17c3aec24a9e916c9b86 Reviewed-on: https://skia-review.googlesource.com/60564 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* convert mapHomogeneousPoints to SkPoint3Gravatar Cary Clark2017-10-18
| | | | | | | | | | | | | | | SkMatrix::mapHomogeneousPoints takes an array of SkScalar, but expects essentially SkPoint3, so make it so. R: robertphillips@google.com, reed@google.com Bug: skia:6898 Change-Id: Ibaf8b05c08b7df16c67d6a77d914667ace9a70da Reviewed-on: https://skia-review.googlesource.com/58380 Commit-Queue: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* rename (x,y) to (dx,dy)Gravatar Mike Klein2017-10-18
| | | | | | | | | | | | | | | Today (x,y) are the integer coordinates of the first destination pixel we're working on. By renaming them (dx,dy), we free up the names (x,y) for working (i.e. _source_) x and y. Until now we've generally just been continuing to call those (r,g), but in the _lowp code that won't be possible (r+g hold x together, b+a y) but we'll have the ability to just give them proper names x and y. Change-Id: Id5faa09c4406116df5df7494efc6cb23659e9a2f Reviewed-on: https://skia-review.googlesource.com/60820 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Convert more code to use color space xform FPGravatar Brian Osman2017-10-18
| | | | | | | | | | | Special images, image shaders, and all texture producers, as well as bicubic (which simplifies factory call sites). Bug: skia: Change-Id: I3f7c178060f25db8b659fe66e132f5ea066317b1 Reviewed-on: https://skia-review.googlesource.com/61261 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Convert several effects to use color space xform FPGravatar Brian Osman2017-10-18
| | | | | | | | | | | Starting with oddball image filters, etc: Arithmetic, Displacement, Magnifier, Xfermode. Bug: skia: Change-Id: Iacf14be1c936eef2ac0c5e3ba08f228e3a45c177 Reviewed-on: https://skia-review.googlesource.com/61281 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add GrColorSpaceXformEffectGravatar Brian Osman2017-10-18
| | | | | | | | | | | | | This is an FP that just applies a GrColorSpaceXform. I have a long string of follow-up changes that use this, which greatly simplifies many other FPs, and ultimately eliminates the need for color space xforms to be a first-class type in SkSL. Bug: skia: Change-Id: I070d8bab81c9a620a2173c83b0013c63ad53bc8e Reviewed-on: https://skia-review.googlesource.com/60726 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* add fuzzer timeout escapeGravatar Cary Clark2017-10-18
| | | | | | | | | | | | | | | | | SkOpSegment::moveNearby may loop for a long time, maybe forever. The longest loop isolated is 500 in a fuzzer generated test, and 50 in a real world test. Add an escape hatch to abandon the op after 9999 loops. While this puts a limit on the complexity path ops can handle, realistically paths this complex fail otherwise. TBR:hcm@google.com Bug: 764699 Change-Id: Iad62b9d505b94b2c2845ad2874342ac90478642e Reviewed-on: https://skia-review.googlesource.com/61200 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>