[Bf-blender-cvs] [a996787] cycles_kernel_split: Cycles kernel split: Move address space specification to ShaderData typedef

Sergey Sharybin noreply at git.blender.org
Thu May 7 10:52:43 CEST 2015


Commit: a9967876505984824039e07d8e5ce9a513363bdc
Author: Sergey Sharybin
Date:   Thu May 7 13:50:47 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rBa9967876505984824039e07d8e5ce9a513363bdc

Cycles kernel split: Move address space specification to ShaderData typedef

Same as previous change, reduces amount of technical changes related to adding
ccl_addr_space all over the place in the kernel.

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

M	intern/cycles/kernel/closure/bsdf.h
M	intern/cycles/kernel/geom/geom_attribute.h
M	intern/cycles/kernel/geom/geom_motion_triangle.h
M	intern/cycles/kernel/geom/geom_object.h
M	intern/cycles/kernel/geom/geom_primitive.h
M	intern/cycles/kernel/geom/geom_triangle.h
M	intern/cycles/kernel/geom/geom_triangle_intersect.h
M	intern/cycles/kernel/geom/geom_volume.h
M	intern/cycles/kernel/kernel_Background_BufferUpdate.cl
M	intern/cycles/kernel/kernel_DataInit.cl
M	intern/cycles/kernel/kernel_DirectLighting.cl
M	intern/cycles/kernel/kernel_Holdout_Emission_Blurring_Pathtermination_AO.cl
M	intern/cycles/kernel/kernel_LampEmission.cl
M	intern/cycles/kernel/kernel_NextIterationSetUp.cl
M	intern/cycles/kernel/kernel_ShaderEval.cl
M	intern/cycles/kernel/kernel_ShadowBlocked.cl
M	intern/cycles/kernel/kernel_camera.h
M	intern/cycles/kernel/kernel_emission.h
M	intern/cycles/kernel/kernel_passes.h
M	intern/cycles/kernel/kernel_path_surface.h
M	intern/cycles/kernel/kernel_shader.h
M	intern/cycles/kernel/kernel_shadow.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/kernel/svm/svm.h
M	intern/cycles/kernel/svm/svm_attribute.h
M	intern/cycles/kernel/svm/svm_blackbody.h
M	intern/cycles/kernel/svm/svm_brick.h
M	intern/cycles/kernel/svm/svm_brightness.h
M	intern/cycles/kernel/svm/svm_camera.h
M	intern/cycles/kernel/svm/svm_checker.h
M	intern/cycles/kernel/svm/svm_closure.h
M	intern/cycles/kernel/svm/svm_convert.h
M	intern/cycles/kernel/svm/svm_displace.h
M	intern/cycles/kernel/svm/svm_fresnel.h
M	intern/cycles/kernel/svm/svm_gamma.h
M	intern/cycles/kernel/svm/svm_geometry.h
M	intern/cycles/kernel/svm/svm_gradient.h
M	intern/cycles/kernel/svm/svm_hsv.h
M	intern/cycles/kernel/svm/svm_image.h
M	intern/cycles/kernel/svm/svm_invert.h
M	intern/cycles/kernel/svm/svm_light_path.h
M	intern/cycles/kernel/svm/svm_magic.h
M	intern/cycles/kernel/svm/svm_mapping.h
M	intern/cycles/kernel/svm/svm_math.h
M	intern/cycles/kernel/svm/svm_mix.h
M	intern/cycles/kernel/svm/svm_musgrave.h
M	intern/cycles/kernel/svm/svm_noisetex.h
M	intern/cycles/kernel/svm/svm_normal.h
M	intern/cycles/kernel/svm/svm_ramp.h
M	intern/cycles/kernel/svm/svm_sepcomb_hsv.h
M	intern/cycles/kernel/svm/svm_sepcomb_vector.h
M	intern/cycles/kernel/svm/svm_sky.h
M	intern/cycles/kernel/svm/svm_tex_coord.h
M	intern/cycles/kernel/svm/svm_value.h
M	intern/cycles/kernel/svm/svm_vector_transform.h
M	intern/cycles/kernel/svm/svm_voronoi.h
M	intern/cycles/kernel/svm/svm_wave.h
M	intern/cycles/kernel/svm/svm_wavelength.h
M	intern/cycles/kernel/svm/svm_wireframe.h

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

