Cycles: Add an AVX kernel for CPU rendering.

* AVX is available on Intel Sandy Bridge and newer and AMD Bulldozer and newer.
* We don't use dedicated AVX intrinsics yet, but gcc auto vectorization gives a 3% performance improvement for Caminandes. Tested on an i5-3570, Linux x64.
* No change for Windows yet, MSVC 2008 does not support AVX.

Reviewed by: brecht
Differential Revision: https://developer.blender.org/D216
This commit is contained in:
Thomas Dinges
2014-01-16 17:04:11 +01:00
parent 7c6d52eb07
commit de28a4d4b2
9 changed files with 180 additions and 1 deletions

View File

@@ -198,6 +198,12 @@ bool system_cpu_support_sse41()
CPUCapabilities& caps = system_cpu_capabilities();
return caps.sse && caps.sse2 && caps.sse3 && caps.ssse3 && caps.sse41;
}
bool system_cpu_support_avx()
{
CPUCapabilities& caps = system_cpu_capabilities();
return caps.sse && caps.sse2 && caps.sse3 && caps.ssse3 && caps.sse41 && caps.avx;
}
#else
bool system_cpu_support_sse2()
@@ -210,6 +216,16 @@ bool system_cpu_support_sse3()
return false;
}
bool system_cpu_support_sse41()
{
return false;
}
bool system_cpu_support_avx()
{
return false;
}
#endif
CCL_NAMESPACE_END