aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Remove SkTypeface::Style from fuzzers and lua.Gravatar Ben Wagner2017-08-08
| | | | | | | Change-Id: I53be039e21a4c11ec3a4bc54c1424cd3e15afc6a Reviewed-on: https://skia-review.googlesource.com/31643 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add GrDebugMarkerOpGravatar Robert Phillips2017-08-08
| | | | | | | Change-Id: I948838dea13d2f36194ca1043ab37e72759794e0 Reviewed-on: https://skia-review.googlesource.com/31740 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Make bmp text position attribute be highpGravatar Brian Salomon2017-08-07
| | | | | | | | Bug: chromium:746290 Change-Id: I90968ab3633fb50a13087500a7df7fb8adbf2af8 Reviewed-on: https://skia-review.googlesource.com/31423 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* simplify shaderbase -- remove shaderproc -- no measurable speed diffGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: Id355e3e480847fe78f904735e59353c4eb3ba2bb Reviewed-on: https://skia-review.googlesource.com/31560 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Avoid int overflow in LinearGradientContext::shade4_dx_clampGravatar Florin Malita2017-08-07
| | | | | | | Change-Id: I86e01aa00b14f8a4b6e64169821768ab5ece9aa3 Reviewed-on: https://skia-review.googlesource.com/31481 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* CCPR: Process quadratic flat edges without soft msaaGravatar Chris Dalton2017-08-07
| | | | | | | | | | | | | | | | | | | | | | The artifacts previously thought to require msaa can be handled by (1) converting near-linear quadratics into lines, and (2) ensuring all quadratic segments are monotonic with respect to the vector of their closing edge [P2 -> P0]. No. 1 was already in effect. No. 2 is implemented by this change. Now we only fall back on soft msaa for the two corner pixels. This change also does some generic housekeeping in the quadratic processor. Bug: skia: Change-Id: Ib3309c2ed86d3d8bec5f451125a69326e82eeb1c Reviewed-on: https://skia-review.googlesource.com/29721 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Remove SK_NO_ANALYTIC_AAGravatar Yuqian Li2017-08-07
| | | | | | | | | | Google3 now has that guard flag removed. Bug: skia: Change-Id: I6dede8c815e9f55bd769daef3982fd2fa8a7d6be Reviewed-on: https://skia-review.googlesource.com/31201 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Flush threaded device when reaching max queue sizeGravatar Yuqian Li2017-08-07
| | | | | | | | | | | Our SkThreadedBMPDevice is very experimental so I didn't handle this edge case earlier. Maybe it's now a good time to fix it. Bug: skia: Change-Id: Ie3938475449c1341d34200ff3afe4589836950fc Reviewed-on: https://skia-review.googlesource.com/31203 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* remove unused shadeSpanAlpha -- handled by rasterpipelineGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: If13510cbc340b920342d7d4df9ce34ef1081e434 Reviewed-on: https://skia-review.googlesource.com/31420 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Remove SkLightingShader and associated classesGravatar Robert Phillips2017-08-07
| | | | | | | | Change-Id: I8050414c30dfdb5df23ca79955adc5ba3a29d3f5 Reviewed-on: https://skia-review.googlesource.com/31140 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clean up useage of SkFloatBitsGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: I6d3a0019f2fcf11feca69123e4ce6eb35de43613 Reviewed-on: https://skia-review.googlesource.com/31222 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorType"Gravatar Florin Malita2017-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b86aaeb7b0841c2c23f7b36b0bb0520ce2fb3256. Reason for revert: Nexus7/Tegra3 crashing on lcdblendmodes Original change's description: > Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorType > > Currently only the hard-stop specializations support tiling. > > Consolidate the tiling code and expand to kTwo_ColorType, > kThree_ColorType also. > > Change-Id: I0c04997f563a7150a486ccc03f8121099a651c0b > Reviewed-on: https://skia-review.googlesource.com/30780 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Florin Malita <fmalita@chromium.org> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,fmalita@chromium.org Change-Id: I89c89c630f206c3a330e4b31aa3834dfbc5cd9e0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/31244 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorTypeGravatar Florin Malita2017-08-04
| | | | | | | | | | | | Currently only the hard-stop specializations support tiling. Consolidate the tiling code and expand to kTwo_ColorType, kThree_ColorType also. Change-Id: I0c04997f563a7150a486ccc03f8121099a651c0b Reviewed-on: https://skia-review.googlesource.com/30780 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix corner case in NonAAStrokeRectOp (stroke width > the rect's width or height)Gravatar Robert Phillips2017-08-04
| | | | | | | | Bug: skia:5419 Change-Id: I75a67d35c94821bf7de80b63eb835b20f2772ddd Reviewed-on: https://skia-review.googlesource.com/31241 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add GrMtlTexture classesGravatar Greg Daniel2017-08-04
| | | | | | | | | | Adds support for basic Texture creation. Bug: skia: Change-Id: I9a3f15bef1c88054c19e952e231cad94ad69f296 Reviewed-on: https://skia-review.googlesource.com/30781 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* GrGradientEffect::onIsEqual() must also consider tilingGravatar Florin Malita2017-08-04
| | | | | | | | | Without this fix, the newly added GM draws incorrectly. Change-Id: Ic159ab3201c10369ad5f8151186245d8d076cc25 Reviewed-on: https://skia-review.googlesource.com/30484 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Update SkClipStack's bound computationGravatar Robert Phillips2017-08-04
| | | | | | | | | I believe this was originally added to make Raster & GPU rendering more similar. I think we've moved on from there. Change-Id: Ic980f3308fbd427e5857b720488c91383a32a149 Reviewed-on: https://skia-review.googlesource.com/30761 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clamp_1 is also a no-op with 8-bit lowpGravatar Mike Klein2017-08-04
| | | | | | | Change-Id: Ifef97d8f28c88c4ee3f7701aac6e383940ed5275 Reviewed-on: https://skia-review.googlesource.com/31020 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* 15-bit lowp is dead, long live 8-bit lowpGravatar Mike Klein2017-08-04
| | | | | | | Change-Id: Icc4b06094aeba3af99b534746f66286d776ef78a Reviewed-on: https://skia-review.googlesource.com/30920 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Disable Delta AA for MSVC for nowGravatar Yuqian Li2017-08-03
| | | | | | | | | | | | | Perf showed that DAA is slow with MSVC. Disable it until I find out why. Bug: skia: Change-Id: If30c24e97fa42e3a7ce143a1b1d06e4a3f278d13 TBR: mtklein@google.com Reviewed-on: https://skia-review.googlesource.com/30584 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Add support for object creation/snapshot/deletion eventsGravatar Brian Osman2017-08-03
| | | | | | | | | | | | | - Bring back some previously deleted macros and helper types. - Automatically inject base_type information into snapshot events, to allow simpler tracking of polymorphic object types. - Fix JSON formatting of pointer values (they were serializing as bool). Bug: skia: Change-Id: Iac7803f72ce5396ffd2fbcb5a36d76745c5e3f3e Reviewed-on: https://skia-review.googlesource.com/28220 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* same 16->8 bit packing trick for SSE2/SSE4.1Gravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's funny how now that I'm on a machine that doesn't support AVX2, it's suddenly important for me that pack() is optimized for SSE! This is basically the same as this morning, without any weird AVX2 pack ordering issues. This replaces something like movdqa 2300(%rip), %xmm0 pshufb %xmm0, %xmm3 pshufb %xmm0, %xmm2 punpcklqdq %xmm3, %xmm2 (This is SSE4.1; the SSE2 version is worse.) with psrlw $8, %xmm3 psrlw $8, %xmm2 packuswb %xmm3, %xmm2 (SSE2 and SSE4.1 both.) It's always nice to not need to load a shuffle mask out of memory. Change-Id: I56fb30b31fcedc0ee84a4a71c483a597c8dc1622 Reviewed-on: https://skia-review.googlesource.com/30583 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Store float and byte constant colors.Gravatar Mike Klein2017-08-03
| | | | | | | | | This makes loading them much simpler in 8-bit mode. Change-Id: I35ff34ebd0b93425c4e39e055bf4ade8cf8561e1 Reviewed-on: https://skia-review.googlesource.com/30621 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* funnel all constant colors through append_constant_color()Gravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | My next step is to change the uniform_color context to struct { float r,g,b,a; uint32_t rgba; }; so that it's trivial to load in both float and 8-bit pipelines. Change-Id: If9bdde353ced3bf9eb0c63204b4770ed614ad16b Reviewed-on: https://skia-review.googlesource.com/30481 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Rename append_uniform_color() to append_constant_color().Gravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | The color appended here is both uniform and constant, and it's the constantness that makes this custom append method useful over just append(SkRasterPipeline::uniform_color, ...). Uniform colors that are not constant have to be loaded from the pointer each time (the caller might have changed the color out-of-band), but constant uniform colors can be analyzed once and implemented with specalizations like black_color and white_color. Change-Id: I3cfc00ccc578dd915367bca7113010557181224c Reviewed-on: https://skia-review.googlesource.com/30560 Commit-Queue: Mike Klein <mtklein@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* _very_ minor srcover speedupGravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | | | | This is a consistent, very small speedup for srcover. SkRasterPipeline_run Before: 30.4057ns After: 30.1089ns i.e. a 1% speedup on the bench, maybe 3-4% improvment in srcover itself. The only reason I'd send this out now is that this will slightly change some pixels, so it's a good thing to sneak in before rebaselining. It's possible that other blend modes would benefit from the same, but I've only looked at srcover (and I've also changed dstover so that it doesn't look funny). Change-Id: Ic056ca0912d76648d43a78e0052176fd0f7934f1 Reviewed-on: https://skia-review.googlesource.com/30281 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* improve HSW 16->8 bit packGravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __builtin_convertvector(..., U8x4) is producing a fairly long sequence of code to convert U16x4 to U8x4 on HSW: vextracti128 $0x1,%ymm2,%xmm3 vmovdqa 0x1848(%rip),%xmm4 vpshufb %xmm4,%xmm3,%xmm3 vpshufb %xmm4,%xmm2,%xmm2 vpunpcklqdq %xmm3,%xmm2,%xmm2 vextracti128 $0x1,%ymm0,%xmm3 vpshufb %xmm4,%xmm3,%xmm3 vpshufb %xmm4,%xmm0,%xmm0 vpunpcklqdq %xmm3,%xmm0,%xmm0 vinserti128 $0x1,%xmm2,%ymm0,%ymm0 We can do much better with _mm256_packus_epi16: vinserti128 $0x1,%xmm0,%ymm2,%ymm3 vperm2i128 $0x31,%ymm0,%ymm2,%ymm0 vpackuswb %ymm0,%ymm3,%ymm0 vpackuswb packs the values in a somewhat surprising order, which the first two instructions get us lined up for. This is a pretty noticeable speedup, 7-8% on some benchmarks. The same sort of change could be made for SSE2 and SSE4.1 also using _mm_packus_epi16, but the difference for that change is much less dramatic. Might as well stick to focusing on HSW. Change-Id: I0d6765bd67e0d024d658a61d19e6f6826b4d392c Reviewed-on: https://skia-review.googlesource.com/30420 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* 8-bit hackingGravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | I think we can replace a lot of legacy code with an SkRasterPipeline backend that works in 8-bit and stays interlaced. Think of this as a "lowerp" replacement for lowp. I'm having some trouble getting ARMv8 working. ARMv7 should be fine, but I want to turn it on separately from x86. I haven't looked at 32-bit x86 yet, but that's also on the todo list. Open questions to follow up on: - is it better to fold every multiply back down to 8-bit (as seen here), or to allow intermediates to accumulate in 16-bit and divide by 255 when done/needed? - is it better pass tightly packed 8-bit vectors between stages (as seen here), or to keep the 8-bit values unpacked in 16-bit lanes? - should we make V wider than 1 register? GMs look good. All diffs invisible and plausibly due to the 15->8 bit precision drop. A quick bench run showed this running in about 0.75x the time of the existing lowp backend. Change-Id: I24aa46ff1d19c0b9b8dc192d5b1821cab0b8843c Reviewed-on: https://skia-review.googlesource.com/29886 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Add a private API for writing the clip to the stencilGravatar Stan Iliev2017-08-02
| | | | | | | | | | | Add a private API used by Android framework, which writes the clip into a stencil buffer. This is used by HWUI to clip the WebView. Bug: 31489986 Change-Id: I94515f1539acd9d069c8aceb3300577feed9c94f Reviewed-on: https://skia-review.googlesource.com/29521 Commit-Queue: Stan Iliev <stani@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com>
* Revert "Revert "support for 'half' types in sksl, plus general numeric type ↵Gravatar Ethan Nicholas2017-08-02
| | | | | | | | | | | | improvements"" This reverts commit 0e9605542444a7653359f4fc610f7620df9f6313. Bug: skia: Change-Id: Id45d091c1950887316c901ed9c9281181f346bcf Reviewed-on: https://skia-review.googlesource.com/29602 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Guard against D3D NaN/Infinity literals bug in color burnGravatar Brian Osman2017-08-02
| | | | | | | | Bug: skia:6857 Change-Id: Ibbbdd70483502d9e21429f86d3183e55bc007dd6 Reviewed-on: https://skia-review.googlesource.com/30101 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "remove another SkConvertPixels "fast path""Gravatar Mike Klein2017-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 706a076879359207b1da292e5ee7750083e50152. Reason for revert: this looks less a "fast path" and more "completely essential path" according to Chrome roll tests and some layout tests (most are small diffs, but some are radical). Original change's description: > remove another SkConvertPixels "fast path" > > SkColorSpaceXform now uses the same mechanism as our default path, > SkRasterPipeline. There's no real reason to jump out to it as a > special case any more. > > Change-Id: I19490de5b331267209cf117534942fb175c624c9 > Reviewed-on: https://skia-review.googlesource.com/29900 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,brianosman@google.com Change-Id: I92b17fe0d44e609d8c06e8fa2933f1f572a98094 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/30160 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Delete legacy radial gradient implGravatar Florin Malita2017-08-02
| | | | | | | | | | Raster pipeline FTW! Change-Id: Ia2e600cf6c6e780f5a1519374c178197cf229776 Reviewed-on: https://skia-review.googlesource.com/29884 Commit-Queue: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Revert "Revert "Revert "Add support for semaphores to be inserted on ↵Gravatar Greg Daniel2017-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrContext flush"""" This reverts commit cc8eb60c486eaf397685c60b28998682025fee1a. Reason for revert: Chrome change landed that should fix chrome roll Original change's description: > Revert "Revert "Revert "Add support for semaphores to be inserted on GrContext flush""" > > This reverts commit 876aed8758b7109574999ffac43b1ea47f359bd7. > > Reason for revert: the bots seem to be unhappily red with this CL > > Original change's description: > > Revert "Revert "Add support for semaphores to be inserted on GrContext flush"" > > > > This reverts commit 8724b4609996eb6369b454611e31b065f3d8d2cf. > > > > Reason for revert: Creating a test CL to see what happens on the bots > > > > Original change's description: > > > Revert "Add support for semaphores to be inserted on GrContext flush" > > > > > > This reverts commit cd1416efbc7af6f115dbaa09dce48e075d1d96ca. > > > > > > Reason for revert: speculative, to try to fix roll see gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_GpuRasterization_ConcavePaths > > > > > > Original change's description: > > > > Add support for semaphores to be inserted on GrContext flush > > > > > > > > This also moves the logic of inserting semaphores down into GrDrawingManager > > > > and finishFlush on GrGpu. With it being on finishFlush, there should be no > > > > issues when the DrawingManager starts respecting the proxy passed in assuming > > > > it always calls finishFlush at the end (which it should). > > > > > > > > Bug: skia: > > > > Change-Id: I925c2a289dcbbb9159b9120878af1d34f21a2dc7 > > > > Reviewed-on: https://skia-review.googlesource.com/25641 > > > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > > > > > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com > > > > > > Change-Id: I9c5b9cf8c060193e1861dbb8f0c10fb11dfb5249 > > > No-Presubmit: true > > > No-Tree-Checks: true > > > No-Try: true > > > Bug: skia: > > > Reviewed-on: https://skia-review.googlesource.com/25980 > > > Reviewed-by: Mike Reed <reed@google.com> > > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com > > > > # Not skipping CQ checks because original CL landed > 1 day ago. > > > > Bug: skia: > > Change-Id: I5edbeaa0769670ee58f362f0ccaa78319410aa6c > > Reviewed-on: https://skia-review.googlesource.com/26160 > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com > > Change-Id: I22fd6febafe70489a5fdb695c6f4263368eb423d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/29422 > Reviewed-by: Yuqian Li <liyuqian@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,liyuqian@google.com,reed@google.com Change-Id: Ie3eae818b02599a70f714ef6b6635ce7d171bde6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/30000 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Fix sweep gradient tiling w/ makeColorSpaceGravatar Florin Malita2017-08-02
| | | | | | | Change-Id: If989c2262b174af042af13cda991b999d9b6d596 Reviewed-on: https://skia-review.googlesource.com/29881 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Reduce SORT_THRESHOLD to 256Gravatar Yuqian Li2017-08-02
| | | | | | | | | | | | | perf.skia.org showed that reducing the threshold would only harm path_fill_small_sawtooth, but will benefit many many skps and svgs playback. Bug: skia: Change-Id: I38904548206521d78a7c9c5804c0d989b23dc405 TBR: caryclark@google.com, reed@google.com Reviewed-on: https://skia-review.googlesource.com/29882 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* remove another SkConvertPixels "fast path"Gravatar Mike Klein2017-08-02
| | | | | | | | | | | SkColorSpaceXform now uses the same mechanism as our default path, SkRasterPipeline. There's no real reason to jump out to it as a special case any more. Change-Id: I19490de5b331267209cf117534942fb175c624c9 Reviewed-on: https://skia-review.googlesource.com/29900 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* CCPR: Transform path points before handling curvesGravatar Chris Dalton2017-08-02
| | | | | | | | | | | Does the transform before handling curves. This way all curves can be carefully chopped in device space in order two avoid msaa. Bug: skia: Change-Id: I0508668142cda3fe3fda41f8475c408288aa4a47 Reviewed-on: https://skia-review.googlesource.com/29720 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Tiling support for SkSweepGradientGravatar Florin Malita2017-08-01
| | | | | | | | | | | | | | | | | | Expand the sweep gradient definition to include a color stop angular range ([0, 360] by default). Color stop positions in [0,1] are mapped to this range, and drawing outside is controlled by a tile mode param. This is closer to the CSS gradients spec and allows us to use fewer color stops in Blink conic gradients. Impl-wise, the remapping is effected after t calculation, and before tiling. Change-Id: I5d71be01d134404d6eb9d7e2a904ec636b39f855 Reviewed-on: https://skia-review.googlesource.com/27704 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Make ProcessorCloneTest more robust, fix matrix conv. onIsEqualGravatar Brian Salomon2017-08-01
| | | | | | | Change-Id: Iddf860b462dcac36f6a7f5b90d4ce4dceed0dd31 Reviewed-on: https://skia-review.googlesource.com/29604 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Fix cleanup on program creation failureGravatar Robert Phillips2017-08-01
| | | | | | | Change-Id: Ibc9b96537f774a3b8a43848b8b626f3f036b07b3 Reviewed-on: https://skia-review.googlesource.com/29561 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "support for 'half' types in sksl, plus general numeric type ↵Gravatar Ethan Nicholas2017-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | improvements" This reverts commit 93061b53442ce303e9d3ef74c7eeddc034802c4f. Reason for revert: bot failures Original change's description: > support for 'half' types in sksl, plus general numeric type improvements > > Bug: skia: > Change-Id: Id285262fda8291847f11343d499b5df62ddb4b09 > Reviewed-on: https://skia-review.googlesource.com/28980 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=bsalomon@google.com,ethannicholas@google.com Change-Id: Ie8672271d35b9fcdf567f8bc3674084748be66ad No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/29600 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* fixed missing INT_MAX definitionGravatar Ethan Nicholas2017-08-01
| | | | | | | | Bug: skia: Change-Id: I6d5f95cfbda071687c6119edc9b1c347a37bc1db Reviewed-on: https://skia-review.googlesource.com/29581 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* clamp to 0 in repeat and mirror image tilersGravatar Mike Klein2017-08-01
| | | | | | | | | | | | | | | | | | | If we were doing this math with real numbers or even just doubles, these clamps wouldn't be necessary. But we're favoring speed over accuracy here when we emulate fmod() and some of those inaccuracies end up with values outside the [0,tile) range, negative! To keep the spirit of fast over 100% accurate, I've just added a safety clamp to 0. The case in the unit test now returns 0 where it should really return something like 7 or 8, but at least we won't try to read _way_ outside the image buffer. BUG=chromium:749260 Change-Id: Ifc5cfe69798beccbb2a16547510158576e06eb3a Reviewed-on: https://skia-review.googlesource.com/29580 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Guard against D3D NaN/Infinity literals bugGravatar Brian Osman2017-08-01
| | | | | | | | | Bug: angle:2098 skia:6857 Change-Id: I502f05cdeb56514db4e144fdbb6d6f5a6f476b2e Reviewed-on: https://skia-review.googlesource.com/29520 Reviewed-by: Yuqian Li <liyuqian@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* support for 'half' types in sksl, plus general numeric type improvementsGravatar Ethan Nicholas2017-08-01
| | | | | | | | Bug: skia: Change-Id: Id285262fda8291847f11343d499b5df62ddb4b09 Reviewed-on: https://skia-review.googlesource.com/28980 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Assert text passed to canvas is initialized.Gravatar Ben Wagner2017-08-01
| | | | | | | | | | | | | | | | A new fuzzer appears to be complaining about using uninitialized glyph ids. These uninitilized glyph ids appear to be comming from far up the stack, but they don't actually get used until much later. If Skia is passed uninitialized memory in a draw call it will of course eventually need to use it and be blamed when it does. This change will make it obvious if the issue is up stack from Skia. BUG=chromium:750070,chromium:750071,chromium:750072 Change-Id: Ic6ca2f6af3620ad4a31cb017570f42550360891a Reviewed-on: https://skia-review.googlesource.com/29421 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Revert "Revert "Add support for semaphores to be inserted on ↵Gravatar Yuqian Li2017-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrContext flush""" This reverts commit 876aed8758b7109574999ffac43b1ea47f359bd7. Reason for revert: the bots seem to be unhappily red with this CL Original change's description: > Revert "Revert "Add support for semaphores to be inserted on GrContext flush"" > > This reverts commit 8724b4609996eb6369b454611e31b065f3d8d2cf. > > Reason for revert: Creating a test CL to see what happens on the bots > > Original change's description: > > Revert "Add support for semaphores to be inserted on GrContext flush" > > > > This reverts commit cd1416efbc7af6f115dbaa09dce48e075d1d96ca. > > > > Reason for revert: speculative, to try to fix roll see gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_GpuRasterization_ConcavePaths > > > > Original change's description: > > > Add support for semaphores to be inserted on GrContext flush > > > > > > This also moves the logic of inserting semaphores down into GrDrawingManager > > > and finishFlush on GrGpu. With it being on finishFlush, there should be no > > > issues when the DrawingManager starts respecting the proxy passed in assuming > > > it always calls finishFlush at the end (which it should). > > > > > > Bug: skia: > > > Change-Id: I925c2a289dcbbb9159b9120878af1d34f21a2dc7 > > > Reviewed-on: https://skia-review.googlesource.com/25641 > > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > > > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com > > > > Change-Id: I9c5b9cf8c060193e1861dbb8f0c10fb11dfb5249 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: skia: > > Reviewed-on: https://skia-review.googlesource.com/25980 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: skia: > Change-Id: I5edbeaa0769670ee58f362f0ccaa78319410aa6c > Reviewed-on: https://skia-review.googlesource.com/26160 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com Change-Id: I22fd6febafe70489a5fdb695c6f4263368eb423d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/29422 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Allow RegionOp to be used for stencilingGravatar Brian Salomon2017-08-01
| | | | | | | Change-Id: I03473573bfe3da1a2d0fff40205094f7ba9e13af Reviewed-on: https://skia-review.googlesource.com/29320 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove unused code for index 8Gravatar Brian Osman2017-08-01
| | | | | | | | Bug: skia: Change-Id: I0d421874e7ab71a39e2708575314f5b3615882e4 Reviewed-on: https://skia-review.googlesource.com/29221 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Brian Osman <brianosman@google.com>