Go to file
commit-bot@chromium.org 54299654e9 Xfermode: SSE2 implementation of a number of simple transfer modes
These modes share some common code and not very complex, so group them
together. This CL yields about 50% performance improvement on desktop
i7-3770. Here are the data:
before:
   Xfermode_Screen   8888:  cmsecs =     30.25   565:  cmsecs =     46.81
 Xfermode_Modulate   8888:  cmsecs =     22.48   565:  cmsecs =     40.06
     Xfermode_Plus   8888:  cmsecs =     21.04   565:  cmsecs =     37.51
      Xfermode_Xor   8888:  cmsecs =     37.18   565:  cmsecs =     52.53
  Xfermode_DstATop   8888:  cmsecs =     28.97   565:  cmsecs =     46.42
  Xfermode_SrcATop   8888:  cmsecs =     29.74   565:  cmsecs =     46.25
   Xfermode_DstOut   8888:  cmsecs =      5.34   565:  cmsecs =     24.53
   Xfermode_SrcOut   8888:  cmsecs =     12.25   565:  cmsecs =     24.39
    Xfermode_DstIn   8888:  cmsecs =      5.30   565:  cmsecs =     24.50
    Xfermode_SrcIn   8888:  cmsecs =     12.05   565:  cmsecs =     25.40
  Xfermode_DstOver   8888:  cmsecs =     12.45   565:  cmsecs =      0.15
  Xfermode_SrcOver   8888:  cmsecs =      2.68   565:  cmsecs =      4.42
after:
   Xfermode_Screen   8888:  cmsecs =     13.68   565:  cmsecs =     21.73
 Xfermode_Modulate   8888:  cmsecs =     13.25   565:  cmsecs =     20.97
     Xfermode_Plus   8888:  cmsecs =      9.77   565:  cmsecs =     16.71
      Xfermode_Xor   8888:  cmsecs =     17.64   565:  cmsecs =     25.62
  Xfermode_DstATop   8888:  cmsecs =     15.99   565:  cmsecs =     23.74
  Xfermode_SrcATop   8888:  cmsecs =     15.69   565:  cmsecs =     23.40
   Xfermode_DstOut   8888:  cmsecs =      4.77   565:  cmsecs =     11.85
   Xfermode_SrcOut   8888:  cmsecs =      4.98   565:  cmsecs =     11.84
    Xfermode_DstIn   8888:  cmsecs =      4.68   565:  cmsecs =     11.72
    Xfermode_SrcIn   8888:  cmsecs =      4.93   565:  cmsecs =     11.79
  Xfermode_DstOver   8888:  cmsecs =      5.04   565:  cmsecs =      0.15
  Xfermode_SrcOver   8888:  cmsecs =      2.69   565:  cmsecs =      4.42

BUG=skia:
R=mtklein@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/232793002

git-svn-id: http://skia.googlecode.com/svn/trunk@14176 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:54:22 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Sanitizing source files in Housekeeper-Nightly 2014-04-14 03:04:57 +00:00
debugger split SkPictureRecorder out of SkPicture 2014-04-13 19:09:42 +00:00
dm Sanitizing source files in Housekeeper-Nightly 2014-04-14 03:04:57 +00:00
docs Add a sample doc in markdown format. 2014-01-24 19:25:39 +00:00
expectations Adding image-surface to ignored-tests.txt 2014-04-13 18:01:01 +00:00
experimental Add design for sql storage, implementation of db that stores the data, not retrieving yet. 2014-04-14 14:54:07 +00:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm split SkPictureRecorder out of SkPicture 2014-04-13 19:09:42 +00:00
gyp More removal of duplicate framework defines. 2014-04-14 14:53:58 +00:00
include Sanitizing source files in Housekeeper-Nightly 2014-04-14 03:04:57 +00:00
platform_tools Revert of remove sprintf (https://codereview.chromium.org/230413005/) 2014-04-09 23:38:57 +00:00
resources Revert of Properly set alpha type in webp decode. (https://codereview.chromium.org/223893002/) 2014-04-03 21:47:15 +00:00
samplecode Sanitizing source files in Housekeeper-Nightly 2014-04-14 03:04:57 +00:00
src Xfermode: SSE2 implementation of a number of simple transfer modes 2014-04-14 14:54:22 +00:00
tests split SkPictureRecorder out of SkPicture 2014-04-13 19:09:42 +00:00
third_party Drop executable flag from headers so that they can be packaged 2014-03-11 19:55:51 +00:00
tools Sanitizing source files in Housekeeper-Nightly 2014-04-14 03:04:57 +00:00
trybots_to_run/chrome Deleting the hardcoded list of compile bots in trybots_to_run. 2013-04-09 11:59:42 +00:00
.gitignore add some .gitignores related to gm and tools 2014-04-11 14:49:50 +00:00
AUTHORS Fixed Skia compilation error with strict clang. 2014-04-07 13:12:47 +00:00
codereview.settings Add BUG_PREFIX to codereview.settings 2014-01-14 21:19:21 +00:00
CONTRIBUTING Add CONTRIBUTING file 2014-01-13 15:06:26 +00:00
CQ_COMMITTERS Add skia.buildbots@gmail.com to CQ_COMMITTERS 2014-04-03 22:21:08 +00:00
DEPS Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
Doxyfile update Doxygen config file to include gpu directory in api generation 2014-03-07 16:20:36 +00:00
gyp_skia change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE Manually update copyright notices in files that defied the automated process 2011-07-28 14:24:55 +00:00
make.bat Make make.bat and gyp_skia work with VS 2012. 2013-05-07 19:31:20 +00:00
make.py change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
Makefile change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
Makefile.old Replace GR_*_BUILD by their SK_BUILD_FOR_* equivalents. 2013-09-25 20:57:51 +00:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Check if the issue owner is in the AUTHORS file in PRESUBMIT.py 2014-02-03 14:18:32 +00:00
README whitespace commit to trigger buildbot 2011-07-15 14:11:58 +00:00
README.chromium add root files from chrome 2013-08-13 19:11:15 +00:00
skia.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
whitespace.txt Whitespace change to trigger rebuilds after master migration 2014-03-31 13:42:10 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at http://code.google.com/p/skia/wiki/DocRoot