From 6cd717e0a3c6151f6dc578dcfc27cc269b172c99 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 2 Apr 2014 11:57:10 +0200 Subject: Fix T39521: Render with two Blender processes on same computer: compression issues? We need to salt temp exr filenames with pid, else several instances of Blender rendering the same scene on same machine and using "Save Buffers" option would use the same files! --- source/blender/render/intern/source/render_result.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c index f27bd3a8292..f63deff04ae 100644 --- a/source/blender/render/intern/source/render_result.c +++ b/source/blender/render/intern/source/render_result.c @@ -41,6 +41,8 @@ #include "BLI_path_util.h" #include "BLI_rect.h" #include "BLI_string.h" +#include "BLI_system.h" +#include BLI_SYSTEM_PID_H #include "BLI_threads.h" #include "BKE_image.h" @@ -1023,10 +1025,13 @@ void render_result_exr_file_path(Scene *scene, const char *layname, int sample, char name[FILE_MAXFILE + MAX_ID_NAME + MAX_ID_NAME + 100], fi[FILE_MAXFILE]; BLI_split_file_part(G.main->name, fi, sizeof(fi)); - if (sample == 0) - BLI_snprintf(name, sizeof(name), "%s_%s_%s.exr", fi, scene->id.name + 2, layname); - else - BLI_snprintf(name, sizeof(name), "%s_%s_%s%d.exr", fi, scene->id.name + 2, layname, sample); + if (sample == 0) { + BLI_snprintf(name, sizeof(name), "%s_%s_%s_%d.exr", fi, scene->id.name + 2, layname, abs(getpid())); + } + else { + BLI_snprintf(name, sizeof(name), "%s_%s_%s%d_%d.exr", fi, scene->id.name + 2, layname, sample, + abs(getpid())); + } BLI_make_file_string("/", filepath, BLI_temporary_dir(), name); } -- cgit v1.2.3