[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42777] branches/bmesh/blender: svn merge ^/trunk/blender -r42761:42776

Campbell Barton ideasman42 at gmail.com
Tue Dec 20 23:08:25 CET 2011


Revision: 42777
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42777
Author:   campbellbarton
Date:     2011-12-20 22:08:24 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
svn merge ^/trunk/blender -r42761:42776

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42761

Modified Paths:
--------------
    branches/bmesh/blender/intern/cycles/app/cycles_test.cpp
    branches/bmesh/blender/intern/cycles/blender/addon/engine.py
    branches/bmesh/blender/intern/cycles/blender/blender_camera.cpp
    branches/bmesh/blender/intern/cycles/blender/blender_session.cpp
    branches/bmesh/blender/intern/cycles/blender/blender_sync.h
    branches/bmesh/blender/intern/cycles/device/device.cpp
    branches/bmesh/blender/intern/cycles/device/device.h
    branches/bmesh/blender/intern/cycles/device/device_cpu.cpp
    branches/bmesh/blender/intern/cycles/device/device_cuda.cpp
    branches/bmesh/blender/intern/cycles/device/device_opencl.cpp
    branches/bmesh/blender/intern/cycles/kernel/CMakeLists.txt
    branches/bmesh/blender/intern/cycles/kernel/kernel.cl
    branches/bmesh/blender/intern/cycles/kernel/kernel.cpp
    branches/bmesh/blender/intern/cycles/kernel/kernel.cu
    branches/bmesh/blender/intern/cycles/kernel/kernel.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_camera.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_compat_opencl.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_film.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_optimized.cpp
    branches/bmesh/blender/intern/cycles/kernel/kernel_path.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_random.h
    branches/bmesh/blender/intern/cycles/kernel/kernel_types.h
    branches/bmesh/blender/intern/cycles/render/buffers.cpp
    branches/bmesh/blender/intern/cycles/render/buffers.h
    branches/bmesh/blender/intern/cycles/render/camera.cpp
    branches/bmesh/blender/intern/cycles/render/nodes.cpp
    branches/bmesh/blender/intern/cycles/render/session.cpp
    branches/bmesh/blender/intern/cycles/render/session.h
    branches/bmesh/blender/intern/cycles/render/tile.cpp
    branches/bmesh/blender/intern/cycles/render/tile.h
    branches/bmesh/blender/intern/cycles/util/util_math.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_modifier.h
    branches/bmesh/blender/source/blender/blenkernel/intern/modifier.c
    branches/bmesh/blender/source/blender/editors/interface/interface_templates.c
    branches/bmesh/blender/source/blender/editors/object/object_modifier.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_uvproject.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_weightvgedit.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_weightvgmix.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_weightvgproximity.c
    branches/bmesh/blender/source/blender/python/mathutils/mathutils_Vector.c
    branches/bmesh/blender/source/blender/render/intern/source/external_engine.c

Property Changed:
----------------
    branches/bmesh/blender/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42761
   + /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42776

Modified: branches/bmesh/blender/intern/cycles/app/cycles_test.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/app/cycles_test.cpp	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/app/cycles_test.cpp	2011-12-20 22:08:24 UTC (rev 42777)
@@ -82,10 +82,21 @@
 	session_print(status);
 }
 
+static BufferParams session_buffer_params()
+{
+	BufferParams buffer_params;
+	buffer_params.width = options.width;
+	buffer_params.height = options.height;
+	buffer_params.full_width = options.width;
+	buffer_params.full_height = options.height;
+
+	return buffer_params;
+}
+
 static void session_init()
 {
 	options.session = new Session(options.session_params);
-	options.session->reset(options.width, options.height, options.session_params.samples);
+	options.session->reset(session_buffer_params(), options.session_params.samples);
 	options.session->scene = options.scene;
 	
 	if(options.session_params.background && !options.quiet)
@@ -151,7 +162,7 @@
 
 static void display()
 {
-	options.session->draw(options.width, options.height);
+	options.session->draw(session_buffer_params());
 
 	display_info(options.session->progress);
 }
@@ -162,13 +173,13 @@
 	options.height= height;
 
 	if(options.session)
-		options.session->reset(options.width, options.height, options.session_params.samples);
+		options.session->reset(session_buffer_params(), options.session_params.samples);
 }
 
 void keyboard(unsigned char key)
 {
 	if(key == 'r')
-		options.session->reset(options.width, options.height, options.session_params.samples);
+		options.session->reset(session_buffer_params(), options.session_params.samples);
 	else if(key == 27) // escape
 		options.session->progress.set_cancel("Cancelled");
 }

