summaryrefslogtreecommitdiffstats
path: root/libass/x86
Commit message (Collapse)AuthorAgeFilesLines
* Make assembly position-independentDr.Smile2021-04-214-29/+188
|
* rasterizer: improve assemblyDr.Smile2021-04-211-187/+149
|
* rasterizer: make C and assembly functions bitwise identicalDr.Smile2021-04-211-8/+9
| | | | Fixes https://github.com/libass/libass/issues/475
* blur: slightly improve assemblyDr.Smile2021-04-211-34/+28
|
* Make argument order uniform between bitmap functionsDr.Smile2021-04-212-37/+36
|
* Rewrite be_blur() assemblyDr.Smile2021-04-211-222/+202
| | | | | | | | | | | | | Change list: - Fixed differences from C version introduced in f23b9ed64bd4ccf249c686616dd3f51a69d285dc. - Common macro for SSE2 and AVX2 versions. - Reduced register usage and efficient 32-bit version. - Full width memory operations instead of half-register. - Vectorized handling of width tails instead of byte/word loops. - Vectorized initial population of temporary buffer and final line fill. - Interleaved layout of temporary buffer. - Great speedup overall.
* Rewrite mul_bitmaps() assemblyDr.Smile2021-04-211-120/+64
| | | | | | | | | | Change list: - No special handling of unaligned case. - Common macro for SSE2 and AVX2 versions, AVX2 has got significantly faster. - Reduced register usage and efficient 32-bit version. - Full width memory operations instead of half-register. - Vectorized handling of width tails instead of byte loops.
* Rewrite add/sub_bitmaps() assemblyDr.Smile2021-04-211-136/+51
| | | | | | | | | | Change list: - No special handling of unaligned case (removed in previous commit). - Common macro for both add_bitmaps() and sub_bitmaps(). - Reduced register usage and efficient 32-bit version. - add_bitmaps() no longer rely on zero padding. - Vectorized handling of width tails (instead of byte loop in sub_bitmaps(), great speedup for non-empty tails).
* x86: update x86incRyan Lucia2021-02-232-263/+538
| | | | This should fix the warnings introduced with nasm 2.15
* Simplify blur algorithmDr.Smile2020-10-092-644/+271
| | | | | This commit removes prefilters altogether at the cost of enlarged main filter kernel.
* Update names in copyright headersrcombs2020-05-294-4/+4
|
* x86/cpuid: fix missing includercombs2020-05-261-0/+2
|
* x86: update x86inc.asmRodger Combs2017-09-051-497/+599
|
* x86: asm adjustments for nasm compatibilityRodger Combs2017-09-057-63/+62
|
* Fix crash when the OS doesn't support AVX2Rodger Combs2015-07-272-3/+20
|
* Implement cascade gaussian blurDr.Smile2015-07-043-71/+1512
| | | | | | | | | | That's complete version with SSE2/AVX2 assembly. Should be much faster than old algorithm even in pure C. Algorithm description can be found in this article (PDF): https://github.com/MrSmile/CascadeBlur/releases Close #9
* Switch to virtual function tableDr.Smile2015-06-263-142/+0
| | | | | | | | | | Use one pointer to table of functions instead of scattered bunch of function pointers. Different versions of these tables can be constructed in compile time. Also, bitmap memory alignment now depends only on SSE2/AVX2 support and is constant for every width. That simplifies code without noticeable performance penalty.
* Improve rasterizer commentsDr.Smile2015-06-261-20/+21
|
* Skip memset() when using internal rasterizerDr.Smile2015-02-092-7/+16
|
* Flip coordinate system in rasterizerDr.Smile2014-11-231-34/+34
|
* Implement fast quad-tree rasterizer in C and x86/SSE2/AVX2Dr.Smile2014-04-292-0/+972
| | | | Signed-off-by: Rodger Combs <rodger.combs@gmail.com>
* Remove dirty pixels from ASM be_blur outputOleg Oshmyan2014-03-131-6/+8
| | | | | | | | A loop initializer was missing, so output started one row too early. A loop condition check was missing, so output sometimes stopped one column too late. Also remove a couple of dead assignments.
* Remove incorrect declaration of HAVE_ALIGNED_STACK11rcombs2014-03-091-1/+0
|
* Remove unnecessary instruction11rcombs2014-02-161-3/+0
|
* Added XMM register count in be_blur; should help #4811rcombs2014-02-161-2/+2
|
* Use lower mm registers in be_blur.asm11rcombs2014-02-161-8/+8
|
* Added license headers in ASM files11rcombs2014-02-163-0/+48
|
* Added x86 ASM functions11rcombs2014-01-257-0/+2121