Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-05-08 21:33:25 +0400
committerThomas Dinges <blender@dingto.org>2013-05-08 21:33:25 +0400
commit872a8ed1bf635a62a65d3b2a92b7d2fbb368eea1 (patch)
treed09aaf49f569515eb3eacb7921ac90f13357657d /intern
parent9037a2d3ab7630b877039244cc71b56d413df893 (diff)
Cycles / Hair rendering:
* Enable hair rendering on the GPU. Patch by Stuart Broadfoot, with small tweaks by me, to only enable it on sm_20 and above.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/addon/ui.py6
-rw-r--r--intern/cycles/blender/blender_mesh.cpp4
-rw-r--r--intern/cycles/kernel/kernel_types.h2
-rw-r--r--intern/cycles/util/util_transform.h22
4 files changed, 16 insertions, 18 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index fcb0b680fde..c3a717e0956 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1032,8 +1032,7 @@ class CyclesRender_PT_CurveRendering(CyclesButtonsPanel, Panel):
scene = context.scene
cscene = scene.cycles
psys = context.particle_system
- device_type = context.user_preferences.system.compute_device_type
- experimental = ((cscene.feature_set == 'EXPERIMENTAL') and (cscene.device == 'CPU' or device_type == 'NONE'))
+ experimental = (cscene.feature_set == 'EXPERIMENTAL')
return CyclesButtonsPanel.poll(context) and experimental and psys
def draw_header(self, context):
@@ -1102,8 +1101,7 @@ class CyclesParticle_PT_CurveSettings(CyclesButtonsPanel, Panel):
cscene = scene.cycles
ccscene = scene.cycles_curves
use_curves = ccscene.use_curves and context.particle_system
- device_type = context.user_preferences.system.compute_device_type
- experimental = cscene.feature_set == 'EXPERIMENTAL' and (cscene.device == 'CPU' or device_type == 'NONE')
+ experimental = cscene.feature_set == 'EXPERIMENTAL'
return CyclesButtonsPanel.poll(context) and experimental and use_curves
def draw(self, context):
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index c545ad240c4..b144933bb22 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -449,14 +449,14 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tri
mesh->name = ustring(b_ob_data.name().c_str());
if(b_mesh) {
- if(!(hide_tris && experimental && is_cpu)) {
+ if(!(hide_tris && experimental)) {
if(cmesh.data && experimental && RNA_boolean_get(&cmesh, "use_subdivision"))
create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders);
else
create_mesh(scene, mesh, b_mesh, used_shaders);
}
- if(experimental && is_cpu)
+ if(experimental)
sync_curves(mesh, b_mesh, b_ob, object_updated);
/* free derived mesh */
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index fad1ee8f525..ee221db4267 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -51,7 +51,6 @@ CCL_NAMESPACE_BEGIN
#define __KERNEL_SHADING__
#define __KERNEL_ADV_SHADING__
#define __NON_PROGRESSIVE__
-#define __HAIR__
#ifdef WITH_OSL
#define __OSL__
#endif
@@ -125,6 +124,7 @@ CCL_NAMESPACE_BEGIN
#define __ANISOTROPIC__
#define __CAMERA_MOTION__
#define __OBJECT_MOTION__
+#define __HAIR__
#endif
//#define __SOBOL_FULL_SCREEN__
diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h
index 617ba43a5ed..10120ed5fdb 100644
--- a/intern/cycles/util/util_transform.h
+++ b/intern/cycles/util/util_transform.h
@@ -97,17 +97,6 @@ __device_inline float3 transform_direction_transposed(const Transform *t, const
return make_float3(dot(x, a), dot(y, a), dot(z, a));
}
-#ifndef __KERNEL_GPU__
-
-__device_inline void print_transform(const char *label, const Transform& t)
-{
- print_float4(label, t.x);
- print_float4(label, t.y);
- print_float4(label, t.z);
- print_float4(label, t.w);
- printf("\n");
-}
-
__device_inline Transform transform_transpose(const Transform a)
{
Transform t;
@@ -148,6 +137,17 @@ __device_inline Transform make_transform(float a, float b, float c, float d,
return t;
}
+#ifndef __KERNEL_GPU__
+
+__device_inline void print_transform(const char *label, const Transform& t)
+{
+ print_float4(label, t.x);
+ print_float4(label, t.y);
+ print_float4(label, t.z);
+ print_float4(label, t.w);
+ printf("\n");
+}
+
__device_inline Transform transform_translate(float3 t)
{
return make_transform(