Commit: d4cf8c1a7e73d7a65356e75fe53a9c1bce46db2a
Author: Lukas Stockner
Date:   Mon Apr 11 15:58:52 2016 +0200
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rBd4cf8c1a7e73d7a65356e75fe53a9c1bce46db2a

Add a preprocessor flag for all the kernel changes

This way, CUDA and OpenCL continue to work (still without micropolygon support, 
though).

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

M       intern/cycles/blender/blender_mesh.cpp
M       intern/cycles/kernel/geom/geom.h
M       intern/cycles/kernel/geom/geom_bvh_shadow.h
M       intern/cycles/kernel/geom/geom_bvh_subsurface.h
M       intern/cycles/kernel/geom/geom_bvh_traversal.h
M       intern/cycles/kernel/geom/geom_bvh_volume.h
M       intern/cycles/kernel/geom/geom_bvh_volume_all.h
M       intern/cycles/kernel/geom/geom_cache.cpp
M       intern/cycles/kernel/geom/geom_primitive.h
M       intern/cycles/kernel/geom/geom_qbvh_shadow.h
M       intern/cycles/kernel/geom/geom_qbvh_subsurface.h
M       intern/cycles/kernel/geom/geom_qbvh_traversal.h
M       intern/cycles/kernel/geom/geom_qbvh_volume.h
M       intern/cycles/kernel/geom/geom_qbvh_volume_all.h
M       intern/cycles/kernel/kernel_bake.h
M       intern/cycles/kernel/kernel_shader.h
M       intern/cycles/kernel/kernel_subsurface.h
M       intern/cycles/kernel/kernel_types.h
M       intern/cycles/kernel/svm/svm_wireframe.h

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

diff --git a/intern/cycles/blender/blender_mesh.cpp 
b/intern/cycles/blender/blender_mesh.cpp
index 4130ccc..e427463 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -843,7 +843,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
                        if(render_layer.use_surfaces && !hide_tris) {
                                mesh->displacement_scale = 
RNA_float_get(&cmesh, "displacement_scale");
 
-                               if(cmesh.data && experimental && 
RNA_enum_get(&cmesh, "subdivision_type") != 0 &&
+                               if(cmesh.data && is_cpu && experimental && 
RNA_enum_get(&cmesh, "subdivision_type") != 0 &&
                                                (!preview || 
RNA_boolean_get(&cmesh, "preview_displacement")))
                                {
                                        create_subd_mesh(scene, mesh, b_ob, 
b_mesh, &cmesh, used_shaders, preview);
diff --git a/intern/cycles/kernel/geom/geom.h b/intern/cycles/kernel/geom/geom.h
index 3abcbfd..878d415 100644
--- a/intern/cycles/kernel/geom/geom.h
+++ b/intern/cycles/kernel/geom/geom.h
@@ -44,9 +44,13 @@
 #include "geom_motion_curve.h"
 #include "geom_curve.h"
 #include "geom_volume.h"
-#include "geom_cache.h"
-#include "geom_cache_triangle.h"
-#include "geom_subpatch.h"
+
+#ifdef __MICRODISPLACEMENT__
+#  include "geom_cache.h"
+#  include "geom_cache_triangle.h"
+#  include "geom_subpatch.h"
+#endif /* __MICRODISPLACEMENT__ */
+
 #include "geom_primitive.h"
 #include "geom_bvh.h"
 
diff --git a/intern/cycles/kernel/geom/geom_bvh_shadow.h 
b/intern/cycles/kernel/geom/geom_bvh_shadow.h
index c2623a8..7239bb2 100644
--- a/intern/cycles/kernel/geom/geom_bvh_shadow.h
+++ b/intern/cycles/kernel/geom/geom_bvh_shadow.h
@@ -245,6 +245,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                                break;
                                                        }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                                        case 
PRIMITIVE_SUBPATCH: {
                                                                hit = 
subpatch_intersect_shadow(kg, &isect_precalc, &isect_array, max_hits, num_hits, 
isect_t, P, dir, object, primAddr);
                                                                /* shadow ray 
early termination */
@@ -253,6 +254,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                                }
                                                                break;
                                                        }
+#endif /* __MICRODISPLACEMENT__ */
                                                        default: {
                                                                hit = false;
                                                                break;
diff --git a/intern/cycles/kernel/geom/geom_bvh_subsurface.h 
b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
index cac45c5..a1027dc 100644
--- a/intern/cycles/kernel/geom/geom_bvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
@@ -246,6 +246,7 @@ ccl_device void BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                break;
                                        }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                        case PRIMITIVE_SUBPATCH: {
                                                /* intersect ray against 
primitive */
                                                for(; primAddr < primAddr2; 
primAddr++) {
@@ -263,6 +264,7 @@ ccl_device void BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                }
                                                break;
                                        }
+#endif /* __MICRODISPLACEMENT__ */
                                        default: {
                                                break;
                                        }
diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h 
b/intern/cycles/kernel/geom/geom_bvh_traversal.h
index fee17e1..3781558 100644
--- a/intern/cycles/kernel/geom/geom_bvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h
@@ -334,6 +334,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif  /* BVH_FEATURE(BVH_HAIR) */
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        for(; primAddr < 
primAddr2; primAddr++) {
 #if defined(__KERNEL_DEBUG__)
@@ -354,6 +355,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        }
                                                        break;
                                                }
