[Bf-blender-cvs] [0ca34d4] cycles_kernel_split: Cycles kernel split: Avoid unnecessary structure reshuffle

Sergey Sharybin noreply at git.blender.org
Fri May 8 12:41:34 CEST 2015


Commit: 0ca34d492519396ed27457aa31c0ccb2c720dc38
Author: Sergey Sharybin
Date:   Fri May 8 15:40:58 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rB0ca34d492519396ed27457aa31c0ccb2c720dc38

Cycles kernel split: Avoid unnecessary structure reshuffle

Saves 12 bytes per shader data actually.

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

M	intern/cycles/kernel/kernel_shaderdata_vars.h
M	intern/cycles/kernel/kernel_types.h

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

diff --git a/intern/cycles/kernel/kernel_shaderdata_vars.h b/intern/cycles/kernel/kernel_shaderdata_vars.h
index 29cf2a3..a79f0a8 100644
--- a/intern/cycles/kernel/kernel_shaderdata_vars.h
+++ b/intern/cycles/kernel/kernel_shaderdata_vars.h
@@ -53,6 +53,15 @@ SD_VAR(int, object)
 /* motion blur sample time */
 SD_VAR(float, time)
 
+/* length of the ray being shaded */
+SD_VAR(float, ray_length)
+
+/* ray bounce depth */
+SD_VAR(int, ray_depth)
+
+/* ray transparent depth */
+SD_VAR(int, transparent_depth)
+
 #ifdef __RAY_DIFFERENTIALS__
 /* differential of P. these are orthogonal to Ng, not N */
 SD_VAR(differential3, dP)
@@ -76,28 +85,14 @@ SD_VAR(Transform, ob_tfm)
 SD_VAR(Transform, ob_itfm)
 #endif
 
-/* ray start position, only set for backgrounds */
-SD_VAR(float3, ray_P)
-SD_VAR(differential3, ray_dP)
-
 /* Closure data, we store a fixed array of closures */
 SD_CLOSURE_VAR(ShaderClosure, closure, MAX_CLOSURE)
-
 SD_VAR(int, num_closure)
 SD_VAR(float, randb_closure)
 
-/* length of the ray being shaded */
-SD_VAR(float, ray_length)
-
-/* ray bounce depth */
-SD_VAR(int, ray_depth)
-
-/* ray transparent depth */
-SD_VAR(int, transparent_depth)
-
-SD_VAR(int, pad1)
-SD_VAR(int, pad2)
-SD_VAR(int, pad3)
+/* ray start position, only set for backgrounds */
+SD_VAR(float3, ray_P)
+SD_VAR(differential3, ray_dP)
 
 #ifdef __OSL__
 SD_VAR(struct KernelGlobals *, osl_globals)
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 35b33ce..09c1f80 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -458,10 +458,11 @@ typedef struct differential {
 /* Ray */
 
 typedef struct Ray {
-	float t;		/* length of the ray */
-	float time;		/* time (for motion blur) */
 	float3 P;		/* origin */
 	float3 D;		/* direction */
+
+	float t;		/* length of the ray */
+	float time;		/* time (for motion blur) */
 #ifdef __RAY_DIFFERENTIALS__
 	differential3 dP;
 	differential3 dD;




More information about the Bf-blender-cvs mailing list