diff options
Diffstat (limited to 'intern/cycles/util')
-rw-r--r-- | intern/cycles/util/util_system.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp index 7206455debd..4a88ef6de76 100644 --- a/intern/cycles/util/util_system.cpp +++ b/intern/cycles/util/util_system.cpp @@ -127,6 +127,7 @@ struct CPUCapabilities { bool sse42; bool sse4a; bool avx; + bool f16c; bool avx2; bool xop; bool fma3; @@ -202,6 +203,8 @@ static CPUCapabilities& system_cpu_capabilities() caps.avx = (xcr_feature_mask & 0x6) == 0x6; } + caps.f16c = (result[2] & ((int)1 << 29)) != 0; + __cpuid(result, 0x00000007); caps.bmi1 = (result[1] & ((int)1 << 3)) != 0; caps.bmi2 = (result[1] & ((int)1 << 8)) != 0; @@ -242,7 +245,7 @@ bool system_cpu_support_avx() bool system_cpu_support_avx2() { CPUCapabilities& caps = system_cpu_capabilities(); - return caps.sse && caps.sse2 && caps.sse3 && caps.ssse3 && caps.sse41 && caps.avx && caps.avx2 && caps.fma3 && caps.bmi1 && caps.bmi2; + return caps.sse && caps.sse2 && caps.sse3 && caps.ssse3 && caps.sse41 && caps.avx && caps.f16c && caps.avx2 && caps.fma3 && caps.bmi1 && caps.bmi2; } #else |