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:
authorBastien Montagne <montagne29@wanadoo.fr>2014-04-02 13:57:10 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2014-04-02 13:59:43 +0400
commit6cd717e0a3c6151f6dc578dcfc27cc269b172c99 (patch)
tree230c3642f8bc1743fa0544e6bd21ef56e273c6cd /source/blender/render/intern/source/render_result.c
parent35747ee3d54765a05d7594ee52fdcd564464b18f (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/intern/source/render_result.c')
-rw-r--r--source/blender/render/intern/source/render_result.c13
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);
}