diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-01-19 22:01:48 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-01-19 22:01:48 +0300 |
commit | 4d0bb7de64bd4142e89a7410c3ea2686178048a3 (patch) | |
tree | 27a1b7389e1ff31211656caf902b74a8bbb9d98e | |
parent | efe1af3d11a930b539718cc566049f07316427ff (diff) | |
parent | 075def8fbda709e9db9086e9f2800a56103eb35d (diff) |
Merge remote-tracking branch 'origin/master' into blender2.8
-rw-r--r-- | intern/cycles/device/device_cpu.cpp | 10 | ||||
-rw-r--r-- | intern/cycles/util/util_debug.h | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image.c | 2 | ||||
-rw-r--r-- | source/blender/blenlib/intern/math_base_inline.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_text/text_draw.c | 4 |
5 files changed, 21 insertions, 8 deletions
diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 0783230ef14..6b6b3432446 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -86,35 +86,35 @@ public: (void)kernel_avx; (void)kernel_avx2; #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX2 - if(DebugFlags().cpu.avx2 && system_cpu_support_avx2()) { + if(DebugFlags().cpu.has_avx2() && system_cpu_support_avx2()) { architecture_name = "AVX2"; kernel = kernel_avx2; } else #endif #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX - if(DebugFlags().cpu.avx && system_cpu_support_avx()) { + if(DebugFlags().cpu.has_avx() && system_cpu_support_avx()) { architecture_name = "AVX"; kernel = kernel_avx; } else #endif #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 - if(DebugFlags().cpu.sse41 && system_cpu_support_sse41()) { + if(DebugFlags().cpu.has_sse41() && system_cpu_support_sse41()) { architecture_name = "SSE4.1"; kernel = kernel_sse41; } else #endif #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE3 - if(DebugFlags().cpu.sse3 && system_cpu_support_sse3()) { + if(DebugFlags().cpu.has_sse3() && system_cpu_support_sse3()) { architecture_name = "SSE3"; kernel = kernel_sse3; } else #endif #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE2 - if(DebugFlags().cpu.sse2 && system_cpu_support_sse2()) { + if(DebugFlags().cpu.has_sse2() && system_cpu_support_sse2()) { architecture_name = "SSE2"; kernel = kernel_sse2; } diff --git a/intern/cycles/util/util_debug.h b/intern/cycles/util/util_debug.h index 632c6ae35e7..ec38cd373ba 100644 --- a/intern/cycles/util/util_debug.h +++ b/intern/cycles/util/util_debug.h @@ -45,6 +45,15 @@ public: bool sse3; bool sse2; + /* Check functions to see whether instructions up to the given one + * are allowed for use. + */ + bool has_avx2() { return has_avx() && avx2; } + bool has_avx() { return has_sse41() && avx; } + bool has_sse41() { return has_sse3() && sse41; } + bool has_sse3() { return has_sse2() && sse3; } + bool has_sse2() { return sse2; } + /* Whether QBVH usage is allowed or not. */ bool qbvh; diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index dbb596b1cd6..d720dc41abf 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1696,7 +1696,7 @@ static void stampdata(Scene *scene, Object *camera, StampData *stamp_data, int d int digits = 1; if (scene->r.efra > 9) - digits = 1 + (int) log10(scene->r.efra); + digits = integer_digits_i(scene->r.efra); BLI_snprintf(fmtstr, sizeof(fmtstr), do_prefix ? "Frame %%0%di" : "%%0%di", digits); BLI_snprintf(stamp_data->frame, sizeof(stamp_data->frame), fmtstr, scene->r.cfra); diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c index 9202efce7b4..a0c13e14e72 100644 --- a/source/blender/blenlib/intern/math_base_inline.c +++ b/source/blender/blenlib/intern/math_base_inline.c @@ -397,6 +397,10 @@ MINLINE int integer_digits_d(const double d) return (d == 0.0) ? 0 : (int)floor(log10(fabs(d))) + 1; } +MINLINE int integer_digits_i(const int i) +{ + return (int)log10(i) + 1; +} /* Internal helpers for SSE2 implementation. * diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c index fcb675abcf2..62fde49cade 100644 --- a/source/blender/editors/space_text/text_draw.c +++ b/source/blender/editors/space_text/text_draw.c @@ -596,7 +596,7 @@ static void text_update_drawcache(SpaceText *st, ARegion *ar) drawcache->total_lines = 0; if (st->showlinenrs) - st->linenrs_tot = (int)floor(log10((float)nlines)) + 1; + st->linenrs_tot = integer_digits_i(nlines); while (line) { if (drawcache->valid_head) { /* we're inside valid head lines */ @@ -630,7 +630,7 @@ static void text_update_drawcache(SpaceText *st, ARegion *ar) nlines = BLI_listbase_count(&txt->lines); if (st->showlinenrs) - st->linenrs_tot = (int)floor(log10((float)nlines)) + 1; + st->linenrs_tot = integer_digits_i(nlines); } drawcache->total_lines = nlines; |