diff options
author | tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-02-14 16:01:15 +0000 |
---|---|---|
committer | tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-02-14 16:01:15 +0000 |
commit | 40d908d434dcd277aab3d2885f417f8b060cabfd (patch) | |
tree | 78ee6f2aec45c7313de11c530ab9bcfac1e981ca /opts/opts_check_SSE2.cpp | |
parent | b0d59bfdfe5bd495be786cdc8e6928fe63cc4c62 (diff) | |
download | src-40d908d434dcd277aab3d2885f417f8b060cabfd.tar.gz |
SSE2 version of blit_lcd16, courtesy of Jin Yang.
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/src@3189 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'opts/opts_check_SSE2.cpp')
-rw-r--r-- | opts/opts_check_SSE2.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/opts/opts_check_SSE2.cpp b/opts/opts_check_SSE2.cpp index 00497c9c..157d8cc4 100644 --- a/opts/opts_check_SSE2.cpp +++ b/opts/opts_check_SSE2.cpp @@ -126,6 +126,18 @@ SkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkBitmap::Config dstConfig, return proc; } +SkBlitMask::BlitLCD16RowProc SkBlitMask::PlatformBlitRowProcs16(bool isOpaque) { + if (cachedHasSSE2()) { + if (isOpaque) { + return SkBlitLCD16OpaqueRow_SSE2; + } else { + return SkBlitLCD16Row_SSE2; + } + } else { + return NULL; + } + +} SkBlitMask::RowProc SkBlitMask::PlatformRowProcs(SkBitmap::Config dstConfig, SkMask::Format maskFormat, RowFlags flags) { |