aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* 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>
* Move clear-as-draw workaround to GrGLGpu and expose via GrContextOptions.Gravatar Brian Salomon2017-10-18
| | | | | | | | Bug: skia:7154 Change-Id: I23ffc11dab4a377fbd6b7e4e33722b3fa0793d58 Reviewed-on: https://skia-review.googlesource.com/60681 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Revert "Make GPU backend triangulate rects such that they are ↵Gravatar Brian Salomon2017-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rendered as tri strips rather than tri fans."" This reverts commit 62563deb6b4dbb0b1db7f29f35e07dcef043af31. Reason for revert: change that affected similar set of GMs reverted, relanding now that this is more easily triagable. Original change's description: > Revert "Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans." > > This reverts commit fa2d604a7ded95a3ace905519b476129cd0fffcb. > > Reason for revert: <INSERT REASONING HERE> > > Original change's description: > > Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans. > > > > Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. > > > > I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. > > > > > > Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca > > Reviewed-on: https://skia-review.googlesource.com/60081 > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > Reviewed-by: Robert Phillips <robertphillips@google.com> > > TBR=bsalomon@google.com,robertphillips@google.com > > Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/60683 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: Iefcd16676a7617d32e89fc84206cd4e88e9a06e1 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/61160 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Use combined three pass code for image blur."Gravatar Herb Derby2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* fix for SkSL lexer crash on non-ASCII inputGravatar Ethan Nicholas2017-10-17
| | | | | | | | Bug: skia:7126 Change-Id: Ic884d14daf91fd668afe9e29d2f82d1ef1089cce Reviewed-on: https://skia-review.googlesource.com/56720 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Fix left shift ASAN problemGravatar Yuqian Li2017-10-17
| | | | | | | | | | This should fix our new FSAA ASAN bot: https://chromium-swarm.appspot.com/task?id=39446a25c7957710&refresh=10&show_raw=1&wide_logs=true Bug: skia:7179 Change-Id: I1fcee6f7e3d8c8e3a646c67e41d4b6c19d372835 Reviewed-on: https://skia-review.googlesource.com/60702 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Make GPU backend triangulate rects such that they are rendered as ↵Gravatar Brian Salomon2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tri strips rather than tri fans." This reverts commit fa2d604a7ded95a3ace905519b476129cd0fffcb. Reason for revert: <INSERT REASONING HERE> Original change's description: > Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans. > > Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. > > I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. > > > Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca > Reviewed-on: https://skia-review.googlesource.com/60081 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/60683 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* set SkJumper_kMaxStride to 16Gravatar Mike Klein2017-10-17
| | | | | | | | | | | | | | | It's properly 16 today because of HSW/lowp stages handling 16 pixels at a time, but it hasn't yet had an effect on lowp so we didn't notice. As we add lowp shader stages this will start to matter, so might as well bump it up to 16 now. (One day _skx lowp stages could bump this up to 32.) Change-Id: Idd8185c08e12dc657389a35bf659662c9670f98a Reviewed-on: https://skia-review.googlesource.com/60565 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Enable CCPR for volatile pathsGravatar Chris Dalton2017-10-17
| | | | | | | | | | Enables for volatile paths and when path mask caching is disabled. Bug: skia: Change-Id: I644b17f2a4f77a4ddf85265f520599499c0800cf Reviewed-on: https://skia-review.googlesource.com/60481 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Remove unused variableGravatar Benjamin Kramer2017-10-17
| | | | | | | | | | | | Clang trunk will warn about this. The variable's constructor doesn't have side-effect and it has a trivial destructor. Bug: skia: Change-Id: I4f20904fef2fd3617bb3062aa5ea71619e37c06c Reviewed-on: https://skia-review.googlesource.com/60660 Commit-Queue: Benjamin Kramer <kramerb@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert[4] "apply codec origin in generator"Gravatar Mike Reed2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dd340146f1fe7414702d6fea251da989d425691e. Reason for revert: ios gn file fixed Original change's description: > Revert "Revert "Revert "apply codec origin in generator""" > > This reverts commit 82269abfec798621c8dbbc6bd48996c0b2686f41. > > Reason for revert: ios build needs include path for SkCodec.h > > Original change's description: > > Revert "Revert "apply codec origin in generator"" > > > > This reverts commit 363dd988a55c2ed3fa92e2368c1c889101425734. > > > > Reason for revert: pdfium fix landed > > > > Original change's description: > > > Revert "apply codec origin in generator" > > > > > > This reverts commit fa15877f487333bec876e7315cf584c0d598d098. > > > > > > Reason for revert: Appears to break PDFium. > > > > > > Original change's description: > > > > apply codec origin in generator > > > > > > > > Bug: skia: > > > > Change-Id: I383dacb49b1e3c88467ccdbf3288764bb1bbf01a > > > > Reviewed-on: https://skia-review.googlesource.com/58600 > > > > Reviewed-by: Leon Scroggins <scroggo@google.com> > > > > Commit-Queue: Mike Reed <reed@google.com> > > > > > > TBR=scroggo@google.com,reed@google.com > > > > > > Change-Id: Id97137d6ec39ca638c941928bae6510814b1c499 > > > No-Presubmit: true > > > No-Tree-Checks: true > > > No-Try: true > > > Bug: skia: > > > Reviewed-on: https://skia-review.googlesource.com/60041 > > > Reviewed-by: Ben Wagner <benjaminwagner@google.com> > > > Commit-Queue: Ben Wagner <benjaminwagner@google.com> > > > > TBR=benjaminwagner@google.com,scroggo@google.com,reed@google.com > > > > Change-Id: I1b54a6e6e6cbda07f346ffbbc4977f9db705abcd > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: skia: > > Reviewed-on: https://skia-review.googlesource.com/60320 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > TBR=benjaminwagner@google.com,scroggo@google.com,reed@google.com > > Change-Id: I4c2d310521d1a678b407d30b9fe3c261c49d67bc > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/60560 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=benjaminwagner@google.com,scroggo@google.com,reed@google.com Change-Id: I5c1e53aff3ad174b0d4a806c35b7cdcd194479d7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/60563 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Make GPU backend triangulate rects such that they are rendered as tri strips ↵Gravatar Brian Salomon2017-10-17
| | | | | | | | | | | | | | rather than tri fans. Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip. I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case. Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca Reviewed-on: https://skia-review.googlesource.com/60081 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add sk_InstanceIDGravatar Chris Dalton2017-10-17
| | | | | | | | Bug: skia: Change-Id: I79b0dce96d9af7632f027afa5317a7725e96cda3 Reviewed-on: https://skia-review.googlesource.com/59861 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* fix typoGravatar Cary Clark2017-10-17
| | | | | | | | | | | | | developer reported a harmless, but misleading typo in pathops. Verified that correcting it is also harmless TBR:reed@google.com Bug: skia:7172 Change-Id: I3aff926752ef6c5d95a78f4e6cf57c9b42789f64 Reviewed-on: https://skia-review.googlesource.com/60561 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Use combined three pass code for image blur.Gravatar Herb Derby2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Revert "Revert "Revert "apply codec origin in generator"""Gravatar Mike Reed2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 82269abfec798621c8dbbc6bd48996c0b2686f41. Reason for revert: ios build needs include path for SkCodec.h Original change's description: > Revert "Revert "apply codec origin in generator"" > > This reverts commit 363dd988a55c2ed3fa92e2368c1c889101425734. > > Reason for revert: pdfium fix landed > > Original change's description: > > Revert "apply codec origin in generator" > > > > This reverts commit fa15877f487333bec876e7315cf584c0d598d098. > > > > Reason for revert: Appears to break PDFium. > > > > Original change's description: > > > apply codec origin in generator > > > > > > Bug: skia: > > > Change-Id: I383dacb49b1e3c88467ccdbf3288764bb1bbf01a > > > Reviewed-on: https://skia-review.googlesource.com/58600 > > > Reviewed-by: Leon Scroggins <scroggo@google.com> > > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=scroggo@google.com,reed@google.com > > > > Change-Id: Id97137d6ec39ca638c941928bae6510814b1c499 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: skia: > > Reviewed-on: https://skia-review.googlesource.com/60041 > > Reviewed-by: Ben Wagner <benjaminwagner@google.com> > > Commit-Queue: Ben Wagner <benjaminwagner@google.com> > > TBR=benjaminwagner@google.com,scroggo@google.com,reed@google.com > > Change-Id: I1b54a6e6e6cbda07f346ffbbc4977f9db705abcd > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/60320 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=benjaminwagner@google.com,scroggo@google.com,reed@google.com Change-Id: I4c2d310521d1a678b407d30b9fe3c261c49d67bc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/60560 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>