fix: unbuffered stdout for live cinematic frame progress
Two fixes for frame progress not appearing in frontend: 1. Added flush=True to all print() calls in cinematic_render.py 2. Set PYTHONUNBUFFERED=1 in subprocess environment Without these, Python buffers stdout inside Blender, so all frame progress lines arrive in a batch after the process exits instead of streaming line-by-line during rendering. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -849,10 +849,10 @@ def main():
|
||||
bpy.ops.render.render(write_still=True)
|
||||
elapsed = _time.time() - _render_start
|
||||
fps_so_far = frame / elapsed
|
||||
print(f"[cinematic_render] Frame {frame}/{frame_count} -- {elapsed:.1f}s elapsed ({fps_so_far:.2f} fps)")
|
||||
print(f"[cinematic_render] Frame {frame}/{frame_count} -- {elapsed:.1f}s elapsed ({fps_so_far:.2f} fps)", flush=True)
|
||||
|
||||
total = _time.time() - _render_start
|
||||
print(f"[cinematic_render] Cinematic render complete: {frame_count} frames in {total:.1f}s ({frame_count/total:.2f} fps avg)")
|
||||
print(f"[cinematic_render] Cinematic render complete: {frame_count} frames in {total:.1f}s ({frame_count/total:.2f} fps avg)", flush=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user