summaryrefslogtreecommitdiff
path: root/opts/opts_check_SSE2.cpp
diff options
context:
space:
mode:
authortomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-02-14 16:01:15 +0000
committertomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-02-14 16:01:15 +0000
commit40d908d434dcd277aab3d2885f417f8b060cabfd (patch)
tree78ee6f2aec45c7313de11c530ab9bcfac1e981ca /opts/opts_check_SSE2.cpp
parentb0d59bfdfe5bd495be786cdc8e6928fe63cc4c62 (diff)
downloadsrc-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.cpp12
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) {