forked from bartvdbraak/blender
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:
parent
1f1245a92a
commit
eb2e64afa5
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user