Commit Graph

12 Commits

Author SHA1 Message Date
Sebastian Frysztak 0f989add08 Pass blur strength from command line arguments 2017-02-15 12:01:08 +01:00
Sebastian Frysztak 3598cf19e8 Implement generic box blur 2017-02-15 11:22:06 +01:00
Sebastian Frysztak 6029c8e0b5 Clean up a bit. 2016-11-11 18:45:20 +01:00
Sebastian Frysztak 020af692e6 Remove AVX version. 2016-11-11 17:11:31 +01:00
Sebastian Frysztak e5e6368926 Remove SSSE3 version. 2016-11-11 16:46:53 +01:00
Sebastian Frysztak 4b58824e5e SSE2: don't use VEX prefix. 2016-11-05 12:30:22 +01:00
Sebastian Frysztak f06dc6cbc4 Add AVX version.
It relies on some SSE2 instructions, so performance gain is not that
huge (about 1.4x).
I experimented with 256-bit loads, but they turned out to be slower (at
least on Sandy Bridge).
2016-11-04 22:19:29 +01:00
Sebastian Frysztak 95c333cba5 SSSE3: use 16-bit weights.
Overall, I'm very happy with performance of this code, but not so much
with resulting image. It seems like integer approximations won't do.
I might remove this code altogether, so I didn't update comments.
2016-11-03 20:16:06 +01:00
Sebastian Frysztak 72aec87047 Add SSSE3-based blur implementation.
Calculations are done on integer, rather than floating point numbers,
so this implementation is not as accurate (but when scale factor is
reasonable enough, no artifacs are visible).
It is, however, faster by a factor of ~3.
2016-10-29 14:32:49 +02:00
Sebastian Frysztak fb5dbbe661 Add SSE2-optimized blur.
About 4-6 times faster than naive implementation.
2016-10-22 15:30:27 +02:00
Sebastian Frysztak ade9a20788 Isolate blur implementation to a function.
This will allow easier switching between naive/SSE2/AVX implementations.
2016-10-22 14:32:35 +02:00
Chris Guillott c3a95b86d6 add initial blur support
thanks to https://github.com/shiver/i3lock
2016-10-14 22:06:43 -04:00