netrender: bugfix to make thumbnails work correctly when running master through the UI (not in background) [context is borked in that case]. Also show number of threads settings in slave settings (reusing render setting) and force that setting when rendering jobs.

This commit is contained in:
Martin Poirier 2010-01-08 17:52:21 +00:00
parent 1f1245a92a
commit eb2e64afa5
4 changed files with 11 additions and 6 deletions

@ -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

@ -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])

@ -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:

@ -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"