aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
Commit message (Collapse)AuthorAge
* expose new tight-bounds method on SkPathGravatar Mike Reed2017-02-03
| | | | | | | | | BUG=skia: Change-Id: Ie50df49c1758af203042a84dc2cd505046373d2c Reviewed-on: https://skia-review.googlesource.com/7996 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* experimental tight-boundsGravatar Mike Reed2017-02-03
| | | | | | | | | | | | | not sure about api -- perhaps it could just return the bounds, and make them 0,0,0,0 if the path is empty -- the caller can trivially know if the path is empty themselves. BUG=skia: Change-Id: I2dbb861e8d981b27c5a6833643977f5bd6802217 Reviewed-on: https://skia-review.googlesource.com/7989 Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Make flag parsing work in GN-built iOS nanobench.Gravatar Mike Klein2017-01-31
| | | | | | | | | | | Just like DM. CQ_INCLUDE_TRYBOTS=skia.primary:Test-iOS-Clang-iPadMini4-GPU-GX6450-Arm7-Debug,Build-Mac-Clang-arm64-Debug-GN_iOS Change-Id: I4af3fa1813e3b7ee48407096e91373b5fee569c7 Reviewed-on: https://skia-review.googlesource.com/7824 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Generate Android build targets for dm and nanobenchGravatar Leon Scroggins III2017-01-27
| | | | | | | | | | | | | | | Generate targets for dm and nanobench from ninja and add them to the generated Android.bp file. Remove nanobenchAndroid and SkAndroidSDKCanvas. These rely on HWUI internals and are currently unused. Update gyp file references to removed files, just in case. Change-Id: Ic6ae18a70bfd0c33804e7996d077f2081dfdfe07 Reviewed-on: https://skia-review.googlesource.com/7635 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Keep valgrind happen by purging caches.Gravatar Herb Derby2017-01-26
| | | | | | | Change-Id: Ic387edb9b5d71110c10c8a40a362ed2853d140f5 Reviewed-on: https://skia-review.googlesource.com/7638 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Temporarily restore colorcube bench and GM files.Gravatar Mike Klein2017-01-24
| | | | | | | | | | | | Just the usual... we don't generate .bp for DM or nanobench yet. See https://skia-review.googlesource.com/c/7363/ and https://googleplex-android-review.git.corp.google.com/#/c/1819530/-1..1 Change-Id: If0098ed8a71a170d5efa773495d5bbf02a1e13fc Reviewed-on: https://skia-review.googlesource.com/7427 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Move shader register setup to SkRasterPipelineBlitter.Gravatar Mike Klein2017-01-23
| | | | | | | | | | | | | | | | | | | | | We've been seeding the initial values of our registers to x+0.5,y+0.5, 1,0, 0,0,0,0 (useful values for shaders to start with) in all pipelines. This CL changes that to do so only when blitting, and only when we have a shader. The nicest part of this change is that SkRasterPipeline itself no longer needs to have a concept of y, or what x means. It just marches x through [x,x+n), and the blitter handles y and layers the meaning of "dst x coordinate" onto x. This ought to make SkSplicer a little easier to work with too. dm --src gm --config f16 srgb 565 all draws the same. Change-Id: I69d8c1cc14a06e5dfdd6a7493364f43a18f8dec5 Reviewed-on: https://skia-review.googlesource.com/7353 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* change clip-bounds getters to always return the rectGravatar Mike Reed2017-01-23
| | | | | | | | | | | | | | | | | | (actually fixes undefined result in getClipBounds) future CLs - update all callers to new apis - move/rename virtuals BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=7400 Change-Id: I45b93014e915c0d1c36d97d948c9ac8931f23258 Reviewed-on: https://skia-review.googlesource.com/7400 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove SkColorCubeFilter. It is unused.Gravatar Mike Klein2017-01-21
| | | | | | | Change-Id: Iec5fc759e331de24caea1347f9510917260d379b Reviewed-on: https://skia-review.googlesource.com/7363 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add -Release ASAN bots.Gravatar Mike Klein2017-01-19
| | | | | | | | | | | | | | These may be better at -fsanitize=object-size. No need to loop more than once in nanobench for these bots. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-ASAN,Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-ASAN,Perf-Ubuntu-Clang-Golo-GPU-GT610-x86_64-Release-ASAN,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-ASAN,Test-Ubuntu-Clang-Golo-GPU-GT610-x86_64-Release-ASAN Change-Id: If89e94390d473434717cfe28de6be9055b68d8d4 Reviewed-on: https://skia-review.googlesource.com/7278 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add a bench to exercise legacy-mode SkRasterPipeline behavior.Gravatar Mike Klein2017-01-17
| | | | | | | | | | No fancy f16 or sRGB here... just good old legacy 8888. Change-Id: I21eb7c0d8e2c7a7d92e9d8a8bae9d318c4daa7e5 Reviewed-on: https://skia-review.googlesource.com/7109 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove SkFallbackAlloc and SkFixedAlloc.Gravatar Herb Derby2017-01-16
| | | | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN TBR=reed@google.com Change-Id: I1000dc9ed8ad65b249798759d9af99f47fc237d2 Reviewed-on: https://skia-review.googlesource.com/6809 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Introduce SkArenaAlloc - should be fast for POD types and RAII for types ↵Gravatar Herb Derby2017-01-13
| | | | | | | | | | | | | | with dtors. - Implementation. - Use in SkLinearPipeline. TBR=mtklein@google.com Change-Id: Ie014184469b217132b0307b5a9ae40c0c60e5fc9 Reviewed-on: https://skia-review.googlesource.com/6921 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Reland https://skia-review.googlesource.com/c/6091/Gravatar Yuqian Li2017-01-13
| | | | | | | | | | | | | | The only difference is that we now also put the guard flag SK_SUPPORT_LEGACY_AAA in SkUserConfig.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: I134bb76cebd6fffa712f438076668765321bba3b Reviewed-on: https://skia-review.googlesource.com/6992 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Attempt 3: SkRasterPipelineBlitter: support A8Gravatar Mike Klein2017-01-13
| | | | | | | | | | | Now that SkOpts_hsw.cpp no longer hooks in SkRasterPipeline_opts, it should be safe to try this again. This reverts commit 86d55b312a2649d80890ccf75f24571ada0265f1. Change-Id: I2d495600ca9d3a0f49c2e02fbaaae349cefac3a1 Reviewed-on: https://skia-review.googlesource.com/6985 Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Reland https://skia-review.googlesource.com/c/6091/"Gravatar Yuqian Li2017-01-13
| | | | | | | | | | | This reverts commit b46fff60bc82fe6f0c64b2241d854a121f7cb5f9. Reason for revert: possible chromium cc unit tests failure Change-Id: Ie174c55e4d0fc3ae45854b5897ba26b7ad5a9c13 Reviewed-on: https://skia-review.googlesource.com/6981 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* 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 "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>
* 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>
* 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>
* 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>
* 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>
* move SkTRegister.h into toolsGravatar Mike Reed2017-01-11
| | | | | | | | | BUG=skia: Change-Id: Ie7d4fac3024b361a281f456fec2b3a837e2bfe43 Reviewed-on: https://skia-review.googlesource.com/6881 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* 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 "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>
* 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>
* 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>
* 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>
* 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>
* Improve quad edges' smoothness in non-AA casesGravatar Yuqian Li2017-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Revert "Retry "SkRasterPipelineBlitter: support A8"..."Gravatar Mike Klein2017-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f55ea6a1deb21120944d406124a2984b5009260a. Reason for revert: crbug.com/679147 Original change's description: > Retry "SkRasterPipelineBlitter: support A8"... > > ...preferring SkA8_Coverage_Blitter over SkRasterPipelineBlitter. > > I think we could make this work with SkRasterPipelineBlitter (tell it, draw white in Src mode with this mask), but the existing blitter is pretty hard to beat in efficiency and correctness. > > CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > > Change-Id: I72df9995c63f3334d8111c59711818cb5ed1e63c > Reviewed-on: https://skia-review.googlesource.com/6627 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,brianosman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I6a36b4c087a52e54f4d591ded40e6a202fb77068 Reviewed-on: https://skia-review.googlesource.com/6760 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* zero fBuf in new SkXbyakBenchGravatar Mike Klein2017-01-06
| | | | | | | | | | | | MSAN's keeping me honest... CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN Change-Id: If61f75ec919a2b5ae0e973db05760f88588fe18f Reviewed-on: https://skia-review.googlesource.com/6702 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add a real SkXbyak bench, implement enough to run it.Gravatar Mike Klein2017-01-06
| | | | | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD SkXbyak_… 9320 …JITCompiled 1x …Interpreted 1.24x …HandWritten 2.5x Change-Id: I37d2d255ff32dcce73d29081d506e2d67477af97 Reviewed-on: https://skia-review.googlesource.com/6697 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Retry "SkRasterPipelineBlitter: support A8"...Gravatar Mike Klein2017-01-06
| | | | | | | | | | | | | | ...preferring SkA8_Coverage_Blitter over SkRasterPipelineBlitter. I think we could make this work with SkRasterPipelineBlitter (tell it, draw white in Src mode with this mask), but the existing blitter is pretty hard to beat in efficiency and correctness. CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I72df9995c63f3334d8111c59711818cb5ed1e63c Reviewed-on: https://skia-review.googlesource.com/6627 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* simplify by removing _d stagesGravatar Mike Klein2017-01-06
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I75e232faee6ad48f65bac5b119a461280b27bbc8 Reviewed-on: https://skia-review.googlesource.com/6661 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Use stack instead of malloc() for most calls to SkRasterPipeline::run().Gravatar Mike Klein2017-01-05
| | | | | | | | | | | | | Also split bench into run/compile variants to measure the effect: Before …f16_compile 1x …f16_run 1.02x …srgb_compile 1.56x …srgb_run 1.61x After …f16_run 1x …f16_compile 1.01x …srgb_compile 1.58x …srgb_run 1.59x CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I8e65fb2acdbb05ccc0b3894f16d7646603c3e74d Reviewed-on: https://skia-review.googlesource.com/6621 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* clean up non-ASCII commentsGravatar Hal Canary2017-01-03
| | | | | | | Change-Id: I07ad00133f6a938de70a94024a0ebe36c6c542bb Reviewed-on: https://skia-review.googlesource.com/6524 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* BUILD.gn: skia_enable_pdfGravatar Hal Canary2017-01-03
| | | | | | | | | BUG=skia: Change-Id: Icf616bec73e81aad97815b519566ff5b9db611e3 Reviewed-on: https://skia-review.googlesource.com/6495 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Misc batch->op cleanup Part 1 of 2Gravatar Brian Salomon2016-12-21
| | | | | | | Change-Id: I80f951976558a284e55386e0a368f08bd835d8ca Reviewed-on: https://skia-review.googlesource.com/6359 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* speedup dynamicwstreamGravatar Mike Reed2016-12-15
| | | | | | | | | | | | | | | | | - move bytesWritten calculation to query the tail, allowing write() to be faster since it doesn't have to update anything extra per-write. - enforce that all blocks are multiple-of-4 bytes big - update the minimum block size to 4K Before: 30ms After: 23ms for non-4-bytes writes 13ms for 4-bytes writes BUG=skia: Change-Id: Id06ecad3b9fe426747e02accf1393595e3356ce3 Reviewed-on: https://skia-review.googlesource.com/6087 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Change FLAGS_analyticAA's default to trueGravatar Yuqian Li2016-12-14
| | | | | | | | | BUG=skia: Change-Id: I1abf2284ed9dfaa69110c4fe86325c8e4ee43317 Reviewed-on: https://skia-review.googlesource.com/5767 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* add tests/bench for dynamicwstreamGravatar Mike Reed2016-12-14
| | | | | | | | | BUG=skia: Change-Id: I5a995b63b1a2975cce8101717777eaa6fc12af21 Reviewed-on: https://skia-review.googlesource.com/6035 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "clamp to premul when reading premul sRGB""Gravatar Mike Klein2016-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2e018f548d76b0688f9873c683cffc681fec40ec. Reason for revert: doesn't appear to have been the roll problem. Original change's description: > Revert "clamp to premul when reading premul sRGB" > > This reverts commit 04e10da8362a0dcabd795a4ad53f617719ca0d20. > > Reason for revert: roll? > > Change-Id: Id0a8dcd62763bd6eddde120c513ca97e098a4268 > Reviewed-on: https://skia-review.googlesource.com/6022 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,reviews@skia.org,brianosman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I399ca5e728ce6766c6707682c4c6b685681ffdeb Reviewed-on: https://skia-review.googlesource.com/6025 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "clamp to premul when reading premul sRGB"Gravatar Mike Klein2016-12-14
| | | | | | | | | | | This reverts commit 04e10da8362a0dcabd795a4ad53f617719ca0d20. Reason for revert: roll? Change-Id: Id0a8dcd62763bd6eddde120c513ca97e098a4268 Reviewed-on: https://skia-review.googlesource.com/6022 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* clamp to premul when reading premul sRGBGravatar Mike Klein2016-12-13
| | | | | | | | | | | | | | | It's pretty easy to start with sound premultiplied linear floats, pack those to sRGB encoded bytes, then read them back to linear floats and find them not quite premultiplied, with a color channel just a smidge greater than the alpha channel. This can happen basically any time we have different transfer functions for alpha and colors... sRGB being the only one we draw into. This is an annoying problem with no known good solution. So apply the clamp hammer. These new calls on SkRasterPipeline should make it impossible to get wrong. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I4c974f4a7b151f3f684946f1e83d06b1b288fd01 Reviewed-on: https://skia-review.googlesource.com/5945 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* re-land of added sk_FragCoord support to skslcGravatar Ethan Nicholas2016-12-13
| | | | | | | | | BUG=skia: Change-Id: Ifac1aa39839058787ad1794200c3dbb93c147a69 Reviewed-on: https://skia-review.googlesource.com/5850 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Add GMs and benchs for concave Analytic AAGravatar Yuqian Li2016-12-12
| | | | | | | | | BUG=skia: Change-Id: I2ed6e2c4f81dc9d5c53b07332c0063f42c6b3c79 Reviewed-on: https://skia-review.googlesource.com/5771 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Revert "added sk_FragCoord support to skslc"Gravatar Greg Daniel2016-12-12
| | | | | | | | | | | This reverts commit ce33f10677630e34187b661a02161378d8304d68. Reason for revert: Breaking many gpu bots Change-Id: I94c813ed6a9311458c872f74bb1b0792f46ff414 Reviewed-on: https://skia-review.googlesource.com/5737 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* added sk_FragCoord support to skslcGravatar Ethan Nicholas2016-12-12
| | | | | | | | | BUG=skia: Change-Id: If78a4d08121699f87659f0d2e35f3edbf1867401 Reviewed-on: https://skia-review.googlesource.com/5408 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* change SkClipOp to a class enumGravatar Mike Reed2016-12-12
| | | | | | | | | BUG=skia: Change-Id: I25dbe6d6b8666a2a0a7be7bdd2ae0b067868d14e Reviewed-on: https://skia-review.googlesource.com/5718 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>