Optimize linear<->sRGB conversion for SSE2 processors
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 5 May 2016 17:25:08 +0000 (19:25 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 5 May 2016 17:46:06 +0000 (19:46 +0200)
commit88b72925d0ef59dc0d67df05f4ad74742175653c
tree20e13cd7be9c3c56c242da71b6e61e32e331619b
parentbb6fbc64ae2bf4d1cba4a4b6f1831e6df58e2e6b
Optimize linear<->sRGB conversion for SSE2 processors

Using SSE2 intrinsics when available for this kind of conversions.

It's not totally accurate, but accurate enough for the purposes where
we're using direct colorspace conversion by-passing OCIO.

Partially based on code from Cycles, partially based on other online
articles:

  https://stackoverflow.com/questions/6475373/optimizations-for-pow-with-const-non-integer-exponent

Makes projection painting on hi-res float textures smoother.

This commit also enables global SSE2 in Blender. It shouldn't
bring any regressions in supported hardware (we require SSE2 since
2.64 now), but should keep an eye on because compilers might have
some bugs with that (unlikely, but possible).
CMakeLists.txt
source/blender/blenlib/intern/math_base_inline.c
source/blender/blenlib/intern/math_color_inline.c
source/blender/compositor/CMakeLists.txt