aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Remove unnecessary code in SkGpuDevice::drawRRectGravatar Brian Osman2017-09-14
| | | | | | | | Bug: skia: Change-Id: Ied1e4bd89305695957faa2328e363304beb90a21 Reviewed-on: https://skia-review.googlesource.com/46840 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Change visitProxies signatureGravatar Robert Phillips2017-09-14
| | | | | | | | | | | There is a perf regression (mainly on the Nexus5) for the https://skia-review.googlesource.com/c/skia/+/46200 (Add method to iterate over a GrOp's GrSurfaceProxies) This is one candidate. Change-Id: I995d3a88bad2a914f24b49512abbf01aeaf579c8 Reviewed-on: https://skia-review.googlesource.com/46586 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove unused GPU RGB to YUV codeGravatar Brian Osman2017-09-14
| | | | | | | | Bug: skia: Change-Id: I2e164ef1d7de05e6e1eb1b7d7d4d3efeb785dd43 Reviewed-on: https://skia-review.googlesource.com/46562 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Land scaffolding for explicit MDB resource allocationGravatar Robert Phillips2017-09-14
| | | | | | | Change-Id: I1cb30b50068e99181788181683e82e2421d0038a Reviewed-on: https://skia-review.googlesource.com/46701 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove invalid SkRRect asserts in GrShapeGravatar Brian Osman2017-09-14
| | | | | | | | | | | Due to floating point math, it's possible to add a round-rect to a path, then pull it back out and have the type change. Bug: skia:7037 Change-Id: I071b77378da08b873ff9d68fdac2373370faa71c Reviewed-on: https://skia-review.googlesource.com/46585 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* make kPathRefGenIDBitCnt privateGravatar Cary Clark2017-09-14
| | | | | | | | | | | | | | | kPathRefGenIDBitCnt is used only by SkPath.cpp and SkPathRef.cpp. Curiously, there's no existing private declarations shared by SkPath and SkPathRef, so I added kPathRefGenIDBitCnt to SkPathPriv.h as the go-between. If there's an existing convention I overlooked, please let me know. R=reed@google.com,djsollen@google.com Bug: skia: 6898 Change-Id: I929d780c3b4a10e5cf78e7176a7516abf912508e Reviewed-on: https://skia-review.googlesource.com/46560 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Cary Clark <caryclark@skia.org>
* Make GrCopySurfaceOp participate in the GrOplist DAGGravatar Robert Phillips2017-09-14
| | | | | | | Change-Id: Ic72884c8447ad950a91a2afe9566dd5a92dd6f11 Reviewed-on: https://skia-review.googlesource.com/46582 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* fix android rollGravatar Mike Klein2017-09-14
| | | | | | | | | | | | | | | | Guarding loads of 8-15 with defined(__AVX2__) should prevent errors like these: external/skia/src/jumper/SkJumper_stages_lowp.cpp:287:46: error: 'memcpy' called with size bigger than buffer case 12: memcpy(&v, ptr, 12*sizeof(T)); break; The loads of 8-15 were of course unreachable, given the &(N-1) == &7. Change-Id: Ifcb5c177c6909e1df55cb564779a4d6610ff7b32 Reviewed-on: https://skia-review.googlesource.com/46521 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Finish restoring GrOpList DAGGravatar Robert Phillips2017-09-14
| | | | | | | Change-Id: I2a674ce7442a444a78a53144279e88ba744eaf48 Reviewed-on: https://skia-review.googlesource.com/46462 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* grand unifried lowp stagesGravatar Mike Klein2017-09-14
| | | | | | | | | | | | | | | | | | | | | | | | | I have text_16_AA_FF -> 8888 (forcing RP) faster than head now on my laptop. I'm feeling confident that we can make this perform well. After looking at performance a bit more today, it looks like everything is within what I'd consider comparable in performance, especially on ARM. On x86-64 it looks like big bulk blits get a little slower and small mask blits get a little faster. Quality looks good, and maybe improved for 565. There are fewer platform-specific differences now in _lowp, and I think they're few enough now that we could even consider completing the unification by folding the 8-bit and float code together. Rename "div255()" to "rebias()", slap on a few coats of paint... Guarded for Chrome with SK_JUMPER_LEGACY_LOWP. Change-Id: I36309c07cf736f3cb31952cca66030ad56026318 Reviewed-on: https://skia-review.googlesource.com/45982 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Sk4i version of blur.Gravatar Herb Derby2017-09-14
| | | | | | | | | | | | | | | | | For the blur_1.50_normal_low_quality benchmark, this code goes from about 120us to 85us. The original implementation executes at about 95us. This changed in controlled by the flag: SK_SUPPORT_LEGACY_SLOW_SMALL_BLUR BUG=chromium:759070 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: If722cb8ffd8c47a94b7a6b4e6dd26fd1474b6209 Reviewed-on: https://skia-review.googlesource.com/45300 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Pull non-substantive changes out of explicit GPU resource allocation CLGravatar Robert Phillips2017-09-13
| | | | | | | Change-Id: Ib6a289553ecd15c722599b7dc0d347a7800801cb Reviewed-on: https://skia-review.googlesource.com/46284 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add method to iterate over a GrOp's GrSurfaceProxiesGravatar Robert Phillips2017-09-13
| | | | | | | | | The extra generality of having a std::function is for MDB reordering. In the current MDB reordering world there is one pass through the surfaceProxies at creation time and a second pass after flush to create the usage intervals. Change-Id: I3f548417eddc1dad7503d919241301e404255ffe Reviewed-on: https://skia-review.googlesource.com/46200 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Share code for setting the out_color_space CMYK encoded colorspacesGravatar nagarajan.n2017-09-13
| | | | | | | | | | Share code for setting the out_color_space CMYK encoded colorspaces Bug: NONE Change-Id: I17318aa6c04f4105dd9b7c453ccbc3c3ed563e8f Reviewed-on: https://skia-review.googlesource.com/43420 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Adjust GPU YUV -> RGB (JPG) conversionGravatar Brian Osman2017-09-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | All of the published coefficients assume math is being done on bytes, and that 128 is the encoding of 0 (in the biased Cb and Cr values). When sampling an A8 texture, though, GPUs typically decode as byte/255. Thus, 128 ends up slightly larger than 0.5. To fix this, just adjust the bias terms to be scaled by 128/255, rather than 0.5. I also changed some of the other coefficients to be higher precision, based on the values in ITU-T T.871. This originally surfaced as a Chromium bug where an all-black JPG decoded to (1/255, 0, 1/255) on GPU. I've added a GM that encodes a color cube to JPG, then draws from the encoded data. GPU and CPU (libjpeg) still disagree in many cases, but the newer version performs much better (diffing gl and 8888 configs): Previously: 95.2% of pixels differ, max diff of 2, avg diff of 1 Now : 65.4% of pixels differ, max diff of 1, avg diff of 0 Bug: skia:7038 chromium:763605 Change-Id: I4801db9f6e2fc4d4109eb5e27c9499f214084d38 Reviewed-on: https://skia-review.googlesource.com/45842 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Improve heuristics for when to use ccprGravatar Chris Dalton2017-09-12
| | | | | | | | | | | | | Gives the convex and tessellating renderers first claim on larger paths, and the distance field renderer first claim on complex, non-volatile paths. This also requires plumbing the clip bounds through GrPathRenderer::CanDrawPathArgs. Bug: skia: Change-Id: I16e1d35ad5ee63251e33f113b1579cbba60456da Reviewed-on: https://skia-review.googlesource.com/42224 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Minor cleanups for CCPRGravatar Chris Dalton2017-09-12
| | | | | | | | Bug: skia: Change-Id: Ic4838f0e242ded0c3d0cb5c86715ed67d8152f5c Reviewed-on: https://skia-review.googlesource.com/44520 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Optimize filterBounds() of SkArithmeticImageFilter/SkXfermodeImageFilterGravatar Xianzhu Wang2017-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This brings the optimization in blink's FEComposit::MapRect() [1] into skia. Previously for these classes we used the default SkImageFilter:: onFilterBounds() which returns the union of the bounds of input filters. However, this was not optimized if some input filters don't contribute to the output. When we switch blink SPv2 paint invalidation from using blink's FilterOperations to cc/skia's filter classes, the non- optimization caused over-raster-invalidations. Now override SkImageFilter::onFilterBounds() in these classes to make their filterBounds() return the same results as the blink counterparts. Also fix a bug of SkArithmeticImageFilter when k4 is non-zero by overriding affectsTransparentBlack() to return true in the case, so that we will use the crop as the final bounds. [1] https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/filters/FEComposite.cpp?l=115 Change-Id: I91d4cadc267e6262ee3f050a0ddac90154419775 Reviewed-on: https://skia-review.googlesource.com/38921 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
* Add support for additional textures in GrDrawOpAtlasGravatar Jim Van Verth2017-09-12
| | | | | | | | | | Step two in supporting growable/shrinkable atlases. Bug: skia:3550 Change-Id: I0cdec2a9f59cc8ced071bfeec2f8ed5a228c4b7a Reviewed-on: https://skia-review.googlesource.com/43260 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove symmetric three stop special caseGravatar Brian Osman2017-09-12
| | | | | | | | | | | | Just let the general three-stop shader handle all three-stop gradients. Also, pre-compute values derived from the middle stop to remove all division (and actually convert computation to FMA form). Bug: skia: Change-Id: I1aae069d929d1a942c38aa2e2f3fd5fb7d9b2f10 Reviewed-on: https://skia-review.googlesource.com/45800 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add general three-stop analytic gradient shaderGravatar Brian Osman2017-09-11
| | | | | | | | | | | | | | | | This fixes an Android rendering bug where radial gradients were being used for "clipping" (via DstIn blend mode). The gradient stops were placed at (0, 0.999, 1), which caused our table quantization to drop the last stop. kThree_ColorType now means "0, any t, 1". The old (special-case) kThree_ColorType is now called kSymmetricThree_ColorType. Bug: skia: Change-Id: I96a0b9e679f2d537862a3e097f7e3446474914ea Reviewed-on: https://skia-review.googlesource.com/45260 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove repeated conditional in TextureOp.Gravatar Brian Salomon2017-09-11
| | | | | | | Change-Id: I57ef380202183580a953dec2617c8210ccab8927 Reviewed-on: https://skia-review.googlesource.com/45160 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Switch to the new SkSL lexer.""Gravatar Ethan Nicholas2017-09-11
| | | | | | | | | | This reverts commit 358515491a0d6891e6a709688a30ad087df1beb1. Bug: skia: Change-Id: I013fac0ed83774d8ae7c6ee6819045cab37f5e97 Reviewed-on: https://skia-review.googlesource.com/45180 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Do software clip mask generation with worker threadsGravatar Brian Osman2017-09-11
| | | | | | | | | | | Also refactor the prepare callback stuff to share logic between software path rendering and clip mask generation. Bug: skia: Change-Id: I0c56c6df8703eb59d2d49a4c3985bd4f5ef20f01 Reviewed-on: https://skia-review.googlesource.com/44421 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Switch to the new SkSL lexer."Gravatar Ethan Nicholas2017-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c576e93d174f3106e072a2f506bca3990b541265. Reason for revert: ASAN failures Original change's description: > Switch to the new SkSL lexer. > > This completely replaces flex with a new in-house lexical analyzer generator, > which we have done for performance and memory usage reasons. Flex requires us > to copy strings every time we need the text of a token, whereas this new lexer > allows us to handle strings as a (non-null-terminated) pointer and length > everywhere, eliminating most string copies. > > Bug: skia: > Change-Id: I2add26efc9e20cb699520e82abcf713af3968aca > Reviewed-on: https://skia-review.googlesource.com/39780 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=bsalomon@google.com,ethannicholas@google.com Change-Id: If27b750a5f696d06a6bcffed12fe9f0598e084a6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/44881 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Switch to the new SkSL lexer.Gravatar Ethan Nicholas2017-09-11
| | | | | | | | | | | | | | This completely replaces flex with a new in-house lexical analyzer generator, which we have done for performance and memory usage reasons. Flex requires us to copy strings every time we need the text of a token, whereas this new lexer allows us to handle strings as a (non-null-terminated) pointer and length everywhere, eliminating most string copies. Bug: skia: Change-Id: I2add26efc9e20cb699520e82abcf713af3968aca Reviewed-on: https://skia-review.googlesource.com/39780 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Add multitexture support to text and path shaders, take 3.Gravatar Jim Van Verth2017-09-11
| | | | | | | | | | | This does not add additional textures to the atlases, just adds the ability to access those textures in the shaders. Bug: skia:3550 Change-Id: I4c1da2bc374a76131f5f4ad946543e03e0ab3126 Reviewed-on: https://skia-review.googlesource.com/44841 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Add missing stdarg.h includeGravatar Roger Johannesson2017-09-11
| | | | | | | | | | | | This file makes use of va_list so it should include stdarg.h. This was handled implictly by SkString.h before https://skia-review.googlesource.com/34381 landed. Bug: skia: Change-Id: I74fc50463549481a0e8835943823e627bc288dd8 Reviewed-on: https://skia-review.googlesource.com/44740 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Reland "Optimize SkColorSpaceXformCanvas for GPU-acceleration"Gravatar Justin Novosad2017-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of 1d3df3848ff297e353a2d0f0fae6ec4a55ab7ba6 Original change's description: > Optimize SkColorSpaceXformCanvas for GPU-acceleration > > This change ensures that SkImages are uploaded to the GPU before > applying the xform when the destination canvas is on the GPU. This > makes it possible to get hits in the texture cache and it ensures > that transforms get computed on the GPU. > > This fixes a severe performance regression in Chrome that happened > when color correction was enabled. > > Associated chromium patch for layout test rebaselines: > https://chromium-review.googlesource.com/c/chromium/src/+/655483 > > Merge dependency: Merging this change to the M-62 and M-61 > branches also requires merging the following change, otherwise > there will be rendering errors: > https://skia-review.googlesource.com/c/skia/+/43562 > > BUG=chromium:760738 > > Change-Id: I49fd5ef7968272d311249c3824fe15bee4648b73 > Reviewed-on: https://skia-review.googlesource.com/43183 > Commit-Queue: Justin Novosad <junov@chromium.org> > Reviewed-by: Brian Osman <brianosman@google.com> Bug: chromium:760738 Change-Id: I94a3482713dc4ff824ae21ea640c04d06bb7e29d Reviewed-on: https://skia-review.googlesource.com/44760 Reviewed-by: Justin Novosad <junov@chromium.org> Commit-Queue: Justin Novosad <junov@chromium.org>
* Use enum value as the lower boundGravatar Petr Hosek2017-09-09
| | | | | | | | | | This is triggering a compilation error in the latest version of Clang because of the new Wtautological-unsigned-zero-compare warning. Change-Id: I578eb1244719fd331113b9444e2eca672912afc8 Reviewed-on: https://skia-review.googlesource.com/44580 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Revert "Revert "Revert "Add multitexture support to text and path shaders"""Gravatar Mike Klein2017-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6c251d24cf90a5c4c091bb7b7373e72705f716d2. Reason for revert: crashes Fuchsia. Original change's description: > Revert "Revert "Add multitexture support to text and path shaders"" > > This does not add additional textures to the atlases, just adds the > ability to access those textures in the shaders. > > Bug: skia:3550 > Change-Id: I552e2c2e4713a5ea68801fdb8e3bab3867e77988 > Reviewed-on: https://skia-review.googlesource.com/44261 > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=jvanverth@google.com,robertphillips@google.com Change-Id: I25cc5f11a1fa76ca7b2cf24920ae3a2a15aac723 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:3550 Reviewed-on: https://skia-review.googlesource.com/44540 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Revert "Remove isMipMapped from GrSurfaceDesc" and follow up find exact ↵Gravatar Greg Daniel2017-09-08
| | | | | | | | | | | | | | | scratch CL This reverts commit 52cb5fe23b8f960bb3248620c8f4e2f2957b6685. This reverts commit e1fbf170580a4b932d0abcb11593fb1ef0cac60b. TBR:bsalomon@googole.com Bug: chromium:763333 Change-Id: Ie94e00c3c7231e32f009b9dc7bb51ebb53baf7b1 Reviewed-on: https://skia-review.googlesource.com/44400 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Don't allow iteration through non-finite points.Gravatar Mike Klein2017-09-08
| | | | | | | | | | | Added a unit test too. BUG=chromium:756563 Change-Id: Ic77a89b4a98d1a553877af9807a3d3bdcd077bb9 Reviewed-on: https://skia-review.googlesource.com/44420 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* CCPR: Check for flat lines before crunching on curvesGravatar Chris Dalton2017-09-08
| | | | | | | | Bug: skia: Change-Id: Ib99f3f83aee4c261ef1cfc4e1045b2be3113e1ae Reviewed-on: https://skia-review.googlesource.com/43100 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Add multitexture support to text and path shaders""Gravatar Jim Van Verth2017-09-08
| | | | | | | | | | This does not add additional textures to the atlases, just adds the ability to access those textures in the shaders. Bug: skia:3550 Change-Id: I552e2c2e4713a5ea68801fdb8e3bab3867e77988 Reviewed-on: https://skia-review.googlesource.com/44261 Reviewed-by: Robert Phillips <robertphillips@google.com>
* update SkJumper stages to clang 5Gravatar Mike Klein2017-09-08
| | | | | | | | | | | | | | | | | | | | To continue building stages, update Clang and update your GN args: $ brew update $ brew upgrade llvm $ find . | grep args.gn | xargs sed -ie 's/clang-4.0/clang-5.0/g' Some interesting codegen changes I noticed: - ARMv7: generally better register assignment, tighter code - ARMv7: dropped the 128-bit alignment hint when loading and storing dst "registers", unclear why. - HSW: now clearing the destination register before vgatherdps, to break a dependency on the previous value Change-Id: I4f804a4cbfcde530fad5ed535438174e852a9593 Reviewed-on: https://skia-review.googlesource.com/44241 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Update GrResourceCache changeUniqueKey to stay in valid state after each stepGravatar Greg Daniel2017-09-08
| | | | | | | | | | | | The issues are that we are intertwining removing things from the old and new resource. This changes it so we do all the removal on the old resource first then start updating the new resource. Bug: skia: Change-Id: I7ce4a309290cd499cdc4398c87d1cfd42ef6994d Reviewed-on: https://skia-review.googlesource.com/44242 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Skip making a surface context when doing threaded SW pathsGravatar Brian Osman2017-09-08
| | | | | | | | Bug: skia: Change-Id: I4f78abc836f22a216e94a47cb2a7414edccbd2b6 Reviewed-on: https://skia-review.googlesource.com/44201 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Add multitexture support to text and path shaders"Gravatar Jim Van Verth2017-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7f754260f7fc2ae0326a072dd2f0429e584f8ca0. Reason for revert: Bot failures. Original change's description: > Add multitexture support to text and path shaders > > This does not add additional textures to the atlases, just adds the > ability to access those textures in the shaders. > > Bug: skia:3550 > Change-Id: I636b329a6f748b6753f5f92a70066fb412623df2 > Reviewed-on: https://skia-review.googlesource.com/43000 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Jim Van Verth <jvanverth@google.com> TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I5c28ea48ed9bdde2cd936ef4f96fc720d5e4b4a5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:3550 Reviewed-on: https://skia-review.googlesource.com/44162 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Revert "Make TextureOp use multitexturing to batch draws of ↵Gravatar Brian Salomon2017-09-08
| | | | | | | | | | | | different SkImages."" This reverts commit 4e95a88c83fcada8b245b6c0860deba5ccdcf825. Bug: skia: Change-Id: I5f849abff3f8406587e3d7cf990f50ef14fc4656 Reviewed-on: https://skia-review.googlesource.com/44220 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add multitexture support to text and path shadersGravatar Jim Van Verth2017-09-08
| | | | | | | | | | | This does not add additional textures to the atlases, just adds the ability to access those textures in the shaders. Bug: skia:3550 Change-Id: I636b329a6f748b6753f5f92a70066fb412623df2 Reviewed-on: https://skia-review.googlesource.com/43000 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Optimize SkColorSpaceXformCanvas for GPU-acceleration"Gravatar Robert Phillips2017-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1d3df3848ff297e353a2d0f0fae6ec4a55ab7ba6. Reason for revert: Mac timeouts? crbug.com/763197 Original change's description: > Optimize SkColorSpaceXformCanvas for GPU-acceleration > > This change ensures that SkImages are uploaded to the GPU before > applying the xform when the destination canvas is on the GPU. This > makes it possible to get hits in the texture cache and it ensures > that transforms get computed on the GPU. > > This fixes a severe performance regression in Chrome that happened > when color correction was enabled. > > Associated chromium patch for layout test rebaselines: > https://chromium-review.googlesource.com/c/chromium/src/+/655483 > > Merge dependency: Merging this change to the M-62 and M-61 > branches also requires merging the following change, otherwise > there will be rendering errors: > https://skia-review.googlesource.com/c/skia/+/43562 > > BUG=chromium:760738 > > Change-Id: I49fd5ef7968272d311249c3824fe15bee4648b73 > Reviewed-on: https://skia-review.googlesource.com/43183 > Commit-Queue: Justin Novosad <junov@chromium.org> > Reviewed-by: Brian Osman <brianosman@google.com> TBR=brianosman@google.com,junov@chromium.org Change-Id: I1a43e9b277075d1aee0efd651c899e15ac3fa53b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:760738 Reviewed-on: https://skia-review.googlesource.com/44160 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Improve GrPathRendererChain heuristicsGravatar Chris Dalton2017-09-07
| | | | | | | | | | | | Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum, which contains a new kAsBackup value that means "I'm better than SW, but give the path renderers below me a chance first." Bug: skia: Change-Id: Ia339567800a3127e61b9beaed19504cd504f18af Reviewed-on: https://skia-review.googlesource.com/43761 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Revert "Make TextureOp use multitexturing to batch draws of different SkImages."Gravatar Robert Phillips2017-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2e50d0f5f93f1290341be02a1aa553b981f9774f. Reason for revert: Shader compilation error Original change's description: > Make TextureOp use multitexturing to batch draws of different SkImages. > > On a benchmark drawing small texture backed images this shows a 50% improvement on a Pixel XL 2016 and a little better than that on a Z840. > > Change-Id: I5c307ef0d8615aeae67bae7393874ad7e52eb233 > Reviewed-on: https://skia-review.googlesource.com/42121 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,brianosman@google.com Change-Id: I28b9a139627e2492a2af53dd82fc8c43be94464b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/43920 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Update GenerateMipMapsAndUploadtoTextureProxy to respect color space when ↵Gravatar Greg Daniel2017-09-07
| | | | | | | | | | setting up SurfaceDesc Bug: skia: Change-Id: Ie98c9c565ee9e2fd4d405389be9e9487cf71f951 Reviewed-on: https://skia-review.googlesource.com/43743 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Make TextureOp use multitexturing to batch draws of different SkImages.Gravatar Brian Salomon2017-09-07
| | | | | | | | | On a benchmark drawing small texture backed images this shows a 50% improvement on a Pixel XL 2016 and a little better than that on a Z840. Change-Id: I5c307ef0d8615aeae67bae7393874ad7e52eb233 Reviewed-on: https://skia-review.googlesource.com/42121 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Improve GrPathRendererChain heuristics"Gravatar Chris Dalton2017-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 60f42494f5d45c38e260ce089cdddfb600f799b2. Reason for revert: breaking gold Original change's description: > Improve GrPathRendererChain heuristics > > Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum, > which contains a new kAsBackup value that means "I'm better than SW, > but give the path renderers below me a chance first." > > Bug: skia: > Change-Id: I45aac5462ca1bc0bc839eb1c315db9493901a07e > Reviewed-on: https://skia-review.googlesource.com/42222 > Reviewed-by: Brian Osman <brianosman@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> TBR=jvanverth@google.com,bsalomon@google.com,brianosman@google.com,csmartdalton@google.com,senorblanco@google.com Change-Id: I46020dbd56b6f6b88668894285b9b7b80f89b9a2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/43780 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Update mtl backend to use GrSamplerStateGravatar Brian Salomon2017-09-07
| | | | | | | Bug: skia: Change-Id: I9f9469f6c250f80095b9c36539226919fa54c75e Reviewed-on: https://skia-review.googlesource.com/43740 Reviewed-by: Greg Daniel <egdaniel@google.com>
* Optimize SkColorSpaceXformCanvas for GPU-accelerationGravatar Justin Novosad2017-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | This change ensures that SkImages are uploaded to the GPU before applying the xform when the destination canvas is on the GPU. This makes it possible to get hits in the texture cache and it ensures that transforms get computed on the GPU. This fixes a severe performance regression in Chrome that happened when color correction was enabled. Associated chromium patch for layout test rebaselines: https://chromium-review.googlesource.com/c/chromium/src/+/655483 Merge dependency: Merging this change to the M-62 and M-61 branches also requires merging the following change, otherwise there will be rendering errors: https://skia-review.googlesource.com/c/skia/+/43562 BUG=chromium:760738 Change-Id: I49fd5ef7968272d311249c3824fe15bee4648b73 Reviewed-on: https://skia-review.googlesource.com/43183 Commit-Queue: Justin Novosad <junov@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* Improve GrPathRendererChain heuristicsGravatar Chris Dalton2017-09-07
| | | | | | | | | | | | | Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum, which contains a new kAsBackup value that means "I'm better than SW, but give the path renderers below me a chance first." Bug: skia: Change-Id: I45aac5462ca1bc0bc839eb1c315db9493901a07e Reviewed-on: https://skia-review.googlesource.com/42222 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>