aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp
Commit message (Collapse)AuthorAge
* Split src/opts source lists out of opts.gyp.Gravatar mtklein2015-01-26
| | | | | | | | | | | This should make it easier to keep our opts.gyp in sync with Chrome's GYP and GN. BUG=skia: Landing this without review as a mega-tryjob. TBR=reed@google.com Review URL: https://codereview.chromium.org/870353003
* Revert of SSE4 opaque blend using intrinsics instead of assembly. (patchset ↵Gravatar bungeman2015-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #14 id:260001 of https://codereview.chromium.org/874863002/) Reason for revert: This kills Mac 10.6 bots. FAILED: c++ -MMD -MF obj/src/opts/opts_sse4.SkBlitRow_opts_SSE4.o.d -DSK_INTERNAL -DSK_GAMMA_SRGB -DSK_GAMMA_APPLY_TO_A8 -DSK_SCALAR_TO_FLOAT_EXCLUDED -DSK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1 -DSK_SUPPORT_GPU=1 -DSK_SUPPORT_OPENCL=0 -DSK_FORCE_DISTANCE_FIELD_TEXT=0 -DSK_BUILD_FOR_MAC -DSK_CRASH_HANDLER -DSK_DEVELOPER=1 -I../../src/core -I../../src/utils -I../../include/c -I../../include/config -I../../include/core -I../../include/pathops -I../../include/pipe -I../../include/utils/mac -I../../include/effects -O0 -gdwarf-2 -mmacosx-version-min=10.6 -arch x86_64 -mssse3 -Wall -Wextra -Winit-self -Wpointer-arith -Wsign-compare -Wno-unused-parameter -Wno-invalid-offsetof -msse4.1 -c ../../src/opts/SkBlitRow_opts_SSE4.cpp -o obj/src/opts/opts_sse4.SkBlitRow_opts_SSE4.o ../../src/opts/SkBlitRow_opts_SSE4.cpp:15:27: warning: x86intrin.h: No such file or directory ../../src/opts/SkBlitRow_opts_SSE4.cpp: In function 'void S32A_Opaque_BlitRow32_SSE4(SkPMColor*, const SkPMColor*, int, U8CPU)': ../../src/opts/SkBlitRow_opts_SSE4.cpp:40: error: '_mm_testz_si128' was not declared in this scope ../../src/opts/SkBlitRow_opts_SSE4.cpp:45: error: '_mm_testc_si128' was not declared in this scope Original issue's description: > SSE4 opaque blend using intrinsics instead of assembly. > > Since we had such a hard time with the assembly versions of this blit (to the > point that we have them completely disabled everywhere), I thought I'd take > a shot at writing a version of the blit using intrinsics. > > The key feature of SSE4 we're exploiting is that we can use ptest (_mm_test*) > to skip the blend when the 16 src pixels we consider each loop are all opaque > or all transparent. _mm_shuffle_epi8 from SSSE3 also lends a hand to extract > all those alphas. > > It's worth looking to see if we can backport this type of logic to SSE2 using > _mm_movemask_epi8, or up to 32 pixels at a time using AVX. > > My local performance testing doesn't show this to be an unambiguous win > (there are probably microbenchmarks and SKPs where we'd be better off just > powering through the blend rather than looking at alphas), but the potential > does seem tantalizing enough to let skiaperf vet it on the bots. (< 1.0x is a win.) > > DM says it draws pixel perfect compare to the old code. > > Microbenchmarks: > bitmap_RGBA_8888_A_source_stripes_two 14us -> 14.4us 1.03x > bitmap_RGBA_8888_A_source_stripes_three 14.3us -> 14.5us 1.01x > bitmap_RGBA_8888_scale_bilerp 61.9us -> 62.2us 1.01x > bitmap_RGBA_8888_update_volatile_scale_rotate_bilerp 102us -> 101us 0.99x > bitmap_RGBA_8888_scale_rotate_bilerp 103us -> 101us 0.99x > bitmap_RGBA_8888_scale 18.4us -> 18.2us 0.99x > bitmap_RGBA_8888_A_scale_rotate_bicubic 71us -> 70us 0.99x > bitmap_RGBA_8888_update_scale_rotate_bilerp 103us -> 101us 0.99x > bitmap_RGBA_8888_A_scale_rotate_bilerp 112us -> 109us 0.98x > bitmap_RGBA_8888_update_volatile 5.72us -> 5.58us 0.98x > bitmap_RGBA_8888 5.73us -> 5.58us 0.97x > bitmap_RGBA_8888_update 5.78us -> 5.6us 0.97x > bitmap_RGBA_8888_A_scale_bilerp 70.7us -> 68us 0.96x > bitmap_RGBA_8888_A_scale_bicubic 23.7us -> 21.8us 0.92x > bitmap_RGBA_8888_A 13.9us -> 10.9us 0.78x > bitmap_RGBA_8888_A_source_opaque 14us -> 6.29us 0.45x > bitmap_RGBA_8888_A_source_transparent 14us -> 3.65us 0.26x > > Running over our ~70 SKP web page captures, this looks like we spend 0.7x > the time in S32A_Opaque_BlitRow compared to the SSE2 version, which should > be a decent predictor of real-world impact. > > BUG=chromium:399842 > > Committed: https://skia.googlesource.com/skia/+/04bc91b972417038fecfa87c484771eac2b9b785 TBR=henrik.smiding@intel.com,mtklein@google.com,herb@google.com,reed@google.com,thakis@chromium.org,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:399842 Review URL: https://codereview.chromium.org/874033004
* SSE4 opaque blend using intrinsics instead of assembly.Gravatar mtklein2015-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we had such a hard time with the assembly versions of this blit (to the point that we have them completely disabled everywhere), I thought I'd take a shot at writing a version of the blit using intrinsics. The key feature of SSE4 we're exploiting is that we can use ptest (_mm_test*) to skip the blend when the 16 src pixels we consider each loop are all opaque or all transparent. _mm_shuffle_epi8 from SSSE3 also lends a hand to extract all those alphas. It's worth looking to see if we can backport this type of logic to SSE2 using _mm_movemask_epi8, or up to 32 pixels at a time using AVX. My local performance testing doesn't show this to be an unambiguous win (there are probably microbenchmarks and SKPs where we'd be better off just powering through the blend rather than looking at alphas), but the potential does seem tantalizing enough to let skiaperf vet it on the bots. (< 1.0x is a win.) DM says it draws pixel perfect compare to the old code. Microbenchmarks: bitmap_RGBA_8888_A_source_stripes_two 14us -> 14.4us 1.03x bitmap_RGBA_8888_A_source_stripes_three 14.3us -> 14.5us 1.01x bitmap_RGBA_8888_scale_bilerp 61.9us -> 62.2us 1.01x bitmap_RGBA_8888_update_volatile_scale_rotate_bilerp 102us -> 101us 0.99x bitmap_RGBA_8888_scale_rotate_bilerp 103us -> 101us 0.99x bitmap_RGBA_8888_scale 18.4us -> 18.2us 0.99x bitmap_RGBA_8888_A_scale_rotate_bicubic 71us -> 70us 0.99x bitmap_RGBA_8888_update_scale_rotate_bilerp 103us -> 101us 0.99x bitmap_RGBA_8888_A_scale_rotate_bilerp 112us -> 109us 0.98x bitmap_RGBA_8888_update_volatile 5.72us -> 5.58us 0.98x bitmap_RGBA_8888 5.73us -> 5.58us 0.97x bitmap_RGBA_8888_update 5.78us -> 5.6us 0.97x bitmap_RGBA_8888_A_scale_bilerp 70.7us -> 68us 0.96x bitmap_RGBA_8888_A_scale_bicubic 23.7us -> 21.8us 0.92x bitmap_RGBA_8888_A 13.9us -> 10.9us 0.78x bitmap_RGBA_8888_A_source_opaque 14us -> 6.29us 0.45x bitmap_RGBA_8888_A_source_transparent 14us -> 3.65us 0.26x Running over our ~70 SKP web page captures, this looks like we spend 0.7x the time in S32A_Opaque_BlitRow compared to the SSE2 version, which should be a decent predictor of real-world impact. BUG=chromium:399842 Review URL: https://codereview.chromium.org/874863002
* GrBatchPrototypeGravatar joshualitt2015-01-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/845103005
* s/sk_tools::DrawCheckerboard/sk_tool_utils::draw_checkerboard/Gravatar halcanary2015-01-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/873333004
* add bench for building mipmapsGravatar reed2015-01-26
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/873293003
* Factor out checkerboard function in gm and sampleapp into tools.Gravatar halcanary2015-01-26
| | | | Review URL: https://codereview.chromium.org/834303005
* Collapse consecutive SkTableColorFiltersGravatar cwallez2015-01-26
| | | | | | | | | | | BUG=skia:1366 For the added bench, the collapsing makes the bench take: - 70% of the time for CPU rendering of 3 consecutive matrix filters - almost no change in the GPU rendering of the matrix filters - 50% of the time for CPU and GPU rendering of 3 consecutive table filters Review URL: https://codereview.chromium.org/776673002
* Fold alpha to the inner savelayer in savelayer-savelayer-restore patternsGravatar kkinnunen2015-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | Fold alpha to the inner savelayer in savelayer-savelayer-restore patterns such as this: SaveLayer (non-opaque) Save ClipRect SaveLayer Restore Restore Restore Current blink generates these for example for SVG content such as this: <path style="opacity:0.5 filter:url(#blur_filter)"/> The outer save layer is due to the opacity and the inner one is due to blur filter being implemented with picture image filter. Reduces layers in desk_carsvg.skp testcase from 115 to 78. BUG=skia:3119 Review URL: https://codereview.chromium.org/835973005
* initial preroll apiGravatar reed2015-01-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/855473002
* experimental/skp_to_pdf_md5 optionally also outputs pdf filesGravatar halcanary2015-01-24
| | | | | | TBR=mtklein@google.com Review URL: https://codereview.chromium.org/868333002
* Take budgeted param when snapping new image.Gravatar bsalomon2015-01-23
| | | | Review URL: https://codereview.chromium.org/872543002
* Update compiler warning flagsGravatar mtklein2015-01-23
| | | | | | | | | | | | - add -Wsign-compare, which has been catching useful issues for Kimmo; - add -Winit-self and -Wpointer-arith to Mac builds so everyone's using the same flags; - try try removing -Wno-uninitialized. This was only for the old 10.6 compiler that we have warnings set as non-errors now. BUG=skia: Review URL: https://codereview.chromium.org/872793002
* Remove GrBinHashKeyGravatar bsalomon2015-01-23
| | | | Review URL: https://codereview.chromium.org/861323002
* Add specialized content key class for resources.Gravatar bsalomon2015-01-23
| | | | Review URL: https://codereview.chromium.org/858123002
* remove unnecessary guard flags for android (for conics)Gravatar reed2015-01-22
| | | | | | | BUG=skia: NOTREECHECKS=True Review URL: https://codereview.chromium.org/868783002
* Rename GrOptDrawState to GrPipeline and GrDrawState to GrPipelineBuilderGravatar egdaniel2015-01-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/858343002
* remove (unused) GatherPixelRefsGravatar reed2015-01-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/869463002
* Don't require -DSK_USE_POSIX_THREADS.Gravatar mtklein2015-01-21
| | | | | | | | | | | | | To compile SkCondVar, we already require either pthreads or Windows. This simplifies that code to not need SK_USE_POSIX_THREADS to be explicitly defined. We'll just look to see if we're targeting Windows, and if not, assume pthreads. Both before and after this CL, that code will fail to compile if we're not on Windows and don't have pthreads. BUG=skia: Review URL: https://codereview.chromium.org/869443003
* More natural way to serialize GPU tasks and tests.Gravatar mtklein2015-01-21
| | | | | | | | | | | | | This basically takes out the Windows-only hacks and promotes them to cross-platform behavior driven by --gpu_threading. - When --gpu_threading is false (the default), this puts GPU tasks and tests together in the same GPU enclave. They all run serially. - When --gpu_threading is true, both the tests and the tasks run totally independently, just like the thread-safe CPU-bound work. BUG=skia:3255 Review URL: https://codereview.chromium.org/847273005
* Easy DM TODO: LazyDecodeBitmap does not help (or hinder).Gravatar mtklein2015-01-21
| | | | | | BUG=skia:3255 Review URL: https://codereview.chromium.org/859303003
* Move sync code to include/, switch from using platform define to a proxy ↵Gravatar mtklein2015-01-21
| | | | | | | | | | | | | | header in core/ This fixes two problems: 1) #include SK_SOME_DEFINE doesn't work well for all our clients. 2) Things in include/ are #including things in src/, which we don't like. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/862983002
* SkPDFCanonGravatar halcanary2015-01-21
| | | | | | | | | | | | | | | | | SkPDFCanon's fields and methods will eventually become part of SkPDFDocument/SkDocument_PDF. For now, it exists as a singleton to preflight that transition. This replaces three global arrays in SkPDFFont, SkPDFShader, and SkPDFGraphicsContext. This code is still thread-unsafe (http://skbug.com/2683), but moving this functionality into SkPDFDocument will fix that. This CL does not change pdf output from either GMs or SKPs. This change also simplifies some code around the SkPDFCanon methods. BUG=skia:2683 Review URL: https://codereview.chromium.org/842253003
* Move SkFontMgr and SkFontStyle impls to own cpp.Gravatar bungeman2015-01-20
| | | | | | | | | SkFontMgr and SkFontStyle implementations are currently burried in the old SkFontHost.cpp file. Move these implementations to their own file so that the implementations are easier to find, and to make clearer that SkFontHost.cpp needs to be removed. Review URL: https://codereview.chromium.org/799533004
* Revert "Revert "delete old things!""Gravatar bsalomon2015-01-20
| | | | | | | | | This reverts commit 8b4489b6e696ce4b1abbffa9b2cbd0d3bfdeb387. Delete gm and other unused files TBR=mtklien@google.com Review URL: https://codereview.chromium.org/856103002
* Revert of remove unused SkAvoidXfermode (patchset #2 id:20001 of ↵Gravatar scroggo2015-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/860583002/) Reason for revert: Breaking Android framework build, which still uses AvoidXfermode. (failure shown here: https://android-build.storage.googleapis.com/builds/git_master-skia-linux-razor-userdebug/1689202/565b76b4bd8cc2ffd5aeb37e524f6a35e9b8791995d6e8c719a3a6d83aece936/logs/build_error.log?Signature=lHYyiconR%2BoTzY9ILAKlaUm6nFnpJQPTI4XUei1ZccBRyz6PxspCNvYCDO5za92yZSoy9refHT7uh2Hxlxew1ZBePxKCp2nnwJB7a%2B403kiHMHHawjecsbPnTE9QNNO8XMoqAjujcAplorhwsIBZYOCxb%2Bo5010BCfzTd%2F8GFa8%3D&Expires=1421764644&GoogleAccessId=701025073339-mqn0q2nvir9iurm6q5d00tdv7blbgvjr%40developer.gserviceaccount.com) Here is the Java class that uses it: https://cs.corp.google.com/#android/frameworks/base/graphics/java/android/graphics/AvoidXfermode.java&sq=package:android It has been deprecated. The glue code (which actually references the Skia file) is here: https://cs.corp.google.com/#android/frameworks/base/core/jni/android/graphics/Xfermode.cpp&q=Xfermode.cpp&sq=package:android Mike suggested we move the implementation into Android, which is fine with me. Original issue's description: > remove unused SkAvoidXfermode > > BUG=skia: > TBR= > NOTRY=True > > Committed: https://skia.googlesource.com/skia/+/2d02df7a9a50217dac8c1d11681832a927ed79ce TBR=bsalomon@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/822953003
* YUV planes cacheGravatar sugoi2015-01-19
| | | | | | | | | | - Added new classes to contain YUV planes of memory, along with the associated data. - Used these classes in load_yuv_texture() to enable YUV planes caching - Added a unit test for the new cache BUG=450021 Review URL: https://codereview.chromium.org/851273003
* remove dead headerGravatar reed2015-01-18
| | | | | | | | | BUG=skia: TBR= NOTRY=True NOTREECHECKS=True Review URL: https://codereview.chromium.org/858813002
* remove unused SkAvoidXfermodeGravatar reed2015-01-18
| | | | | | | | BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/860583002
* remove dead code for scalar typeGravatar reed2015-01-18
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/855273003
* tool --help alphabetizes command line flagsGravatar halcanary2015-01-18
| | | | Review URL: https://codereview.chromium.org/854193003
* Revert "delete old things!"Gravatar Brian Salomon2015-01-16
| | | | | | | | | | | | This reverts commit 15b125d40122e966bd723d23e82c3224b1da4898. NOTREECHECKS=true original change breaks android tree BUG=skia: Review URL: https://codereview.chromium.org/848073005
* delete old things!Gravatar bsalomon2015-01-16
| | | | | | NOTREECHECKS=true Review URL: https://codereview.chromium.org/855003006
* turn back on gpu testsGravatar mtklein2015-01-15
| | | | | | | | NOTREECHECKS=true BUG=skia:3255 Review URL: https://codereview.chromium.org/817573004
* Sketch DM refactor.Gravatar mtklein2015-01-15
| | | | | | | | | | | | | | | | | | | BUG=skia:3255 I think this supports everything DM used to, but has completely refactored how it works to fit the design in the bug. Configs like "tiles-gpu" are automatically wired up. I wouldn't suggest looking at this as a diff. There's just a bunch of deleted files, a few new files, and one new file that shares a name with a deleted file (DM.cpp). NOTREECHECKS=true Committed: https://skia.googlesource.com/skia/+/709d2c3e5062c5b57f91273bfc11a751f5b2bb88 Review URL: https://codereview.chromium.org/788243008
* Move XferEffects class to GrCustomXfermode fileGravatar egdaniel2015-01-15
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/844913003
* Revert of Sketch DM refactor. (patchset #45 id:850001 of ↵Gravatar mtklein2015-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/788243008/) Reason for revert: plenty of data Original issue's description: > Sketch DM refactor. > > BUG=skia:3255 > > > I think this supports everything DM used to, but has completely refactored how > it works to fit the design in the bug. > > Configs like "tiles-gpu" are automatically wired up. > > I wouldn't suggest looking at this as a diff. There's just a bunch of deleted > files, a few new files, and one new file that shares a name with a deleted file > (DM.cpp). > > NOTREECHECKS=true > > Committed: https://skia.googlesource.com/skia/+/709d2c3e5062c5b57f91273bfc11a751f5b2bb88 TBR=bsalomon@google.com,mtklein@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:3255 Review URL: https://codereview.chromium.org/853883004
* Sketch DM refactor.Gravatar mtklein2015-01-15
| | | | | | | | | | | | | | | | | BUG=skia:3255 I think this supports everything DM used to, but has completely refactored how it works to fit the design in the bug. Configs like "tiles-gpu" are automatically wired up. I wouldn't suggest looking at this as a diff. There's just a bunch of deleted files, a few new files, and one new file that shares a name with a deleted file (DM.cpp). NOTREECHECKS=true Review URL: https://codereview.chromium.org/788243008
* Use device-space stroke width for SkDraw::drawRect() quick-rejectGravatar fmalita2015-01-15
| | | | | | | | | | The stroke width needs to be CTM-adjusted when applied to device space rects. BUG=skia:3313 R=reed@google.com Review URL: https://codereview.chromium.org/801353008
* add sample for filter qualityGravatar reed2015-01-14
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/788163007
* Move Gpu ArithmeticMode xfer effect to _gpu files.Gravatar egdaniel2015-01-14
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/827163004
* Add repro GM for GPU clipped-AA vs. non-AA drawRect discrepancyGravatar robertphillips2015-01-14
| | | | | | | | | | In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. BUG=423834 Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff Review URL: https://codereview.chromium.org/839883003
* delete the dreaded TransitionViewGravatar reed2015-01-13
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/850843002
* Move most of the transform logic into the primitive processorsGravatar joshualitt2015-01-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/822423004
* Revert of Fix GPU clipped-AA vs. non-AA drawRect discrepancy (patchset #2 ↵Gravatar robertphillips2015-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/839883003/) Reason for revert: This CL introduces rendering conflicts with hairlines (i.e., the hairlines get overwritten). These conflicts are particularly visible on the following GMs (for the Ubuntu and Android gpu configs): coloremoji & complexclip2_rrect_bw Original issue's description: > Fix GPU clipped-AA vs. non-AA drawRect discrepancy > > In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff TBR=bsalomon@google.com,jvanverth@google.com NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/847033002
* Fix GPU clipped-AA vs. non-AA drawRect discrepancyGravatar robertphillips2015-01-12
| | | | | | | | In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. BUG=423834 Review URL: https://codereview.chromium.org/839883003
* add stroke params to c apiGravatar reed2015-01-10
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/848553002
* Remove SkTileGrid (except for TileGridInfo).Gravatar mtklein2015-01-09
| | | | | | | | TBR=reed@google.com BUG=skia:3085 Review URL: https://codereview.chromium.org/845623002
* remove unneeded flagsGravatar reed2015-01-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/842203002
* remove flags that are now in chrome's SkUserConfig.hGravatar reed2015-01-08
| | | | | | | | | to land after https://codereview.chromium.org/844783002/ BUG=skia: TBR= Review URL: https://codereview.chromium.org/843683007