+#endif /* __MICRODISPLACEMENT__ */
                                        }
                                }
 #if BVH_FEATURE(BVH_INSTANCING)
diff --git a/intern/cycles/kernel/geom/geom_bvh_volume.h 
b/intern/cycles/kernel/geom/geom_bvh_volume.h
index 0353819..93df115 100644
--- a/intern/cycles/kernel/geom/geom_bvh_volume.h
+++ b/intern/cycles/kernel/geom/geom_bvh_volume.h
@@ -252,6 +252,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        /* intersect ray 
against primitive */
                                                        for(; primAddr < 
primAddr2; primAddr++) {
@@ -266,6 +267,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        }
                                                        break;
                                                }
+#endif /* __MICRODISPLACEMENT__ */
                                                default: {
                                                        break;
                                                }
diff --git a/intern/cycles/kernel/geom/geom_bvh_volume_all.h 
b/intern/cycles/kernel/geom/geom_bvh_volume_all.h
index 53d8a205..d8f7c42 100644
--- a/intern/cycles/kernel/geom/geom_bvh_volume_all.h
+++ b/intern/cycles/kernel/geom/geom_bvh_volume_all.h
@@ -326,6 +326,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif  /* BVH_HAIR */
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        /* intersect ray 
against primitive */
                                                        for(; primAddr < 
primAddr2; primAddr++) {
@@ -358,6 +359,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                        }
                                                        break;
                                                }
+#endif /* __MICRODISPLACEMENT__ */
                                                default: {
                                                        break;
                                                }
diff --git a/intern/cycles/kernel/geom/geom_cache.cpp 
b/intern/cycles/kernel/geom/geom_cache.cpp
index af5b529..4433b12 100644
--- a/intern/cycles/kernel/geom/geom_cache.cpp
+++ b/intern/cycles/kernel/geom/geom_cache.cpp
@@ -32,6 +32,12 @@
 
 #include "geom/geom.h"
 
+#ifndef __MICRODISPLACEMENT__
+#include "geom_cache.h"
+#include "geom_cache_triangle.h"
+#include "geom_subpatch.h"
+#endif
+
 #include "kernel_accumulate.h"
 #include "kernel_shader.h"
 
@@ -315,5 +321,3 @@ void 
geom_cache_sample_subpatch_vert_displacement(KernelGlobals *kg, int object,
 }
 
 CCL_NAMESPACE_END
-
-
diff --git a/intern/cycles/kernel/geom/geom_primitive.h 
b/intern/cycles/kernel/geom/geom_primitive.h
index 5033535..73c9b4a 100644
--- a/intern/cycles/kernel/geom/geom_primitive.h
+++ b/intern/cycles/kernel/geom/geom_primitive.h
@@ -38,9 +38,11 @@ ccl_device float primitive_attribute_float(KernelGlobals 
*kg, const ShaderData *
                return volume_attribute_float(kg, sd, elem, offset, dx, dy);
        }
 #endif
+#ifdef __MICRODISPLACEMENT__
        else if(ccl_fetch(sd, type) & PRIMITIVE_CACHE_TRIANGLE) {
                return cache_triangle_attribute_float(kg, sd, elem, offset, dx, 
dy);
        }
