Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2018-01-19 22:01:48 +0300
committerDalai Felinto <dfelinto@gmail.com>2018-01-19 22:01:48 +0300
commit4d0bb7de64bd4142e89a7410c3ea2686178048a3 (patch)
tree27a1b7389e1ff31211656caf902b74a8bbb9d98e
parentefe1af3d11a930b539718cc566049f07316427ff (diff)
parent075def8fbda709e9db9086e9f2800a56103eb35d (diff)
Merge remote-tracking branch 'origin/master' into blender2.8
-rw-r--r--intern/cycles/device/device_cpu.cpp10
-rw-r--r--intern/cycles/util/util_debug.h9
-rw-r--r--source/blender/blenkernel/intern/image.c2
-rw-r--r--source/blender/blenlib/intern/math_base_inline.c4
-rw-r--r--source/blender/editors/space_text/text_draw.c4
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;