[Bf-blender-cvs] [eecc426] master: Fix cycles standalone file saving not taking number of samples into account properly.

Brecht Van Lommel noreply at git.blender.org
Wed Apr 16 15:28:33 CEST 2014


Commit: eecc426d863d4a744ec97e36caf358cc9bc65422
Author: Brecht Van Lommel
Date:   Wed Apr 16 13:49:39 2014 +0200
https://developer.blender.org/rBeecc426d863d4a744ec97e36caf358cc9bc65422

Fix cycles standalone file saving not taking number of samples into account properly.

===================================================================

M	intern/cycles/render/session.cpp
M	intern/cycles/render/session.h

===================================================================

diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index fec4939..9cf7f49 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -102,7 +102,7 @@ Session::~Session()
 
 		display = new DisplayBuffer(device, false);
 		display->reset(device, buffers->params);
-		tonemap();
+		tonemap(params.samples);
 
 		progress.set_status("Writing Image", params.output_path);
 		display->write(device, params.output_path);
@@ -172,7 +172,7 @@ bool Session::draw_gpu(BufferParams& buffer_params, DeviceDrawParams& draw_param
 			 * only access GL buffers from the main thread */
 			if(gpu_need_tonemap) {
 				thread_scoped_lock buffers_lock(buffers_mutex);
-				tonemap();
+				tonemap(tile_manager.state.sample);
 				gpu_need_tonemap = false;
 				gpu_need_tonemap_cond.notify_all();
 			}
@@ -574,8 +574,8 @@ void Session::run_cpu()
 			}
 			else if(need_tonemap) {
 				/* tonemap only if we do not reset, we don't we don't
-				 * want to show the result of an incomplete sample*/
-				tonemap();
+				 * want to show the result of an incomplete sample */
+				tonemap(tile_manager.state.sample);
 			}
 
 			if(!device->error_message().empty())
@@ -841,7 +841,7 @@ void Session::path_trace()
 	device->task_add(task);
 }
 
-void Session::tonemap()
+void Session::tonemap(int sample)
 {
 	/* add tonemap task */
 	DeviceTask task(DeviceTask::FILM_CONVERT);
@@ -853,7 +853,7 @@ void Session::tonemap()
 	task.rgba_byte = display->rgba_byte.device_pointer;
 	task.rgba_half = display->rgba_half.device_pointer;
 	task.buffer = buffers->buffer.device_pointer;
-	task.sample = tile_manager.state.sample;
+	task.sample = sample;
 	tile_manager.state.buffer.get_offset_stride(task.offset, task.stride);
 
 	if(task.w > 0 && task.h > 0) {
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h
index e2a7076..8c597c4 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/render/session.h
@@ -150,7 +150,7 @@ protected:
 	void update_scene();
 	void update_status_time(bool show_pause = false, bool show_done = false);
 
-	void tonemap();
+	void tonemap(int sample);
 	void path_trace();
 	void reset_(BufferParams& params, int samples);




More information about the Bf-blender-cvs mailing list