Commit: ccb866f9f68b0e37c0ca4d159daaa5096675462f
Author: Brecht Van Lommel
Date: Wed May 5 16:50:35 2021 +0200
Branches: cycles-x
https://developer.blender.org/rBccb866f9f68b0e37c0ca4d159daaa5096675462f
Cleanup: make ShaderType a template parameter for SVM nodes
===================================================================
M intern/cycles/kernel/svm/svm.h
M intern/cycles/kernel/svm/svm_closure.h
===================================================================
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 9ae19c3fa38..a1ae365b956 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -258,7 +258,7 @@ ccl_device_noinline void
svm_eval_nodes(INTEGRATOR_STATE_CONST_ARGS,
break;
}
case NODE_CLOSURE_BSDF:
- svm_node_closure_bsdf<node_feature_mask>(kg, sd, stack, node, type,
path_flag, &offset);
+ svm_node_closure_bsdf<node_feature_mask, type>(kg, sd, stack, node,
path_flag, &offset);
break;
case NODE_CLOSURE_EMISSION:
if (NODES_FEATURE(EMISSION)) {
@@ -414,12 +414,12 @@ ccl_device_noinline void
svm_eval_nodes(INTEGRATOR_STATE_CONST_ARGS,
break;
case NODE_CLOSURE_VOLUME:
if (NODES_FEATURE(VOLUME)) {
- svm_node_closure_volume(kg, sd, stack, node, type);
+ svm_node_closure_volume<type>(kg, sd, stack, node);
}
break;
case NODE_PRINCIPLED_VOLUME:
if (NODES_FEATURE(VOLUME)) {
- svm_node_principled_volume(kg, sd, stack, node, type, path_flag,
&offset);
+ svm_node_principled_volume<type>(kg, sd, stack, node, path_flag,
&offset);
}
break;
case NODE_MATH:
diff --git a/intern/cycles/kernel/svm/svm_closure.h
b/intern/cycles/kernel/svm/svm_closure.h
index a62616b3f85..27060f29a38 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -57,14 +57,9 @@ ccl_device void svm_node_glass_setup(
}
}
-template<uint node_feature_mask>
-ccl_device void svm_node_closure_bsdf(const KernelGlobals *kg,
- ShaderData *sd,
- float *stack,
- uint4 node,
- ShaderType shader_type,
- int path_flag,
- int *offset)
+template<uint node_feature_mask, ShaderType shader_type>
+ccl_device void svm_node_closure_bsdf(
+ const KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int
path_flag, int *offset)
{
uint type, param1_offset, param2_offset;
@@ -77,7 +72,7 @@ ccl_device void svm_node_closure_bsdf(const KernelGlobals *kg,
uint4 data_node = read_node(kg, offset);
/* Only compute BSDF for surfaces, transparent variable is shared with
volume extinction. */
- if (!NODES_FEATURE(BSDF) || mix_weight == 0.0f || shader_type !=
SHADER_TYPE_SURFACE) {
+ if ((!NODES_FEATURE(BSDF) || shader_type != SHADER_TYPE_SURFACE) ||
mix_weight == 0.0f) {
if (type == CLOSURE_BSDF_PRINCIPLED_ID) {
/* Read all principled BSDF extra data to get the right offset. */
read_node(kg, offset);
@@ -910,8 +905,11 @@ ccl_device void svm_node_closure_bsdf(const KernelGlobals
*kg,
}
}
-ccl_device void svm_node_closure_volume(
- const KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node,
ShaderType shader_type)
+template<ShaderType shader_type>
+ccl_device void svm_node_closure_volume(const KernelGlobals *kg,
+ ShaderData *sd,
+ float *stack,
+ uint4 node)
{
#ifdef __VOLUME__
/* Only sum extinction for volumes, variable is shared with surface
transparency. */
@@ -962,13 +960,9 @@ ccl_device void svm_node_closure_volume(
#endif
}
-ccl_device void svm_node_principled_volume(const KernelGlobals *kg,
- ShaderData *sd,
- float *stack,
- uint4 node,
- ShaderType shader_type,
- int path_flag,
- int *offset)
+template<ShaderType shader_type>
+ccl_device void svm_node_principled_volume(
+ const KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int
path_flag, int *offset)
{
#ifdef __VOLUME__
uint4 value_node = read_node(kg, offset);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs