Commit graph

6 commits

Author SHA1 Message Date
Mira Grudzinska
8362ddda74 sw_engine: avxRasterTranslucentRle implemented 2021-11-15 11:16:17 +09:00
Mira Grudzinska
8ef928fcfc sw_engine avx: removing not portable variable type
__m256i_u is an internal gcc/clang type, which can not be used by msvc.
To ensure the portability of the lib a proper intrinsic is used.
2021-09-22 12:41:57 +09:00
Hermet Park
d6193dddd0 Revert "sw_engine avx: the not aligned memory separated in the rasterRGBA32 func"
This reverts commit dafc229a75.
2021-09-03 11:08:40 +09:00
Mira Grudzinska
dafc229a75 sw_engine avx: the not aligned memory separated in the rasterRGBA32 func
The aligned and not aligned memory parts handled separately.
This gives around 10% of the performance increase (tested on i7-8700 CPU)
2021-09-03 11:06:59 +09:00
Mira Grudzinska
54b328b1a9 sw_engine avx: addad ALPHA_BLEND and avxRasterTranslucentRect functions
Both functions implemented using 128-bit registers.
avxRasterTranslucentRect is around 5 times faster than cRasterTranslucentRect (i7-8700 CPU - Coffe Lake)
2021-08-28 15:55:50 +09:00
Hermet Park
0e98809f15 sw_engine raster: code refactoring.
Separate simd implementation by files to maintain them easier.

Now we have avx, c, neon version implementation base,
we can add implementations to them.
2021-08-05 10:58:48 +09:00