diff --git a/intern/cycles/kernel/closure/bsdf.h b/intern/cycles/kernel/closure/bsdf.h
index e5aabe7..8a43aa0 100644
--- a/intern/cycles/kernel/closure/bsdf.h
+++ b/intern/cycles/kernel/closure/bsdf.h
@@ -35,7 +35,7 @@
 
 CCL_NAMESPACE_BEGIN
 
-ccl_device int bsdf_sample(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, const ccl_addr_space ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf)
+ccl_device int bsdf_sample(KernelGlobals *kg, const ShaderData *sd, const ccl_addr_space ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf)
 {
 	int label;
 
@@ -130,7 +130,7 @@ ccl_device int bsdf_sample(KernelGlobals *kg, const ccl_addr_space ShaderData *s
 	return label;
 }
 
-ccl_device float3 bsdf_eval(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, const ccl_addr_space ShaderClosure *sc, const float3 omega_in, float *pdf)
+ccl_device float3 bsdf_eval(KernelGlobals *kg, const ShaderData *sd, const ccl_addr_space ShaderClosure *sc, const float3 omega_in, float *pdf)
 {
 	float3 eval;
 
diff --git a/intern/cycles/kernel/geom/geom_attribute.h b/intern/cycles/kernel/geom/geom_attribute.h
index b111c23..7301f90 100644
--- a/intern/cycles/kernel/geom/geom_attribute.h
+++ b/intern/cycles/kernel/geom/geom_attribute.h
@@ -27,7 +27,7 @@ CCL_NAMESPACE_BEGIN
 
 /* Find attribute based on ID */
 
-ccl_device_inline int find_attribute(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, uint id, AttributeElement *elem)
+ccl_device_inline int find_attribute(KernelGlobals *kg, const ShaderData *sd, uint id, AttributeElement *elem)
 {
 	if(sd_fetch(object) == PRIM_NONE)
 		return (int)ATTR_STD_NOT_FOUND;
diff --git a/intern/cycles/kernel/geom/geom_motion_triangle.h b/intern/cycles/kernel/geom/geom_motion_triangle.h
index 3963736..f26ca96 100644
--- a/intern/cycles/kernel/geom/geom_motion_triangle.h
+++ b/intern/cycles/kernel/geom/geom_motion_triangle.h
@@ -122,7 +122,7 @@ ccl_device_inline void motion_triangle_vertices(KernelGlobals *kg, int object, i
  * far the precision is often not so good, this reintersects the primitive from
  * a closer distance. */
 
-ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ccl_addr_space ShaderData *sd, const ccl_addr_space Intersection *isect, const Ray *ray, float3 verts[3])
+ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ShaderData *sd, const ccl_addr_space Intersection *isect, const Ray *ray, float3 verts[3])
 {
 	float3 P = ray->P;
 	float3 D = ray->D;
@@ -233,7 +233,7 @@ ccl_device_inline float3 motion_triangle_refine_subsurface(KernelGlobals *kg, Sh
  * normals */
 
 /* return 3 triangle vertex normals */
-ccl_device_noinline void motion_triangle_shader_setup(KernelGlobals *kg, ccl_addr_space ShaderData *sd, const ccl_addr_space Intersection *isect, const Ray *ray, bool subsurface)
+ccl_device_noinline void motion_triangle_shader_setup(KernelGlobals *kg, ShaderData *sd, const ccl_addr_space Intersection *isect, const Ray *ray, bool subsurface)
 {
 	/* get shader */
 	sd_fetch(shader) = kernel_tex_fetch(__tri_shader, sd_fetch(prim));
diff --git a/intern/cycles/kernel/geom/geom_object.h b/intern/cycles/kernel/geom/geom_object.h
index 25da0d1..4907a34 100644
--- a/intern/cycles/kernel/geom/geom_object.h
+++ b/intern/cycles/kernel/geom/geom_object.h
@@ -118,7 +118,7 @@ ccl_device_inline Transform object_fetch_transform_motion_test(KernelGlobals *kg
 #endif
 
 /* Transform position from object to world space */
-ccl_device_inline void object_position_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *P)
+ccl_device_inline void object_position_transform(KernelGlobals *kg, const ShaderData *sd, float3 *P)
 {
 #ifdef __OBJECT_MOTION__
 	*P = transform_point(&sd_fetch(ob_tfm), *P);
@@ -129,7 +129,7 @@ ccl_device_inline void object_position_transform(KernelGlobals *kg, const ccl_ad
 }
 
 /* Transform position from world to object space */
-ccl_device_inline void object_inverse_position_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *P)
+ccl_device_inline void object_inverse_position_transform(KernelGlobals *kg, const ShaderData *sd, float3 *P)
 {
 #ifdef __OBJECT_MOTION__
 	*P = transform_point(&sd_fetch(ob_itfm), *P);
@@ -140,7 +140,7 @@ ccl_device_inline void object_inverse_position_transform(KernelGlobals *kg, cons
 }
 
 /* Transform normal from world to object space */
-ccl_device_inline void object_inverse_normal_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *N)
+ccl_device_inline void object_inverse_normal_transform(KernelGlobals *kg, const ShaderData *sd, float3 *N)
 {
 #ifdef __OBJECT_MOTION__
 	*N = normalize(transform_direction_transposed(&sd_fetch(ob_tfm), *N));
@@ -151,7 +151,7 @@ ccl_device_inline void object_inverse_normal_transform(KernelGlobals *kg, const
 }
 
 /* Transform normal from object to world space */
-ccl_device_inline void object_normal_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *N)
+ccl_device_inline void object_normal_transform(KernelGlobals *kg, const ShaderData *sd, float3 *N)
 {
 #ifdef __OBJECT_MOTION__
 	*N = normalize(transform_direction_transposed(&sd_fetch(ob_itfm), *N));
@@ -162,7 +162,7 @@ ccl_device_inline void object_normal_transform(KernelGlobals *kg, const ccl_addr
 }
 
 /* Transform direction vector from object to world space */
-ccl_device_inline void object_dir_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *D)
+ccl_device_inline void object_dir_transform(KernelGlobals *kg, const ShaderData *sd, float3 *D)
 {
 #ifdef __OBJECT_MOTION__
 	*D = transform_direction(&sd_fetch(ob_tfm), *D);
@@ -173,7 +173,7 @@ ccl_device_inline void object_dir_transform(KernelGlobals *kg, const ccl_addr_sp
 }
 
 /* Transform direction vector from world to object space */
-ccl_device_inline void object_inverse_dir_transform(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *D)
+ccl_device_inline void object_inverse_dir_transform(KernelGlobals *kg, const ShaderData *sd, float3 *D)
 {
 #ifdef __OBJECT_MOTION__
 	*D = transform_direction(&sd_fetch(ob_itfm), *D);
@@ -183,7 +183,7 @@ ccl_device_inline void object_inverse_dir_transform(KernelGlobals *kg, const ccl
 #endif
 }
 
-ccl_device_inline float3 object_location(KernelGlobals *kg, const ccl_addr_space ShaderData *sd)
+ccl_device_inline float3 object_location(KernelGlobals *kg, const ShaderData *sd)
 {
 	if(sd_fetch(object) == OBJECT_NONE)
 		return make_float3(0.0f, 0.0f, 0.0f);
@@ -284,7 +284,7 @@ ccl_device_inline void object_motion_info(KernelGlobals *kg, int object, int *nu
 }
 
 /* Pass ID for shader */
-ccl_device int shader_pass_id(KernelGlobals *kg, const ccl_addr_space ShaderData *sd)
+ccl_device int shader_pass_id(KernelGlobals *kg, const ShaderData *sd)
 {
 	return kernel_tex_fetch(__shader_flag, (sd_fetch(shader) & SHADER_MASK)*2 + 1);
 }
diff --git a/intern/cycles/kernel/geom/geom_primitive.h b/intern/cycles/kernel/geom/geom_primitive.h
index f6f6458..5769bb8 100644
--- a/intern/cycles/kernel/geom/geom_primitive.h
+++ b/intern/cycles/kernel/geom/geom_primitive.h
@@ -22,7 +22,7 @@
 CCL_NAMESPACE_BEGIN
 
 /* Generic primitive attribute reading functions */
-ccl_device float primitive_attribute_float(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, AttributeElement elem, int offset, float *dx, float *dy)
+ccl_device float primitive_attribute_float(KernelGlobals *kg, const ShaderData *sd, AttributeElement elem, int offset, float *dx, float *dy)
 {
 	if(sd_fetch(type) & PRIMITIVE_ALL_TRIANGLE) {
 		return triangle_attribute_float(kg, sd, elem, offset, dx, dy);
@@ -45,7 +45,7 @@ ccl_device float primitive_attribute_float(KernelGlobals *kg, const ccl_addr_spa
 }
 
 
-ccl_device float3 primitive_attribute_float3(KernelGlobals *kg, const ccl_addr_space ShaderData *sd, AttributeElement elem, int offset, float3 *dx, float3 *dy)
+ccl_device float3 primitive_attribute_float3(KernelGlobals *kg, const ShaderData *sd, AttributeElement elem, int offset, float3 *dx, float3 *dy)
 {
 	if(sd_fetch(type) & PRIMITIVE_ALL_TRIANGLE) {
 		return triangle_attribute_float3(kg, sd, elem, offset, dx, dy);
@@ -68,7 +68,7 @@ ccl_device float3 primitive_attribute_float3(KernelGlobals *kg, const ccl_addr_s
 }
 
 /* Default UV coordinate */
-ccl_device float3 primitive_uv(KernelGlobals *kg, ccl_addr_space ShaderData *sd)
+ccl_device float3 primitive_uv(KernelGlobals *kg, ShaderData *sd)
 {
 	AttributeElement elem_uv;
 	int offset_uv = find_attribute(kg, sd, ATTR_STD_UV, &elem_uv);
@@ -82,7 +82,7 @@ ccl_device float3 primitive_uv(KernelGlobals *kg, ccl_addr_space ShaderData *sd)
 }
 
 /* Ptex coordinates */
-ccl_device bool primitive_ptex(KernelGlobals *kg, ccl_addr_space ShaderData *sd, float2 *uv, int *face_id)
+ccl_device bool primitive_ptex(KernelGlobals *kg, ShaderData *sd, float2 *uv, int *face_id)
 {
 	/* storing ptex data as attributes is not memory efficient but simple for tests */
 	AttributeElement elem_face_id, elem_uv;
@@ -102,7 +102,7 @@ ccl_device bool primitive_ptex(KernelGlobals *kg, ccl_addr_space ShaderData *sd,
 }
 
 /* Surface tangent */
-ccl_device float3 primitive_tangent(KernelGlobals *kg, ccl_addr_space ShaderData *sd)
+ccl_device float3 primitive_tangent(KernelGlobals *kg, ShaderData *sd)
 {
 #ifdef __HAIR__
 	if(sd_fetch(type) & PRIMITIVE_ALL_CURVE)
@@ -134,7 +134,7 @@ ccl_device float3 primitive_tangent(KernelGlobals *kg, ccl_addr_space ShaderData
 }
 
 /* Motion vector for motion pass */
-ccl_device float4 primitive_motion_vector(KernelGlobals *kg, ccl_addr_space ShaderData *sd)
+ccl_device float4 primitive_motion_vector(KernelGlobals *kg, ShaderData *sd)
 {
 	/* center position */
 	float3 center;
diff --git a/intern/cycles/kernel/geom/geom_triangle.h b/intern/cycles/kernel/geom/geom_triangle.h
index 20cf9f6..51ce763 100644
--- a/intern/cycles/kernel/geom/geom_triangle.h
+++ b/intern/cycles/kernel/geom/geom_triangle.h
@@ -28,7 +28,7 @@ CCL_NAMESPACE_BEGIN
 
 
 /* normal on triangle  */
-ccl_device_inline float3 triangle_normal(KernelGlobals *kg, ccl_addr_space ShaderData *sd)
+ccl_device_inline float3 triangle_normal(KernelGlobals

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list