Modified: branches/bmesh/blender/intern/cycles/blender/addon/engine.py
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/addon/engine.py	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/blender/addon/engine.py	2011-12-20 22:08:24 UTC (rev 42777)
@@ -62,11 +62,7 @@
 
 def update(engine, data, scene):
     import bcycles
-    if scene.render.use_border:
-        engine.report({'ERROR'}, "Border rendering not supported yet")
-        free(engine)
-    else:
-        bcycles.sync(engine.session)
+    bcycles.sync(engine.session)
 
 
 def draw(engine, region, v3d, rv3d):

Modified: branches/bmesh/blender/intern/cycles/blender/blender_camera.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_camera.cpp	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/blender/blender_camera.cpp	2011-12-20 22:08:24 UTC (rev 42777)
@@ -287,5 +287,29 @@
 	blender_camera_sync(scene->camera, &bcam, width, height);
 }
 
+BufferParams BlenderSync::get_buffer_params(BL::Scene b_scene, BL::RegionView3D b_rv3d, int width, int height)
+{
+	BufferParams params;
+
+	params.full_width = width;
+	params.full_height = height;
+
+	/* border render */
+	BL::RenderSettings r = b_scene.render();
+
+	if(!b_rv3d && r.use_border()) {
+		params.full_x = r.border_min_x()*width;
+		params.full_y = r.border_min_y()*height;
+		params.width = (int)(r.border_max_x()*width) - params.full_x;
+		params.height = (int)(r.border_max_y()*height) - params.full_y;
+	}
+	else {
+		params.width = width;
+		params.height = height;
+	}
+
+	return params;
+}
+
 CCL_NAMESPACE_END
 

Modified: branches/bmesh/blender/intern/cycles/blender/blender_session.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_session.cpp	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/blender/blender_session.cpp	2011-12-20 22:08:24 UTC (rev 42777)
@@ -100,7 +100,9 @@
 	session->set_pause(BlenderSync::get_session_pause(b_scene, background));
 
 	/* start rendering */
-	session->reset(width, height, session_params.samples);
+	BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+	session->reset(buffer_params, session_params.samples);
 	session->start();
 }
 
@@ -135,7 +137,10 @@
 	if(!pixels)
 		return;
 
-	struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, width, height);
+	BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+	int w = buffer_params.width, h = buffer_params.height;
+
+	struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, w, h);
 	PointerRNA rrptr;
 	RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr);
 	BL::RenderResult rr(rrptr);
@@ -188,8 +193,10 @@
 	session->scene->mutex.unlock();
 
 	/* reset if needed */
-	if(scene->need_reset())
-		session->reset(width, height, session_params.samples);
+	if(scene->need_reset()) {
+		BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+		session->reset(buffer_params, session_params.samples);
+	}
 }
 
 bool BlenderSession::draw(int w, int h)
@@ -225,7 +232,9 @@
 		/* reset if requested */
 		if(reset) {
 			SessionParams session_params = BlenderSync::get_session_params(b_scene, background);
-			session->reset(width, height, session_params.samples);
+			BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+			session->reset(buffer_params, session_params.samples);
 		}
 	}
 
@@ -233,7 +242,9 @@
 	update_status_progress();
 
 	/* draw */
-	return !session->draw(width, height);
+	BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+	return !session->draw(buffer_params);
 }
 
 void BlenderSession::get_status(string& status, string& substatus)

Modified: branches/bmesh/blender/intern/cycles/blender/blender_sync.h
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_sync.h	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/blender/blender_sync.h	2011-12-20 22:08:24 UTC (rev 42777)
@@ -62,6 +62,7 @@
 	static SceneParams get_scene_params(BL::Scene b_scene, bool background);
 	static SessionParams get_session_params(BL::Scene b_scene, bool background);
 	static bool get_session_pause(BL::Scene b_scene, bool background);
+	static BufferParams get_buffer_params(BL::Scene b_scene, BL::RegionView3D b_rv3d, int width, int height);
 
 private:
 	/* sync */

