aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* Reland https://skia-review.googlesource.com/c/6091/Gravatar Yuqian Li2017-01-12
| | | | | | | | | | | | | | The only difference is that we now put the guard flag SK_SUPPORT_LEGACY_AAA in SkUserConfig.h instead of SkScan.h. Previously, SkAnalyticEdge.cpp doesn't get that flag from SkScan.h and that caused many problems. BUG=skia: TBR=reed@google.com,caryclark@google.com Change-Id: I7b89d3cb64ad71715101d2a5e8e77be3a8a6fa16 Reviewed-on: https://skia-review.googlesource.com/6972 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "Use RasterPipeline to support full precision on 16-bit RGBA pngs"Gravatar Matt Sarett2017-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bb2339da39ab3ee59121acd911920dafcd4a2f72. Reason for revert: Breaks MSAN Original change's description: > Use RasterPipeline to support full precision on 16-bit RGBA pngs > > TODO: Support more precision on 16-bit RGB pngs > > BUG=skia: > > CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d > Reviewed-on: https://skia-review.googlesource.com/6260 > Reviewed-by: Mike Reed <reed@google.com> > Reviewed-by: Leon Scroggins <scroggo@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,reed@google.com,reviews@skia.org BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I47579c20af033a75883e2b35567cb9c690ce54b0 Reviewed-on: https://skia-review.googlesource.com/6975 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* rm -r {include,src}/animatorGravatar Hal Canary2017-01-12
| | | | | | | Change-Id: Ibfb57dfa7fd317fb0737096cc7c1bbcb644421b5 Reviewed-on: https://skia-review.googlesource.com/6957 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* cleanup after 95e3c05Gravatar Hal Canary2017-01-12
| | | | | | | | | Change-Id: Ifd194fd009196b8bee2dd83328bbe698586d72f4 Reviewed-on: https://skia-review.googlesource.com/6965 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Use RasterPipeline to support full precision on 16-bit RGBA pngsGravatar Matt Sarett2017-01-12
| | | | | | | | | | | | | | | TODO: Support more precision on 16-bit RGB pngs BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d Reviewed-on: https://skia-review.googlesource.com/6260 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "Implement Analytic AA for General Paths (with Guard against Chrome)"Gravatar Yuqian Li2017-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 89a0e72287e991cfa2f860f92fad545ca59defe1. Reason for revert: <INSERT REASONING HERE> Original change's description: > Implement Analytic AA for General Paths (with Guard against Chrome) > > I've set up a SK_SUPPORT_LEGACY_AAA flag to guard against Chromium layout tests. I also set that flag in this CL so theoretically this CL won't trigger any GM changes. I'll use this to verify my guard, and remove that flag and actually enables concave AAA in a future CL. > > When enabled, for most simple concave paths (e.g., rectangle stroke, rrect stroke, sawtooth, stars...), the Analytic AA achieves 1.3x-2x speedup, and they look much prettier. And they probably are the majority in our use cases by number. But they probably are not the majority by time cost; a single complicated path may cost 10x-100x more time to render than a rectangle stroke... For those complicated paths, we fall back to supersampling by default as we're likely to be 1.1-1.2x slower and the quality improvement is not visually significant. However, one can use gSkForceAnalyticAA to disable that fallback. > > BUG=skia: > > Change-Id: If9549a3acc4a187cfaf7eb51890c148da3083d31 > Reviewed-on: https://skia-review.googlesource.com/6091 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> > TBR=caryclark@google.com,liyuqian@google.com,reed@google.com BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I13c05aaa1bcb14956bd0fe01bb404e41be75af22 Reviewed-on: https://skia-review.googlesource.com/6961 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* Fix SkImageFilterCache raceGravatar Florin Malita2017-01-12
| | | | | | | | | | BUG=chromium:668937 R=reed@google.com,robertphillips@google.com Change-Id: I72ceaf1d88946c277a38f32014640e01ae9cbded Reviewed-on: https://skia-review.googlesource.com/6954 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Implement Analytic AA for General Paths (with Guard against Chrome)Gravatar Yuqian Li2017-01-12
| | | | | | | | | | | | | I've set up a SK_SUPPORT_LEGACY_AAA flag to guard against Chromium layout tests. I also set that flag in this CL so theoretically this CL won't trigger any GM changes. I'll use this to verify my guard, and remove that flag and actually enables concave AAA in a future CL. When enabled, for most simple concave paths (e.g., rectangle stroke, rrect stroke, sawtooth, stars...), the Analytic AA achieves 1.3x-2x speedup, and they look much prettier. And they probably are the majority in our use cases by number. But they probably are not the majority by time cost; a single complicated path may cost 10x-100x more time to render than a rectangle stroke... For those complicated paths, we fall back to supersampling by default as we're likely to be 1.1-1.2x slower and the quality improvement is not visually significant. However, one can use gSkForceAnalyticAA to disable that fallback. BUG=skia: Change-Id: If9549a3acc4a187cfaf7eb51890c148da3083d31 Reviewed-on: https://skia-review.googlesource.com/6091 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* fix clipping in rasterhandleallocatorGravatar Mike Reed2017-01-12
| | | | | | | | | BUG=skia: Change-Id: Ia24c5ae191fd823095cd0c75993cfd0208c98869 Reviewed-on: https://skia-review.googlesource.com/6952 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@google.com>
* refFoo variant for getters that naturally have a sk_spGravatar Mike Reed2017-01-12
| | | | | | | | | | BUG=skia: Change-Id: I13afa1b81e8a72d93e45fb4d37228be196b0f388 Reviewed-on: https://skia-review.googlesource.com/6923 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Cleanup GrPixelConfig helper functionsGravatar Brian Osman2017-01-12
| | | | | | | | | | | | Remove unused functions, and convert another to switch style. BUG=skia: Change-Id: I93edbece54f147d868801bb008e6f935a8cb997f Reviewed-on: https://skia-review.googlesource.com/6947 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Fix perf regression with SDF pathsGravatar Jim Van Verth2017-01-12
| | | | | | | | | BUG=skia:6113,chromium:677889 Change-Id: I13d012a92e4d0371138f5ed4b92c7850f9b773a5 Reviewed-on: https://skia-review.googlesource.com/6945 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* disable runtime detected AVX2 raster pipelinesGravatar Mike Klein2017-01-12
| | | | | | | | | | | | | It's proving too difficult to keep on top of all the ways we might cause ODR violations that crash Chrome. I'd rather focus on other ways of running the pipelines that won't have that particular problem. Our -Fast bots will keep testing and benchmarking AVX2 raster pipelines. BUG=chromium:679147,chromium:654213,chromium:664864,chromium:666707,etc. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I35ba8f5f4303107237fd78a6ce442d7c26e5fbef Reviewed-on: https://skia-review.googlesource.com/6827 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Remove second version of SkImageInfo2GrPixelConfigGravatar Brian Osman2017-01-12
| | | | | | | | | | | | | | | | Alpha type is not (and never will be) part of pixel config, so the logic around that was unnecessary. (Also, we already sanitize color type and alpha type before making a new device at a higher level). With that out of the way, we can easily supply a full info at the two call-sites that were using the other version. BUG=skia: Change-Id: Iceccdbdebd1062d3e5023620755aabcc86604d2f Reviewed-on: https://skia-review.googlesource.com/6920 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove kIndex_8_GrPixelConfigGravatar Brian Osman2017-01-12
| | | | | | | | | | | | It's been disabled for a long time (GPUs don't support it, and it actually caused performance regression in testing). BUG=skia:4333 Change-Id: I6e2bf755f765168fd616de6c9c023c6fbd5abd20 Reviewed-on: https://skia-review.googlesource.com/6897 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* GrTessellator: fix artifact with exactly-1-px-wide edges.Gravatar Stephen White2017-01-12
| | | | | | | | | | | | | | | | | | | | | | | | When path features are exactly a pixel wide, the extruded inner edges can become collinear and then be removed, since their winding is zero. We need these edges to be preserved through triangulation, otherwise opaque portions of the geometry can become transparent. Since the simplify() pass can handle zero-winding edges just fine, the the fix is to simply not remove them. In addition, this changes refactors out disconnect() from all the calls to remove_edge_above()/remove_edge_below(). It also renames the remaining function erase_edge() (since it's now unconditional). Add a new test to a new "thinconcavepaths" GM. BUG=680260 NOTRY=true Change-Id: I1d3a436c95a01c4d4ef5dc05503de4312677f65d Reviewed-on: https://skia-review.googlesource.com/6902 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* Revert "Introduce SkArenaAlloc - should be fast for POD types and RAII for ↵Gravatar Herb Derby2017-01-11
| | | | | | | | | | | | | types with dtors." This reverts commit 6ff51aedda6f3b4873c292d7e03e47ad656543f8. Reason for revert: breaks win2k8 and PDFium Change-Id: Ib1e2db8e523d5d321836ce00e3773def3db8be2f Reviewed-on: https://skia-review.googlesource.com/6898 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Herb Derby <herb@google.com>
* SkUTF8_CountUnichars(s,l) and SkUTF8_NextUnichar(s,l) now safe.Gravatar Hal Canary2017-01-11
| | | | | | | | | | | | | Theory: We will accept blobs of data as utf-8 text without validation, but when it comes time to process it: count code poits or convert to code points, be careful to check for errors. TODO: SkTypeface::charsToGlyphs() needs to take a length. Change-Id: Id8110ab43dbffce96faffdda1e0bdaa39cad40e4 Reviewed-on: https://skia-review.googlesource.com/6849 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Introduce SkArenaAlloc - should be fast for POD types and RAII for types ↵Gravatar Herb Derby2017-01-11
| | | | | | | | | | | | | with dtors. - Implementation. - Use in SkLinearPipeline. TBR=mtklein@google.com Change-Id: Ia8efd09b2f3139a57182889ba84d1610eae92749 Reviewed-on: https://skia-review.googlesource.com/6352 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* More fixes for distance field pathsGravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | Disables use of SDFs for very small paths (because of blurring) and adds a border of 1 pixel in device space to handle antialiasing. BUG=chromium:677889 Change-Id: Icd2f7e80323b1255f8de52b97360e9a2d995c765 Reviewed-on: https://skia-review.googlesource.com/6895 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Make GrPaints move their GrProcessor ownership into GrPipelineBuilder.Gravatar Brian Salomon2017-01-11
| | | | | | | | | This makes GrPaints usable only once. In some places we must make copies in order to issue draws with the same paint state. Change-Id: Ie816e5185ce93a064111cad64c6880e1e21184c2 Reviewed-on: https://skia-review.googlesource.com/6844 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove SK_LEGACY_FONTMGR_FACTORY.Gravatar Ben Wagner2017-01-11
| | | | | | | | | | | | | SkFontMgr factories now return sk_sp and the legacy factories are no longer used and can be removed. BUG=skia:5077 Change-Id: Ieaff8555b297d1db157f8b78cdd6e7d07a3b5490 Reviewed-on: https://skia-review.googlesource.com/6894 Commit-Queue: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkSplicer: start on Windows supportGravatar Mike Klein2017-01-11
| | | | | | | | | should just be missing copy_to_executable_mem() / cleanup_executable_mem() Change-Id: I47d34d4b57a40c07120cca7dc03f6ae22ecbe910 Reviewed-on: https://skia-review.googlesource.com/6854 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* SkTestTypeface: correct encodingGravatar Hal Canary2017-01-11
| | | | | | | Change-Id: I6ef875fc44278b873989d323dd26f6ed26b68f28 Reviewed-on: https://skia-review.googlesource.com/6889 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'" This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da. Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab Reviewed-on: https://skia-review.googlesource.com/6886 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "More fixes for distance field paths"Gravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d081ff314f07104adacaadc3d0f8f13dc741f016. Reason for revert: Failing unit tests. Original change's description: > More fixes for distance field paths > > Disables use of SDFs for very small paths (because of blurring) and > adds a border of 1 pixel in device space to handle antialiasing. > > BUG=chromium:677889 > > Change-Id: I81e49477c943d41523fd836e55abd696a985491f > Reviewed-on: https://skia-review.googlesource.com/6832 > Commit-Queue: Jim Van Verth <jvanverth@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org BUG=chromium:677889 NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4a6a698fa2e9e58c1c98a5a89f54bed724527951 Reviewed-on: https://skia-review.googlesource.com/6890 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Make SkColorToHSV and SkHSVToColor "perfect" inversesGravatar Leon Scroggins III2017-01-11
| | | | | | | | | | | | | | | | | | For all possible opaque SkColors, make converting to HSV and back return the original SkColor. In SkHSVToColor, store values as normalized floats (instead of converting to byte values) as long as possible. Add a test that cycles through all opaque SkColors and verifies correct conversion. BUG=b/33737498 Change-Id: I7ff61a999a271565a9ffe82ae3c9676fc49d67e3 Reviewed-on: https://skia-review.googlesource.com/6720 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* More fixes for distance field pathsGravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | Disables use of SDFs for very small paths (because of blurring) and adds a border of 1 pixel in device space to handle antialiasing. BUG=chromium:677889 Change-Id: I81e49477c943d41523fd836e55abd696a985491f Reviewed-on: https://skia-review.googlesource.com/6832 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"Gravatar Kevin Lubick2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf. Reason for revert: Broke Google3 Original change's description: > SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h > > * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). > > * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h > > * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" > > Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 > Reviewed-on: https://skia-review.googlesource.com/4543 > Reviewed-by: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5 Reviewed-on: https://skia-review.googlesource.com/6884 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Add test for processor->resource ref/io countsGravatar Brian Salomon2017-01-11
| | | | | | | Change-Id: I63a8cb9f1564bfc15ef98121b77946a647c79f32 Reviewed-on: https://skia-review.googlesource.com/6814 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 Reviewed-on: https://skia-review.googlesource.com/4543 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Fix overwriting of config flags in a few casesGravatar Brian Osman2017-01-11
| | | | | | | | | | | | | | | For all of these configs, we were or'ing in the texel buffer flag, and then setting the flags to textureable. We currently only use texel buffers for RGBA_Float buffers, so this didn't make any difference, but I spotted it while making other changes. BUG=skia: Change-Id: I76c21881b7c82c5c0561e19686ddcc62f9cca835 Reviewed-on: https://skia-review.googlesource.com/6851 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Improve quad edges' smoothness in non-AA cases""Gravatar Yuqian Li2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1e74cad9b4ed8079433d4e62ab3198d97436f5ec. Reason for revert: the guard flag has now been confirmed to be landed on chromium/src. We should now be able to pass the layout tests. Original change's description: > Revert "Improve quad edges' smoothness in non-AA cases" > > This reverts commit d4ed326d6f3704995b0e91292bf2c87e9d36bb14. > > Reason for revert: reverting temporarily to get us rolling into Chrome again. > > Must be this CL right? > https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3364/layout-test-results/results.html > > Original change's description: > > Improve quad edges' smoothness in non-AA cases > > > > Previously, non-AA quad edges only have an accuracy about 1/2 pixel > > (while the AA quad edges have an accuracy about 1/8 pixel). Now, we > > increase non-AA quad edges' accuracy to 1/8 pixel as well. > > > > The difference is very significant for rotating non-AA filled circles. > > For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA > > turned off (by pressing b). > > > > The benchmark added reveals that increasing quad accuracy from 1/2 to > > 1/8 doesn't affect the performance significantly. The following is the > > 1/2-accuracy performance versus 1/8-accuracy performance: > > > > curr/maxrss loops min median mean max stddev samples > > config bench > > 7/17 MB 19 2.43µs 2.57µs 2.81µs 10.5µs 22% 16119 > > 8888 path_fill_big_nonaacircle > > 7/17 MB 17 1.38µs 1.42µs 1.52µs 13µs 20% 21409 > > 8888 path_fill_small_nonaacircle > > > > curr/maxrss loops min median mean max stddev samples > > config bench > > 7/17 MB 71 2.52µs 2.59µs 2.79µs 7.67µs 19% 7557 > > 8888 path_fill_big_nonaacircle > > 7/17 MB 64 1.45µs 1.49µs 1.51µs 2.39µs 5% 12704 > > 8888 path_fill_small_nonaacircle > > > > > > BUG=skia: > > > > Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964 > > Reviewed-on: https://skia-review.googlesource.com/6699 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Yuqian Li <liyuqian@google.com> > > > > TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,djsollen@google.com,bungeman@google.com,reviews@skia.org,fmalita@chromium.org > BUG=skia: > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I5bc4596ab506f6f61ac2da91a07cf51d61114f31 > Reviewed-on: https://skia-review.googlesource.com/6829 > Commit-Queue: Mike Klein <mtklein@google.com> > Reviewed-by: Mike Klein <mtklein@google.com> > TBR=djsollen@google.com,mtklein@google.com,bungeman@google.com,reviews@skia.org,caryclark@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I0ec2ea8dc0c6ad0ebdcb48878fb301c32443a09e Reviewed-on: https://skia-review.googlesource.com/6858 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* move SkDraw.h to coreGravatar Mike Reed2017-01-11
| | | | | | | | | BUG=skia: Change-Id: Ic8c949530414f3f8d7caded969941dc853a06271 Reviewed-on: https://skia-review.googlesource.com/6845 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* pretty up some SkSplicer codeGravatar Mike Klein2017-01-10
| | | | | | | | | | - build_stages.py uses gobjdump for both architectures, minor formatting changes - let byte arrays be written inline in splice() Change-Id: I84bd47c18e5ae0b34b35f8c2f0a329fb1ea58f60 Reviewed-on: https://skia-review.googlesource.com/6833 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Invalidate icache in copy_to_executable_mem()Gravatar Mike Klein2017-01-10
| | | | | | | | | | | | | | | | This should be a no-op on x86 (unified icache and dcache), but is required on ARM because the icache and dcache are separate. The Pixel C bots are crashing at head, and so is my local Pixel C, but not after this CL. Interestingly, my Pixel not-C (phone) has always been fine. I wonder if it has a unifed cache? CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android Change-Id: I8f9d53729613c51aabfeb49495aac38ce2801a84 Reviewed-on: https://skia-review.googlesource.com/6847 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add Gray8 pixel configGravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | This is still just linear (non-sRGB), but adding sRGB will be the next step. I've verified that this is really making R8 textures when uploading Gray8 bitmaps. Tests pass, and the all_bitmap_configs GM still renders correctly (unlike when we just mapped Gray8 to Alpha8). This adds another pixel config, which could grow our cache footprint, but the benefits of not using 4bpp for 1bpp data should outweigh that? Re-land of https://skia-review.googlesource.com/c/6817/, with fixes for Vulkan. BUG=skia:6110 Change-Id: Ia763c276808be28027ed0005ee4b88637306583f Reviewed-on: https://skia-review.googlesource.com/6839 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* SkSplicer: no need to set_k() manually.Gravatar Mike Klein2017-01-10
| | | | | | | | | set_k() is simulating the effect of loading a pointer constant into the register used to pass the 4th function argument. An easier way to do this is to pass that pointer constant as the 4th function argument... duh. Change-Id: I5604d6bbadd86eaaa82f8c4391080f6489b1927f Reviewed-on: https://skia-review.googlesource.com/6843 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkSplicer: fix aarch64 jump offset, turn on testing on aarch64 Android botsGravatar Mike Klein2017-01-10
| | | | | | | | | | | I also updated the dump feature to work with aarch64, and included comments on how to disassemble an aarch64 dump. Looking at an aarch64 dump made it immediately obvious that the jump offset was off by 1. Change-Id: I17fa6ee44779e8be69ab4582e338c88212aba36c Reviewed-on: https://skia-review.googlesource.com/6841 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkSplicer: test and fix loop logicGravatar Mike Klein2017-01-10
| | | | | | | | | The new test would fail without the the change in SkSplicer.cpp to call fSpliced(x,x+body) instead of fSpliced(x,body). The rest of the changes are cosmetic, mostly renaming n to limit. Change-Id: Iae28802d0adb91e962ed3ee60fa5a4334bd140f9 Reviewed-on: https://skia-review.googlesource.com/6837 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Add Gray8 pixel config"Gravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f2956459f707de596dcb2c79a7ee1fa62d599c0d. Reason for revert: GM and image failures on some bots (rendering red, not gray). Original change's description: > Add Gray8 pixel config > > This is still just linear (non-sRGB), but adding sRGB will > be the next step. I've verified that this is really making > R8 textures when uploading Gray8 bitmaps. Tests pass, and > the all_bitmap_configs GM still renders correctly (unlike > when we just mapped Gray8 to Alpha8). > > This adds another pixel config, which could grow our cache > footprint, but the benefits of not using 4bpp for 1bpp data > should outweigh that? > > BUG=skia:6110 > > Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c > Reviewed-on: https://skia-review.googlesource.com/6817 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Osman <brianosman@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org BUG=skia:6110 NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I95a4fc0450a569d5791f6bceb7fae61c7e5eba61 Reviewed-on: https://skia-review.googlesource.com/6838 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Respect SkColorSpace in SkPNGImageEncoderGravatar Matt Sarett2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | This only changes behavior when the input SkBitmap/SkPixmap is tagged with a non-null SkColorSpace. Android tags their bitmaps as sRGB when linear blending is enabled. So this only changes behavior in Android when linear blending is turned on. *If linear blending is turned on, this will do a color correct encode (which is the desired behavior). *If linear blending is turned off, this will do a legacy encode. TODO: Add support for F16. TODO: Add color space support to WEBP. TODO: Tag encoded images with ICC profiles (when it makes sense). BUG=skia: Change-Id: Idd8a2836371d24a453d953e6fe2e76a87751be96 Reviewed-on: https://skia-review.googlesource.com/6498 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* support external raster handlesGravatar Mike Reed2017-01-10
| | | | | | | | | | | draft CL for chrome: https://codereview.chromium.org/2618323005/ BUG=skia: Change-Id: I5dbcd700818776a9f62f1e10723d2efcc248dc44 Reviewed-on: https://skia-review.googlesource.com/6406 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* remove xbyak experimentGravatar Mike Klein2017-01-10
| | | | | | | | | | | SkSplicer is better. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I014ec0e9fb00a8a4694d442e672c65402621dc67 Reviewed-on: https://skia-review.googlesource.com/6830 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make SkImage_Base::onReadPixels() pure virtualGravatar Matt Sarett2017-01-10
| | | | | | | | | BUG=skia: Change-Id: I52504b21313717bf8321ec3f1df770773703a1a1 Reviewed-on: https://skia-review.googlesource.com/6831 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Remove SkUseTestFontConfigFile.Gravatar Ben Wagner2017-01-10
| | | | | | | | | | | | This method and its associated globals are no longer used by any user and can now be removed. BUG=skia:2817 Change-Id: Ia627e2494f568a733999b980aec9284467d2640d Reviewed-on: https://skia-review.googlesource.com/6821 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add Gray8 pixel configGravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | This is still just linear (non-sRGB), but adding sRGB will be the next step. I've verified that this is really making R8 textures when uploading Gray8 bitmaps. Tests pass, and the all_bitmap_configs GM still renders correctly (unlike when we just mapped Gray8 to Alpha8). This adds another pixel config, which could grow our cache footprint, but the benefits of not using 4bpp for 1bpp data should outweigh that? BUG=skia:6110 Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c Reviewed-on: https://skia-review.googlesource.com/6817 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Start making texture coordinates be absoluteGravatar Robert Phillips2017-01-10
| | | | | | | | | | | The idea here is that we will pass GrTextureProxys in (where we're currently passing GrTextures) and defer the normalization until the texture is actually instantiated (and possibly move it to the GPU entirely) This CL does (intentionally) change the texturedomaineffect GM but I believe the new behavior is more correct. Change-Id: I4e0510b3dfb65ff0d0ee5921f9a6f94151e602d3 Reviewed-on: https://skia-review.googlesource.com/6807 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* SkSplicer: start on arm64Gravatar Mike Klein2017-01-10
| | | | | | | | | | | | | Seems to be working. The jump to loop_start might be a little off, but not by much. Correctness is really still a big TODO. $ adb shell 'cd /data/local/tmp; ./monobench SkRasterPipeline 200' SkRasterPipeline_… 200 …f16_compile 1x …f16_run 1.42x …srgb_compile 2.21x …srgb_run 2.59x⏎ Change-Id: I0e1acc6404cf3ce8084d9ef8011cbe0b5f1fd6e3 Reviewed-on: https://skia-review.googlesource.com/6811 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Improve quad edges' smoothness in non-AA cases"Gravatar Mike Klein2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d4ed326d6f3704995b0e91292bf2c87e9d36bb14. Reason for revert: reverting temporarily to get us rolling into Chrome again. Must be this CL right? https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3364/layout-test-results/results.html Original change's description: > Improve quad edges' smoothness in non-AA cases > > Previously, non-AA quad edges only have an accuracy about 1/2 pixel > (while the AA quad edges have an accuracy about 1/8 pixel). Now, we > increase non-AA quad edges' accuracy to 1/8 pixel as well. > > The difference is very significant for rotating non-AA filled circles. > For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA > turned off (by pressing b). > > The benchmark added reveals that increasing quad accuracy from 1/2 to > 1/8 doesn't affect the performance significantly. The following is the > 1/2-accuracy performance versus 1/8-accuracy performance: > > curr/maxrss loops min median mean max stddev samples > config bench > 7/17 MB 19 2.43µs 2.57µs 2.81µs 10.5µs 22% 16119 > 8888 path_fill_big_nonaacircle > 7/17 MB 17 1.38µs 1.42µs 1.52µs 13µs 20% 21409 > 8888 path_fill_small_nonaacircle > > curr/maxrss loops min median mean max stddev samples > config bench > 7/17 MB 71 2.52µs 2.59µs 2.79µs 7.67µs 19% 7557 > 8888 path_fill_big_nonaacircle > 7/17 MB 64 1.45µs 1.49µs 1.51µs 2.39µs 5% 12704 > 8888 path_fill_small_nonaacircle > > > BUG=skia: > > Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964 > Reviewed-on: https://skia-review.googlesource.com/6699 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> > TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,djsollen@google.com,bungeman@google.com,reviews@skia.org,fmalita@chromium.org BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I5bc4596ab506f6f61ac2da91a07cf51d61114f31 Reviewed-on: https://skia-review.googlesource.com/6829 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>