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!
This commit is contained in:
Bastien Montagne 2014-04-02 11:57:10 +02:00
parent 35747ee3d5
commit 6cd717e0a3
Notes: blender-bot 2023-02-14 10:52:08 +01:00
Referenced by issue #39521, Render with two Blender processes on same computer: compression issues?
1 changed files with 9 additions and 4 deletions

View File

@ -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);
}