aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
Commit message (Collapse)AuthorAge
* 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
* rename/refactor in preparation for supporting accelerated blits of shader-outputGravatar reed@google.com2011-11-14
| | | | | | | | through a mask. git-svn-id: http://skia.googlecode.com/svn/trunk@2684 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update files to use SK_BUILD_FOR_ANDROID.Gravatar djsollen@google.com2011-11-08
| | | | | | | | This CL also removes any unecessary references to the ANDROID definition. Review URL: http://codereview.appspot.com/5354049 git-svn-id: http://skia.googlecode.com/svn/trunk@2629 2bbb7eff-a529-9590-31e7-b0007b416f81
* don't blend with zero in colorproc (forgot to return after memcpy check).Gravatar reed@google.com2011-10-25
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2527 2bbb7eff-a529-9590-31e7-b0007b416f81
* don't mention the neon functions if no neon is availableGravatar reed@google.com2011-10-21
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2514 2bbb7eff-a529-9590-31e7-b0007b416f81
* move LCD blits into opts, so they can have assembly versionsGravatar reed@google.com2011-10-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2484 2bbb7eff-a529-9590-31e7-b0007b416f81
* separate SkBlitMask decl into its own headerGravatar reed@google.com2011-10-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2461 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove bogus (probably copy/paste err) assert. Alpha need not be opaque here,Gravatar reed@google.com2011-08-09
| | | | | | | | in fact it is expected (though not required) to be non-opaque. git-svn-id: http://skia.googlecode.com/svn/trunk@2081 2bbb7eff-a529-9590-31e7-b0007b416f81
* Automatic update of all copyright notices to reflect new license terms.Gravatar epoger@google.com2011-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have manually examined all of these diffs and restored a few files that seem to require manual adjustment. The following files still need to be modified manually, in a separate CL: android_sample/SampleApp/AndroidManifest.xml android_sample/SampleApp/res/layout/layout.xml android_sample/SampleApp/res/menu/sample.xml android_sample/SampleApp/res/values/strings.xml android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java experimental/CiCarbonSampleMain.c experimental/CocoaDebugger/main.m experimental/FileReaderApp/main.m experimental/SimpleCocoaApp/main.m experimental/iOSSampleApp/Shared/SkAlertPrompt.h experimental/iOSSampleApp/Shared/SkAlertPrompt.m experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig gpu/src/android/GrGLDefaultInterface_android.cpp gyp/common.gypi gyp_skia include/ports/SkHarfBuzzFont.h include/views/SkOSWindow_wxwidgets.h make.bat make.py src/opts/memset.arm.S src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp src/ports/SkXMLParser_empty.cpp src/utils/ios/SkImageDecoder_iOS.mm src/utils/ios/SkOSFile_iOS.mm src/utils/ios/SkStream_NSData.mm tests/FillPathTest.cpp Review URL: http://codereview.appspot.com/4816058 git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
* Manually update copyright notices in files that defied the automated processGravatar epoger@google.com2011-07-28
| | | | | | | | | | | | | | | | | | | used in http://codereview.appspot.com/4816058/ ('Automatic update of all copyright notices to reflect new license terms.') Note that the following files have been left alone, because they name copyright holders outside of Google. Please let me know if we need to update these files: experimental/CiCarbonSampleMain.c src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp Review URL: http://codereview.appspot.com/4806054 git-svn-id: http://skia.googlecode.com/svn/trunk@1981 2bbb7eff-a529-9590-31e7-b0007b416f81
* re-enable SSE2 blitmask procs, only excluding if we're black (in which caseGravatar reed@google.com2011-07-07
| | | | | | | | the protable version is still faster) git-svn-id: http://skia.googlecode.com/svn/trunk@1819 2bbb7eff-a529-9590-31e7-b0007b416f81
* delete all old (non-Gyp) buildfilesGravatar epoger@google.com2011-06-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1583 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix arm compile problem on Lucid.Gravatar vandebo@chromium.org2011-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Jeff Bailey <jeffbailey@google.com> These functions on ARM both are doing something weird where, when optimization is not enable, there aren't enough low registers available for the compiler to handle the asm. My ARM-fu is pretty weak, so I have forced the functions to -O1, which allows them to compile. It would be reasonable to set them to O2 as I expect anyone debugging this will just tweak it as appropriate. The error that this is solving: third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp: In function 'void SI8_D16_nofilter_DX_arm(const SkBitmapProcState&, const uint32_t*, int, uint16_t*)': third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp:101:24: error: can't find a register in class 'LO_REGS' while reloading 'asm' third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp:101:24: error: 'asm' operand has impossible constraints However, it has to be set on both functions, as after the first error is cleared, it triggers a second time. Review URL: http://codereview.appspot.com/4452044 git-svn-id: http://skia.googlecode.com/svn/trunk@1228 2bbb7eff-a529-9590-31e7-b0007b416f81
* http://codereview.appspot.com/4365051/Gravatar reed@google.com2011-04-27
| | | | | | | | | | Unnecessary code duplication for returning arm/neon version of memset . Removed the redundant file and merged the functionality into opts_check_arm.cpp which will return arm or neon version of memset based on build flag git-svn-id: http://skia.googlecode.com/svn/trunk@1197 2bbb7eff-a529-9590-31e7-b0007b416f81
* Correct blitmask procs to recognize that we pass them an SkColor, and if theyGravatar reed@google.com2011-03-09
| | | | | | | | | | want a SkPMColor, they need to call SkPreMultiplyColor() Add Opaque and Black optimizations for blitmask_d32 git-svn-id: http://skia.googlecode.com/svn/trunk@911 2bbb7eff-a529-9590-31e7-b0007b416f81
* http://codereview.appspot.com/3980041/Gravatar reed@google.com2011-03-09
| | | | | | | | | Add blitmask procs (with optional platform acceleration) patch by yaojie.yan git-svn-id: http://skia.googlecode.com/svn/trunk@910 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SSE2 opt files to xcodeGravatar reed@google.com2011-01-17
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@697 2bbb7eff-a529-9590-31e7-b0007b416f81
* Unreviewed; ARM build fix.Gravatar senorblanco@chromium.org2010-12-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@635 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 optimizations for 32bit Color operation.Gravatar senorblanco@chromium.org2010-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [Patch from weiwei.li@intel.com] SSE2 optimization has been added by Stephen White before, this improves the skia performance on SSE2-supporting platform. (please refer to below issues) Issue 171055: More SSE2ification Issue 157141: More SSE2ification Issue 150060: minor tweaks to SSE2 code for -fPIC Issue 144072: SSE2 optimizations for 32bit blending blitters This CL implements SSE2 optimizations for the 32bit Color operation. Like above issues, it uses CPUID to detect for SSE2 and changes the platform procs at runtime as well. The 32bit Color operation is heavily used on Chrome HTML5 canvas operations. Take Microsoft IE test drives Pulsating Bubbles as example (http://ie.microsoft.com/testdrive/Performance/PulsatingBubbles/Default.xhtml), if running this cases on Chrome, the overhead of 32bit Color operation is about 40~50%. So this CL will make skia performance more better, and also make Chrome HTML5 canvas performance more better. Additional, this CL has passed the skia bench & tests validation, the result is pretty good. We also apply this CL to the latest chromium, and re-run Microsoft IE test drives Pulsating Bubbles, the performance is improved by almost 9~10%. git-svn-id: http://skia.googlecode.com/svn/trunk@633 2bbb7eff-a529-9590-31e7-b0007b416f81
* S32A_Blend_BlitRow32: for ARM without NEONGravatar agl@chromium.org2010-09-10
| | | | | | | | | | | | | | The S32A_Blend_BlitRow32 function was written and unrolled in ARM assembly to improve the rendering performance on ARM cores lacking NEON. Added in SkBlitRow_opts_arm.cpp. Performance improvement about ~18% on micro benchmarking. Patch-by: Vassillis git-svn-id: http://skia.googlecode.com/svn/trunk@598 2bbb7eff-a529-9590-31e7-b0007b416f81
* Write S32A_Opaque_BlitRow32 function in ARM assembly.Gravatar agl@chromium.org2010-08-17
| | | | | | | | | | | | (Improves the rendering performance on ARM cores lacking NEON.) Performance improvement about ~9% on Peacekeeper rendering benchmarks. Patch by: Vasileios Laganakos (ARM) http://codereview.appspot.com/1873044/ git-svn-id: http://skia.googlecode.com/svn/trunk@595 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add versions of memset16() and memset32() in ARM assembly.Gravatar agl@chromium.org2010-08-13
| | | | | | | | | | | In benchmarks here on Cortex A9 processors, this code runs 25-30% faster than the C equivalent. Patch by: Steve McIntyre (ARM) http://codereview.appspot.com/1973042 git-svn-id: http://skia.googlecode.com/svn/trunk@594 2bbb7eff-a529-9590-31e7-b0007b416f81
* http://codereview.appspot.com/1706045/showGravatar reed@android.com2010-06-24
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@583 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Implementing S32A_Opaque_BlitRow32 using v7 neon instructions."Gravatar agl@chromium.org2010-06-18
| | | | | | Broke ARM build. git-svn-id: http://skia.googlecode.com/svn/trunk@582 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "We extract a sub-function from MAKENAME(_nofilter_DX), only dealing ↵Gravatar agl@chromium.org2010-06-18
| | | | | | | | with reading" Broke ARM build. git-svn-id: http://skia.googlecode.com/svn/trunk@581 2bbb7eff-a529-9590-31e7-b0007b416f81
* We extract a sub-function from MAKENAME(_nofilter_DX), only dealing with readingGravatar agl@chromium.org2010-06-16
| | | | | | | | | | | | | | | | | one index array, indexing into src array and output to dst array. Because of the scatter-gather nature, we can not do much burst/batch reading/writing to improve the performance. We tried Neon vector instructions. We also tried the hand optimize the compiler generated assembly (non-neon) code. The latter seems to have better gain. About 6% improvements, not much though... Patch-by: Xin Qi of codeaurora.org http://codereview.appspot.com/1127042/show git-svn-id: http://skia.googlecode.com/svn/trunk@579 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implementing S32A_Opaque_BlitRow32 using v7 neon instructions.Gravatar agl@chromium.org2010-06-16
| | | | | | | | | | | | | Taking the advantage of 16 channels of each QualWord register. Also using the software pipelining to scatter the loads/stores among vector operations. Got roughly 70% improvements on simulation environments. http://codereview.appspot.com/1148042/show Patch-by: XinQi of codeaurora.org git-svn-id: http://skia.googlecode.com/svn/trunk@578 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add Neon versions of memset32 and memset16Gravatar agl@chromium.org2010-06-04
| | | | | | | | | | | Patch by pgalizia (of codeaurora.org) (Note: I don't read ARM and I didn't manage to find a reviewer for the ARM assembly code so this is landing somewhat unreviewed.) http://codereview.appspot.com/1157045/show git-svn-id: http://skia.googlecode.com/svn/trunk@573 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix internal compiler error on ARM.Gravatar agl@chromium.org2010-04-26
| | | | | | | For the moment, at least, switch back to the old Neon code because the new code is triggering internal compiler errors in Chromium ARM. git-svn-id: http://skia.googlecode.com/svn/trunk@559 2bbb7eff-a529-9590-31e7-b0007b416f81
* ray fixes neon for dither and blendGravatar reed@android.com2010-04-09
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@537 2bbb7eff-a529-9590-31e7-b0007b416f81
* Disable 32A->565+dither neon, since it gives different results between itsGravatar reed@android.com2010-03-12
| | | | | | | | | 8-at-a-time loop (neon), and its < 8 residual loop. If we can unify the output, I would love to reinstate this. git-svn-id: http://skia.googlecode.com/svn/trunk@528 2bbb7eff-a529-9590-31e7-b0007b416f81
* disable 32A->565 + alpha for now, until it handles src-alpha==0 as a noopGravatar reed@android.com2010-03-09
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@525 2bbb7eff-a529-9590-31e7-b0007b416f81