+#endif /* __MICRODISPLACEMENT__ */
        else {
                if(dx) *dx = 0.0f;
                if(dy) *dy = 0.0f;
@@ -63,9 +65,11 @@ ccl_device float3 primitive_attribute_float3(KernelGlobals 
*kg, const ShaderData
                return volume_attribute_float3(kg, sd, elem, offset, dx, dy);
        }
 #endif
+#ifdef __MICRODISPLACEMENT__
        else if(ccl_fetch(sd, type) & PRIMITIVE_CACHE_TRIANGLE) {
                return cache_triangle_attribute_float3(kg, sd, elem, offset, 
dx, dy);
        }
+#endif /* __MICRODISPLACEMENT__ */
        else {
                if(dx) *dx = make_float3(0.0f, 0.0f, 0.0f);
                if(dy) *dy = make_float3(0.0f, 0.0f, 0.0f);
diff --git a/intern/cycles/kernel/geom/geom_qbvh_shadow.h 
b/intern/cycles/kernel/geom/geom_qbvh_shadow.h
index 1ddfa8b..e22137f 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_shadow.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_shadow.h
@@ -260,6 +260,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                                break;
                                                        }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                                        case 
PRIMITIVE_SUBPATCH: {
                                                                hit = 
subpatch_intersect_shadow(kg, &isect_precalc, &isect_array, max_hits, num_hits, 
isect_t, P, dir, object, primAddr);
                                                                /* shadow ray 
early termination */
@@ -268,6 +269,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                                }
                                                                break;
                                                        }
+#endif /* __MICRODISPLACEMENT__ */
                                                        default: {
                                                                hit = false;
                                                                break;
diff --git a/intern/cycles/kernel/geom/geom_qbvh_subsurface.h 
b/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
index 40d2536..fc96682 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_subsurface.h
@@ -263,6 +263,7 @@ ccl_device void BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                break;
                                        }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                        case PRIMITIVE_SUBPATCH: {
                                                /* Intersect ray against 
primitive, */
                                                for(; primAddr < primAddr2; 
primAddr++) {
@@ -280,6 +281,7 @@ ccl_device void BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                }
                                                break;
                                        }
+#endif /* __MICRODISPLACEMENT__ */
                                        default:
                                                break;
                                }
diff --git a/intern/cycles/kernel/geom/geom_qbvh_traversal.h 
b/intern/cycles/kernel/geom/geom_qbvh_traversal.h
index 441ad4b..33f9efe 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_traversal.h
@@ -348,6 +348,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif  /* BVH_FEATURE(BVH_HAIR) */
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        for(; primAddr < 
primAddr2; primAddr++) {
 #if defined(__KERNEL_DEBUG__)
@@ -363,6 +364,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                        }
                                                        break;
                                                }
+#endif /* __MICRODISPLACEMENT__ */
                                        }
                                }
 #if BVH_FEATURE(BVH_INSTANCING)
diff --git a/intern/cycles/kernel/geom/geom_qbvh_volume.h 
b/intern/cycles/kernel/geom/geom_qbvh_volume.h
index 6931ea8..d8898f8 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_volume.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_volume.h
@@ -269,6 +269,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        for(; primAddr < 
primAddr2; primAddr++) {
                                                                
kernel_assert(kernel_tex_fetch(__prim_type, primAddr) == type);
@@ -283,6 +284,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                        }
                                                        break;
                                                }
+#endif /* __MICRODISPLACEMENT__ */
                                        }
                                }
 #if BVH_FEATURE(BVH_INSTANCING)
diff --git a/intern/cycles/kernel/geom/geom_qbvh_volume_all.h 
b/intern/cycles/kernel/geom/geom_qbvh_volume_all.h
index 0b8467c..7e7a28a 100644
--- a/intern/cycles/kernel/geom/geom_qbvh_volume_all.h
+++ b/intern/cycles/kernel/geom/geom_qbvh_volume_all.h
@@ -343,6 +343,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals 
*kg,
                                                        break;
                                                }
 #endif  /* BVH_HAIR */
+#ifdef __MICRODISPLACEMENT__
                                                case PRIMITIVE_SUBPATCH: {
                                                        /* intersect ray 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to