diff --git a/release/scripts/io/netrender/client.py b/release/scripts/io/netrender/client.py index 877f4f85dec..01130907553 100644 --- a/release/scripts/io/netrender/client.py +++ b/release/scripts/io/netrender/client.py @@ -201,7 +201,7 @@ class NetworkRenderEngine(bpy.types.RenderEngine): def render_slave(self, scene): - slave.render_slave(self, scene.network_render) + slave.render_slave(self, scene.network_render, scene.render_data.threads) def render_client(self, scene): netsettings = scene.network_render diff --git a/release/scripts/io/netrender/master.py b/release/scripts/io/netrender/master.py index 3ff3758f66e..5c44a1d15a4 100644 --- a/release/scripts/io/netrender/master.py +++ b/release/scripts/io/netrender/master.py @@ -257,7 +257,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): sce.render_data.quality = 90 bpy.ops.image.open(path = job.save_path + "%04d" % frame_number + ".exr") img = bpy.data.images["%04d" % frame_number + ".exr"] - img.save(filename) + img.save(filename, scene = sce) try: process = subprocess.Popen(["convert", filename, "-resize", "300x300", filename]) diff --git a/release/scripts/io/netrender/slave.py b/release/scripts/io/netrender/slave.py index 10c26954784..4af35842910 100644 --- a/release/scripts/io/netrender/slave.py +++ b/release/scripts/io/netrender/slave.py @@ -88,7 +88,7 @@ def testFile(conn, job_id, slave_id, file_index, JOB_PREFIX, file_path, main_pat return job_full_path -def render_slave(engine, netsettings): +def render_slave(engine, netsettings, threads): timeout = 1 engine.update_stats("", "Network render node initiation") @@ -151,7 +151,7 @@ def render_slave(engine, netsettings): frame_args += ["-f", str(frame.number)] val = SetErrorMode() - process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-t", str(threads), "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) RestoreErrorMode(val) elif job.type == netrender.model.JOB_PROCESS: command = job.frames[0].command @@ -165,7 +165,7 @@ def render_slave(engine, netsettings): stdout = bytes() run_t = time.time() while not cancelled and process.poll() == None: - stdout += process.stdout.read(32) + stdout += process.stdout.read(1024) current_t = time.time() cancelled = engine.test_break() if current_t - run_t > CANCEL_POLL_SPEED: diff --git a/release/scripts/io/netrender/ui.py b/release/scripts/io/netrender/ui.py index 182f1be7428..2f4e9ea345d 100644 --- a/release/scripts/io/netrender/ui.py +++ b/release/scripts/io/netrender/ui.py @@ -136,10 +136,15 @@ class RENDER_PT_network_slave_settings(RenderButtonsPanel): layout = self.layout scene = context.scene + rd = scene.render_data netsettings = scene.network_render layout.prop(netsettings, "slave_clear") - + layout.label(text="Threads:") + layout.prop(rd, "threads_mode", expand=True) + sub = layout.column() + sub.enabled = rd.threads_mode == 'THREADS_FIXED' + sub.prop(rd, "threads") @rnaType class RENDER_PT_network_master_settings(RenderButtonsPanel): bl_label = "Master Settings"