aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
Commit message (Collapse)AuthorAge
* 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
* ICE fixes for armGravatar reed@android.com2010-01-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@474 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2-ified S32_alpha_D32_filter_DX (refactoring to come). Also shaved a fewGravatar senorblanco@chromium.org2009-12-10
| | | | | | | | | | cycles off the SSE2 blends. Review URL: http://codereview.appspot.com/171055 git-svn-id: http://skia.googlecode.com/svn/trunk@456 2bbb7eff-a529-9590-31e7-b0007b416f81
* Debug build fix (unreviewed).Gravatar senorblanco@chromium.org2009-12-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@449 2bbb7eff-a529-9590-31e7-b0007b416f81
* More SSE2 optimizations. This CL implements an SSE2 version of ↵Gravatar senorblanco@chromium.org2009-11-30
| | | | | | | | | | S32_bitmap_D32_filter_DX, and uses aligned loads and stores for dst, in all blending. Review URL: http://codereview.appspot.com/157141 git-svn-id: http://skia.googlecode.com/svn/trunk@448 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build fix for WIN64 (unreviewed).Gravatar senorblanco@chromium.org2009-11-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@439 2bbb7eff-a529-9590-31e7-b0007b416f81
* Exclude Android-only cpu-features.h from non-Android builds.Gravatar agl@chromium.org2009-11-19
| | | | | | | | This is needed when building Chromium for ARM. Patch by Joel Stanley <joel@chromium.org> git-svn-id: http://skia.googlecode.com/svn/trunk@435 2bbb7eff-a529-9590-31e7-b0007b416f81
* More SSE2-ification; fix for gcc -msse2.Gravatar senorblanco@chromium.org2009-11-16
| | | | | | | | Review URL: http://codereview.appspot.com/154163 git-svn-id: http://skia.googlecode.com/svn/trunk@428 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove const modifiers on function return types (unneeded, and caused an errorGravatar reed@android.com2009-11-13
| | | | | | | | on some gccs). git-svn-id: http://skia.googlecode.com/svn/trunk@425 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for gcc -fPIC build.Gravatar senorblanco@chromium.org2009-11-09
| | | | | | | | http://codereview.appspot.com/150060 git-svn-id: http://skia.googlecode.com/svn/trunk@421 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 optimizations for 32bit blending blitters.Gravatar senorblanco@chromium.org2009-11-04
| | | | | | | | | | | | | | | This CL implements SSE2 optimizations for 3 of the 32bit blending blitters. It uses CPUID to detect for SSE2 at runtime. In order to accomodate runtime detection, it changes the platform procs from static arrays to static functions. It also includes an implementation of SkTime for Win32. http://codereview.appspot.com/144072 git-svn-id: http://skia.googlecode.com/svn/trunk@418 2bbb7eff-a529-9590-31e7-b0007b416f81
* add shaderproc32 for index bitmaps. neon version of 32->16+ditherGravatar reed@android.com2009-10-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@408 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix S32A_D565_Blend_neonGravatar reed@android.com2009-10-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@405 2bbb7eff-a529-9590-31e7-b0007b416f81
* disable one proc until we fix its handling of src-alpha==0Gravatar reed@android.com2009-10-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@394 2bbb7eff-a529-9590-31e7-b0007b416f81
* oops, make it actually compile with correct headersGravatar reed@android.com2009-10-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@392 2bbb7eff-a529-9590-31e7-b0007b416f81
* add -forceDither option to bench (it is tristate)Gravatar reed@android.com2009-10-19
| | | | | | | | update neon optimizations from motorola git-svn-id: http://skia.googlecode.com/svn/trunk@391 2bbb7eff-a529-9590-31e7-b0007b416f81
* update for blitrow_d32 procsGravatar reed@android.com2009-09-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@367 2bbb7eff-a529-9590-31e7-b0007b416f81
* add BlitRow procs for 32->32, to allow for neon and other optimizations.Gravatar reed@android.com2009-09-23
| | | | | | | | | | | call these new procs in (nearly) all the places we had inlined loops before. In once instance (blitter_argb32::blitAntiH) we get different results by a tiny bit. The new code is more accurate, and exactly inline with all of the other like-minded blits, so I think the change is good going forward. git-svn-id: http://skia.googlecode.com/svn/trunk@366 2bbb7eff-a529-9590-31e7-b0007b416f81
* more neon work:Gravatar reed@android.com2009-08-07
| | | | | | | | | - remove neon-specific functions that were not faster than the C version - move the neon filter function to its own header, so it could be use in more places git-svn-id: http://skia.googlecode.com/svn/trunk@309 2bbb7eff-a529-9590-31e7-b0007b416f81
* add proper includes for arm optimizationsGravatar reed@android.com2009-08-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@306 2bbb7eff-a529-9590-31e7-b0007b416f81
* arm/neon optimizations for bitmap shaderGravatar reed@android.com2009-08-03
| | | | | | | | original version by ARM LIMITED 2009 git-svn-id: http://skia.googlecode.com/svn/trunk@303 2bbb7eff-a529-9590-31e7-b0007b416f81
* add platformProcs() porting functionGravatar reed@android.com2009-08-03
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@301 2bbb7eff-a529-9590-31e7-b0007b416f81