aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
Commit message (Collapse)AuthorAge
* first cut at making iOS workGravatar caryclark@google.com2012-09-20
| | | | | | | | | | | | | Replace __arm__ with SK_CPU_ARM add support for iOS simulator and device fix const warning in iOSSampleApp update gyp files https://code.google.com/p/skia/issues/detail?id=900 tracks fixing missing arm assembly Review URL: https://codereview.appspot.com/6552045 git-svn-id: http://skia.googlecode.com/svn/trunk@5606 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream clank: fix build on platforms (Clang/ARM) that don't support 'optimize'Gravatar tomhudson@google.com2012-09-04
| | | | | | | | http://codereview.appspot.com/6496082/ git-svn-id: http://skia.googlecode.com/svn/trunk@5385 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r5364 (Update ARM and NEON optimizations for S32A_Opaque_BlitRow32)Gravatar robertphillips@google.com2012-09-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5378 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update ARM and NEON optimizations for S32A_Opaque_BlitRow32.Gravatar djsollen@google.com2012-08-31
| | | | | | | | These patches replace those written by ARM with ones provided by NVidia. Review URL: https://codereview.appspot.com/6465075 git-svn-id: http://skia.googlecode.com/svn/trunk@5364 2bbb7eff-a529-9590-31e7-b0007b416f81
* The UBFX instruction isn't available on ARMv6; use LSL/LSR or UXTB.Gravatar george@mozilla.com2012-08-30
| | | | | | Review URL: https://codereview.appspot.com/6476072 git-svn-id: http://skia.googlecode.com/svn/trunk@5349 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Clang build on Android.Gravatar digit@google.com2012-08-28
| | | | | | | | | The optimize attribute is not supported with Clang/ARM r161757. This warning, turned into an error, is emitted by -Wattribute (implicitly set). Review URL: https://codereview.appspot.com/6489045 git-svn-id: http://skia.googlecode.com/svn/trunk@5316 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part I of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6485054 git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
* Force opaque in SkBlendLCD16Opaque_SSE2 to match SkBlendLCD16.Gravatar bungeman@google.com2012-08-21
| | | | | | | https://codereview.appspot.com/6460123/ git-svn-id: http://skia.googlecode.com/svn/trunk@5218 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add check for EDSP to the 565 opaque blitter.Gravatar djsollen@google.com2012-08-21
| | | | | | Review URL: https://codereview.appspot.com/6464082 git-svn-id: http://skia.googlecode.com/svn/trunk@5212 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream ARM 565 optimizations from AOSP.Gravatar djsollen@google.com2012-08-21
| | | | | | Review URL: https://codereview.appspot.com/6461101 git-svn-id: http://skia.googlecode.com/svn/trunk@5211 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up most clang warnings outside animator/Gravatar tomhudson@google.com2012-08-14
| | | | | | | | http://codereview.appspot.com/6464058/ git-svn-id: http://skia.googlecode.com/svn/trunk@5079 2bbb7eff-a529-9590-31e7-b0007b416f81
* arm: dynamic NEON support for SkBitmapProcState functions.Gravatar digit@google.com2012-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch does the following: - Move the NEON-specific code from src/core/SkBitmapProcState_filter.h to src/opts/SkBitmapProcState_filter_neon.h - Implement the NEON-specific functions in the new source file src/opts/SkBitmapProcState_opts_arm_neon.cpp, added to the "opts_neon" static library target. All functions now use the _neon suffix, even in full-NEON builds. - Move most of the content of src/core/SkBitmapProcState.cpp to a new header: src/core/SkBitmapProcState_procs.h This header is included by two source files: src/core/SkBitmapProcState.cpp, to define the regular functions. src/opts/SkBitmapProcState_opts_arm_neon.cpp to define NEON ones. This is to deal with the fact that all NEON functions now use the _neon suffix, even in SK_ARM_NEON_IS_ALWAYS mode, and to be able to include the same header twice in the SK_ARM_NEON_IS_DYNAMIC case. Review URL: https://codereview.appspot.com/6449117 git-svn-id: http://skia.googlecode.com/svn/trunk@5055 2bbb7eff-a529-9590-31e7-b0007b416f81
* arm: dynamic NEON support for SkBlitRow_opts_arm.cppGravatar digit@google.com2012-08-08
| | | | | | | | | This patch moves all NEON-specific code from the source src/opts/SkBlitRow_opts_arm.cpp into a new file that is built as part of the 'opts_arm_neon' static library. Review URL: https://codereview.appspot.com/6449110 git-svn-id: http://skia.googlecode.com/svn/trunk@5016 2bbb7eff-a529-9590-31e7-b0007b416f81
* #include "SkMathPriv.h"Gravatar reed@google.com2012-08-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4999 2bbb7eff-a529-9590-31e7-b0007b416f81
* arm: dynamic NEON support for SkBitmapProcState matrix operations.Gravatar digit@google.com2012-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements dynamic ARM NEON support for the functions implemented by src/core/SkBitmapProcState_matrixProcs.cpp. - Because the SkBitmapProcState_matrix_{clamp,repeat}.h headers are NEON-specific, they are renamed with a _neon.h suffix, and moved to src/opts/ (from src/core/) - Add a new file src/opts/SkBitmapProcState_matrixProcs_neon.cpp which implements the NEON code paths for all builds, and add it to the 'opts_neon' static library. - Modify SkBitmapProcState_matrixProcs.cpp to select the right code-path depending on our build configuration. Note that in the case where 'arm_neon == 1', we do not embed regular ARM code paths in the final binary. Only 'arm_neon_optional == 1' builds will contain both regular and NEON code paths at the same time. Note that there doesn't seem to be a simple way to put the NEON-specific selection from that currently is in SkBitmapProcState_matrixProcs.cpp into src/opts/. Doing so would require much more drastic restructuring. This is also true of the other SkBitmapProcState source files that will be touched in a future patch. Review URL: https://codereview.appspot.com/6453065 git-svn-id: http://skia.googlecode.com/svn/trunk@4888 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove outdated test code for TEST_SRC_ALPHAGravatar reed@google.com2012-07-30
| | | | | | Review URL: https://codereview.appspot.com/6457056 git-svn-id: http://skia.googlecode.com/svn/trunk@4840 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support for ARM without EDSP and ARMv6+Gravatar george@mozilla.com2012-07-27
| | | | | | | | Original Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=751814 Review URL: https://codereview.appspot.com/6405065 git-svn-id: http://skia.googlecode.com/svn/trunk@4818 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 4799-4801 -- red and blue are reversed on windows and linuxGravatar reed@google.com2012-07-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4803 2bbb7eff-a529-9590-31e7-b0007b416f81
* use SK_RESTRICT instead of __restrict__Gravatar reed@google.com2012-07-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4801 2bbb7eff-a529-9590-31e7-b0007b416f81
* use intptr_t to cast from ptr to int for masking low bitsGravatar reed@google.com2012-07-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4800 2bbb7eff-a529-9590-31e7-b0007b416f81
* land http://codereview.appspot.com/6327044/Gravatar reed@google.com2012-07-27
| | | | | | | | SSE optimization for 565 pixel format -- by Lei git-svn-id: http://skia.googlecode.com/svn/trunk@4799 2bbb7eff-a529-9590-31e7-b0007b416f81
* Windows compiler complaint cleanupGravatar robertphillips@google.com2012-07-26
| | | | | | | | http://codereview.appspot.com/6441055/ git-svn-id: http://skia.googlecode.com/svn/trunk@4796 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implementing Color32 functions for Neon platforms.Gravatar borenet@google.com2012-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | Besides the raw processing improvement provided by Neon, the code uses memory preteches (pld) which seem to improve performance greatly when dealing with very large counts. This was tested using bench where color32 accounts for the majority of the workload: bench -match rects_1 -config 8888 -repeat 500 -forceBlend 1 (the forceBlend is there so that the Color32 code does not go through the special cases where alpha == 0xFF as it would transform color32 into a sk_memset32. Numbers averaged over 3 runs: bench name | Before | Neon, no pld | Neon with pld | full boost rrects_1 | 153.9 | 128.3 | 92 | 1.66x rects_1_stroke_4| 32.8 | 31.4 | 28.45 | 1.15x rects_1 | 125.35 | 97.2 | 63.59 | 1.97x Credits: various googletv team members. Committed on behalf of evannier. Review URL: http://codereview.appspot.com/5569077/ git-svn-id: http://skia.googlecode.com/svn/trunk@4779 2bbb7eff-a529-9590-31e7-b0007b416f81
* land http://codereview.appspot.com/6353063/ by LeiGravatar reed@google.com2012-07-24
| | | | | | | | | | | | | | | | | | | | | | | optimizations for D16 using SSE2 skia_bench -config 565 -match bitmap_8888_scale_filter -forceFilter 1 -repeat 30 The result I got on Android platform was below: w/o this optimization routine: D/skia ( 1868): running bench [640 480] bitmap_8888_scale_filter D/skia ( 1868): 565: cmsecs = 286.50 w/ with optimization: D/skia ( 1463): running bench [640 480] bitmap_8888_scale_filter D/skia ( 1463): 565: cmsecs = 186.80 The net gain is 34.80%. git-svn-id: http://skia.googlecode.com/svn/trunk@4729 2bbb7eff-a529-9590-31e7-b0007b416f81
* land http://codereview.appspot.com/6325044/ by LeiGravatar reed@google.com2012-07-16
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4622 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix SkBlendLCD16_SSE2 for non ARGB platforms.Gravatar bungeman@google.com2012-07-09
| | | | | | | http://codereview.appspot.com/6356062/ git-svn-id: http://skia.googlecode.com/svn/trunk@4481 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings on Mac in src/optsGravatar caryclark@google.com2012-06-06
| | | | | | | | | | | | | | | | | | Fix these class of warnings: - unused functions - unused locals - sign mismatch - missing function prototypes - missing newline at end of file - 64 to 32 bit truncation The changes prefer to link in dead code in the debug build with 'if (false)' than to comment it out, but trivial cases are commented out or sometimes deleted if it appears to be a copy/paste error. Review URL: https://codereview.appspot.com/6303045 git-svn-id: http://skia.googlecode.com/svn/trunk@4184 2bbb7eff-a529-9590-31e7-b0007b416f81
* arm: First step towards dynamic NEON support.Gravatar digit@google.com2012-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds minimal support for dynamic ARM NEON support, i.e. the ability to probe the CPU at runtime for NEON and provide alternate code paths when it is available. - Add include/core/SkUtilsArm.h, which declares a few helper macros (e.g. SK_NEON_ARM_IS_DYNAMIC), plus the handy function 'sk_cpu_arm_has_neon()' which returns true if the target CPU supports the ARM NEON instruction set. Note that the header is in include/core/ because it will have to be included from NEON-specific code under src/code/ It would probably be more logical to put it under include/opts/ instead, but this would require moving all the NEON-specific stuff under src/code/ into src/opts/, which is not trivial due to the way the code is currently architected. - Add src/core/SkUtilsArm.cpp which implements 'sk_cpu_arm_has_neon' for ARM-based Linux systems, only when SK_NEON_ARM_IS_DYNAMIC is true. (For other cases, 'sk_cpu_arm_has_neon' is an inline function that returns a constant 'true' or 'false' value). There is no user-level accessible CPUID instruction on ARM, so do all CPU feature probing by parsing /proc/cpuinfo. This is Linux-specific. For Debug build types, the CPU probing result is printed to the Android log (or Linux command-line) for easier debugging. - Create a new 'opts_neon' target (static library) which shall contain all the NEON-specific code paths for the library. This is necessary because -mfpu=neon impacts also non-scalar code. Just like with -mssse3 on x86, we can't build the rest of the library with this flag. Note that for now, we only include memset16_neon and memset32_neon in this library. - Modify opts_check_arm.cpp to implement SK_ARM_NEON_IS_DYNAMIC properly. Compared to a 'xoom' build, the only difference is the use of NEON-optimized memset16/32 functions. Later patches will move more NEON-specific code paths to 'opts_neon'. Review URL: https://codereview.appspot.com/6247058 git-svn-id: http://skia.googlecode.com/svn/trunk@4069 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use intrinsics instead of inline assembly for detecting CPU ID & SSE2/3 supportGravatar tomhudson@google.com2012-05-17
| | | | | | | | | | | on 64-bit builds in MS Visual Studio 2010. Original code provided by jianliang79. http://code.google.com/p/skia/issues/detail?id=600 git-svn-id: http://skia.googlecode.com/svn/trunk@3991 2bbb7eff-a529-9590-31e7-b0007b416f81
* Disable SSSE3 for Android x86 *ONLY*.Gravatar tomhudson@google.com2012-05-16
| | | | | | | | | | | | First attempt to do this inadvertently turned it off for everyone; watch performance numbers. New benchmarks from r3963 should give us coverage. http://codereview.appspot.com/6198069/ git-svn-id: http://skia.googlecode.com/svn/trunk@3970 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reactivate SSSE3 optimizations, undoing r3770.Gravatar tomhudson@google.com2012-05-10
| | | | | | | | | | | | This will break Android x86 clients; they will need to work around, and hopefully can resubmit a patch to do so that doesn't disable SSSE3 on all other platforms (20-30% performance penalty). http://codereview.appspot.com/6201070/ git-svn-id: http://skia.googlecode.com/svn/trunk@3901 2bbb7eff-a529-9590-31e7-b0007b416f81
* Switch memset.arm.S to unified syntax.Gravatar djsollen@google.com2012-05-02
| | | | | | https://codereview.appspot.com/6108046/ git-svn-id: http://skia.googlecode.com/svn/trunk@3816 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow building on platforms with SSE2 but not SSSE3 by adding an #ifdef.Gravatar tomhudson@google.com2012-04-27
| | | | | | | | | | | Patch from Wei James (wistoch@gmail). http://codereview.appspot.com/6124050/ git-svn-id: http://skia.googlecode.com/svn/trunk@3770 2bbb7eff-a529-9590-31e7-b0007b416f81
* Landing arm patch from contributor.Gravatar djsollen@google.com2012-03-29
| | | | | | http://codereview.appspot.com/5649055 git-svn-id: http://skia.googlecode.com/svn/trunk@3541 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Android, too, by providing cross-platform NULL version of new factory.Gravatar tomhudson@google.com2012-03-19
| | | | | | | | Another cowboy build fix. git-svn-id: http://skia.googlecode.com/svn/trunk@3425 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove stale #include.Gravatar tomhudson@google.com2012-03-19
| | | | | | | | Unreviewed cowboy commit to fix build. git-svn-id: http://skia.googlecode.com/svn/trunk@3424 2bbb7eff-a529-9590-31e7-b0007b416f81
* (SSE2) acceleration for rectangular opaque erases.Gravatar tomhudson@google.com2012-03-19
| | | | | | | | | | 15% speedup for rectangles < 31 px wide, 5% for larger. http://codereview.appspot.com/5843050/ git-svn-id: http://skia.googlecode.com/svn/trunk@3423 2bbb7eff-a529-9590-31e7-b0007b416f81
* need to pack the two values into a 32bit longGravatar mike@reedtribe.org2012-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3377 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSSE3 code for drawing rotated bitmaps; produces 25-30% speedup.Gravatar tomhudson@google.com2012-03-06
| | | | | | | | | | Courtesy of Jin Yang. http://codereview.appspot.com/5704055/ git-svn-id: http://skia.googlecode.com/svn/trunk@3331 2bbb7eff-a529-9590-31e7-b0007b416f81
* Improve SSE2 code for Blending BlitRow functions, producing 10% speedup.Gravatar tomhudson@google.com2012-02-28
| | | | | | | | | | Courtesy of Evan Nier. http://codereview.appspot.com/5518045/ git-svn-id: http://skia.googlecode.com/svn/trunk@3273 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 version of ClampX_ClampY_{no}filter_affine, courtesy of Jin Yang.Gravatar tomhudson@google.com2012-02-28
| | | | | | | | | | Speeds up drawing rotated bitmaps by 20-30%. http://codereview.appspot.com/5700076/ git-svn-id: http://skia.googlecode.com/svn/trunk@3272 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 version of ClampX_ClampY_{no}filter_scale; yields 10-20% speedup inGravatar tomhudson@google.com2012-02-22
| | | | | | | | | | | bitmap_8888 benchmarks on top of last week's SSSE3 patch. Thanks to Jin Yang. http://codereview.appspot.com/5685055/ git-svn-id: http://skia.googlecode.com/svn/trunk@3227 2bbb7eff-a529-9590-31e7-b0007b416f81
* Merge changes from the android repo upstream to SkiaGravatar djsollen@google.com2012-02-15
| | | | | | Review URL: https://codereview.appspot.com/5545070 git-svn-id: http://skia.googlecode.com/svn/trunk@3199 2bbb7eff-a529-9590-31e7-b0007b416f81
* Attempt to make Windows and Mac compilers happy after breakage in r3193.Gravatar tomhudson@google.com2012-02-14
| | | | | | | | Verified that changes in parameter signatures git-svn-id: http://skia.googlecode.com/svn/trunk@3194 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SSSE3 acceleration for S32_{opaque,alpha}_D32_filter_DX; should yieldGravatar tomhudson@google.com2012-02-14
| | | | | | | | | | | | | 25% speedup on 64b architectures, something smaller but still valuable on 32b. Adds new files, breaking client gyps. http://codereview.appspot.com/5515044/ git-svn-id: http://skia.googlecode.com/svn/trunk@3193 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 version of blit_lcd16, courtesy of Jin Yang.Gravatar tomhudson@google.com2012-02-14
| | | | | | | | | | | | | | | Yields 25-30% speedup on Windows (32b), 4-7% on Linux (64b, less register pressure), not invoked on Mac (lcd text is 32b instead of 16b). Followup: GDI system settings on Windows can suppress LCD text for small fonts, interfering with our benchmarks. (http://code.google.com/p/skia/issues/detail?id=483) http://codereview.appspot.com/5617058/ git-svn-id: http://skia.googlecode.com/svn/trunk@3189 2bbb7eff-a529-9590-31e7-b0007b416f81
* Prevent the memset16 ARM opt from failing when count is 0.Gravatar djsollen@google.com2012-02-13
| | | | | | Review URL: http://codereview.appspot.com/5639051 git-svn-id: http://skia.googlecode.com/svn/trunk@3173 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add ARM optimizations to the build.Gravatar djsollen@google.com2012-01-09
| | | | | | | | Also had to fix a problem in the ARM memset code that was causing some tests and bench to fail. Review URL: http://codereview.appspot.com/5522052 git-svn-id: http://skia.googlecode.com/svn/trunk@2989 2bbb7eff-a529-9590-31e7-b0007b416f81
* update ARM platform procs for blitmaskGravatar reed@google.com2011-11-16
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2695 2bbb7eff-a529-9590-31e7-b0007b416f81
* support blitMask+shader natively (1.75x faster for AA, and now we can supportGravatar reed@google.com2011-11-15
| | | | | | | | LCD at all with a shader.) git-svn-id: http://skia.googlecode.com/svn/trunk@2689 2bbb7eff-a529-9590-31e7-b0007b416f81