Modified: branches/bmesh/blender/intern/cycles/device/device.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/device/device.cpp	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/device/device.cpp	2011-12-20 22:08:24 UTC (rev 42777)
@@ -24,6 +24,7 @@
 
 #include "util_cuda.h"
 #include "util_debug.h"
+#include "util_foreach.h"
 #include "util_math.h"
 #include "util_opencl.h"
 #include "util_opengl.h"
@@ -41,9 +42,33 @@
 {
 }
 
-void DeviceTask::split(ThreadQueue<DeviceTask>& tasks, int num)
+void DeviceTask::split_max_size(list<DeviceTask>& tasks, int max_size)
 {
+	int num;
+
 	if(type == DISPLACE) {
+		num = (displace_w + max_size - 1)/max_size;
+	}
+	else {
+		max_size = max(1, max_size/w);
+		num = (h + max_size - 1)/max_size;
+	}
+
+	split(tasks, num);
+}
+
+void DeviceTask::split(ThreadQueue<DeviceTask>& queue, int num)
+{
+	list<DeviceTask> tasks;
+	split(tasks, num);
+
+	foreach(DeviceTask& task, tasks)
+		queue.push(task);
+}
+
+void DeviceTask::split(list<DeviceTask>& tasks, int num)
+{
+	if(type == DISPLACE) {
 		num = min(displace_w, num);
 
 		for(int i = 0; i < num; i++) {
@@ -55,7 +80,7 @@
 			task.displace_x = tx;
 			task.displace_w = tw;
 
-			tasks.push(task);
+			tasks.push_back(task);
 		}
 	}
 	else {
@@ -70,7 +95,7 @@
 			task.y = ty;
 			task.h = th;
 
-			tasks.push(task);
+			tasks.push_back(task);
 		}
 	}
 }

Modified: branches/bmesh/blender/intern/cycles/device/device.h
===================================================================
--- branches/bmesh/blender/intern/cycles/device/device.h	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/device/device.h	2011-12-20 22:08:24 UTC (rev 42777)
@@ -23,6 +23,7 @@
 
 #include "device_memory.h"
 
+#include "util_list.h"
 #include "util_string.h"
 #include "util_thread.h"
 #include "util_types.h"
@@ -60,13 +61,17 @@
 	device_ptr buffer;
 	int sample;
 	int resolution;
+	int offset, stride;
 
 	device_ptr displace_input;
 	device_ptr displace_offset;
 	int displace_x, displace_w;
 
 	DeviceTask(Type type = PATH_TRACE);
+
+	void split(list<DeviceTask>& tasks, int num);
 	void split(ThreadQueue<DeviceTask>& tasks, int num);
+	void split_max_size(list<DeviceTask>& tasks, int max_size);
 };
 
 /* Device */

Modified: branches/bmesh/blender/intern/cycles/device/device_cpu.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/device/device_cpu.cpp	2011-12-20 22:01:11 UTC (rev 42776)
+++ branches/bmesh/blender/intern/cycles/device/device_cpu.cpp	2011-12-20 22:08:24 UTC (rev 42777)
@@ -162,7 +162,8 @@
 		if(system_cpu_support_optimized()) {
 			for(int y = task.y; y < task.y + task.h; y++) {
 				for(int x = task.x; x < task.x + task.w; x++)
-					kernel_cpu_optimized_path_trace(kg, (float4*)task.buffer, (unsigned int*)task.rng_state, task.sample, x, y);
+					kernel_cpu_optimized_path_trace(kg, (float4*)task.buffer, (unsigned int*)task.rng_state,
+						task.sample, x, y, task.offset, task.stride);
 
 				if(tasks.worker_cancel())
 					break;
@@ -173,7 +174,8 @@
 		{
 			for(int y = task.y; y < task.y + task.h; y++) {
 				for(int x = task.x; x < task.x + task.w; x++)
-					kernel_cpu_path_trace(kg, (float4*)task.buffer, (unsigned int*)task.rng_state, task.sample, x, y);
+					kernel_cpu_path_trace(kg, (float4*)task.buffer, (unsigned int*)task.rng_state,
+						task.sample, x, y, task.offset, task.stride);
 
 				if(tasks.worker_cancel())
 					break;
@@ -192,14 +194,16 @@

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list