aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp/opts.gyp
Commit message (Collapse)AuthorAge
* 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
* Separate target architecture type and width into separate variables.Gravatar djsollen@google.com2012-06-28
| | | | | | | Also add support for building mac in 64 bit mode. Review URL: https://codereview.appspot.com/6343050 git-svn-id: http://skia.googlecode.com/svn/trunk@4385 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
* Revert 3538.Gravatar bungeman@google.com2012-03-29
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3539 2bbb7eff-a529-9590-31e7-b0007b416f81
* Correct dependencies in gyp files.Gravatar bungeman@google.com2012-03-29
| | | | | | | http://codereview.appspot.com/5934044/ git-svn-id: http://skia.googlecode.com/svn/trunk@3538 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
* Make all gyp targets automatically include common.gypiGravatar epoger@google.com2012-03-16
| | | | | | | Do this, rather than including common.gypi explicitly in all our gyp files, so that gyp files we use but do not maintain (e.g., third_party/externals/libjpeg/libjpeg.gyp) will include common.gypi too. Review URL: https://codereview.appspot.com/5820068 git-svn-id: http://skia.googlecode.com/svn/trunk@3411 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change skia_target_arch != arm to skia_target_arch == x86 in gyp filesGravatar bsalomon@google.com2012-03-06
| | | | | | | | | | BUG= http://code.google.com/p/skia/issues/detail?id=478 Review URL: http://codereview.appspot.com/5757053/ git-svn-id: http://skia.googlecode.com/svn/trunk@3332 2bbb7eff-a529-9590-31e7-b0007b416f81
* hack to enable SSSE3 on MacsGravatar epoger@google.com2012-02-14
| | | | | | Review URL: https://codereview.appspot.com/5649091 git-svn-id: http://skia.googlecode.com/svn/trunk@3195 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
* 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
* Adding support to trunk for building Skia using the Android NDK.Gravatar djsollen@google.com2011-11-03
| | | | | | | | | | This CL depends on a subsequent CL to add the appropriate NDK toolchain and system sources to the skia repo. Review URL: http://codereview.appspot.com/5306089/ Review URL: http://codereview.appspot.com/5306089 git-svn-id: http://skia.googlecode.com/svn/trunk@2592 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create new 'skia_os' variable to replace use of 'OS' in most places.Gravatar epoger@google.com2011-07-01
| | | | | | | | http://codereview.appspot.com/4627085 git-svn-id: http://skia.googlecode.com/svn/trunk@1782 2bbb7eff-a529-9590-31e7-b0007b416f81
* combine target_defaults.gypi into common.gypiGravatar epoger@google.com2011-07-01
| | | | | | | | http://codereview.appspot.com/4654080 git-svn-id: http://skia.googlecode.com/svn/trunk@1780 2bbb7eff-a529-9590-31e7-b0007b416f81
* split skia.gyp into separate gypfile for each source dirGravatar epoger@google.com2011-05-31
see http://codereview.appspot.com/4527084/ Now, to build out/Debug/SampleApp on Linux, do the following: cd trunk/gyp rm -rf Makefile *mk *.Makefile out ./gyp_skia -fmake --ignore-environment "--toplevel-dir=$PWD" \ -Icommon.gypi "--depth=$PWD" SampleApp.gyp make git-svn-id: http://skia.googlecode.com/svn/trunk@1446 2bbb7eff-a529-9590-31e7-b0007b416f81