[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