diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2014-04-02 13:57:10 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2014-04-02 13:59:43 +0400 |
commit | 6cd717e0a3c6151f6dc578dcfc27cc269b172c99 (patch) | |
tree | 230c3642f8bc1743fa0544e6bd21ef56e273c6cd /source/blender/render | |
parent | 35747ee3d54765a05d7594ee52fdcd564464b18f (diff) |
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!
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/render_result.c | 13 |
1 files changed, 9 insertions, 4 deletions
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); } |