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
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-05-04 20:53:56 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-05-04 21:01:04 +0300
commit54f447ecde72ab97c058d3b81f616751ef1677e1 (patch)
tree714dc5c8415ce36c2f84804c87d56769925d8790 /intern/cycles/kernel/svm/svm.h
parentac9ebc9de31fc923f3e867e6741298a1e1eb175f (diff)
Fix T96718: Cycles invalid pixels when using bump normal for light emission
A shader node setup accidentally used the bump normal as emission. Bump mapping nodes are excluded from light shader evaluation to reduce kernel size and register pressure, but in that case should write zero instead of leaving memory uninitialized. Thanks to Lukas for helping identify the cause.
Diffstat (limited to 'intern/cycles/kernel/svm/svm.h')
-rw-r--r--intern/cycles/kernel/svm/svm.h20
1 files changed, 4 insertions, 16 deletions
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 6b969da7e52..08352a6231f 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -304,22 +304,13 @@ ccl_device void svm_eval_nodes(KernelGlobals kg,
}
break;
case NODE_SET_DISPLACEMENT:
- IF_KERNEL_NODES_FEATURE(BUMP)
- {
- svm_node_set_displacement(kg, sd, stack, node.y);
- }
+ svm_node_set_displacement<node_feature_mask>(kg, sd, stack, node.y);
break;
case NODE_DISPLACEMENT:
- IF_KERNEL_NODES_FEATURE(BUMP)
- {
- svm_node_displacement(kg, sd, stack, node);
- }
+ svm_node_displacement<node_feature_mask>(kg, sd, stack, node);
break;
case NODE_VECTOR_DISPLACEMENT:
- IF_KERNEL_NODES_FEATURE(BUMP)
- {
- offset = svm_node_vector_displacement(kg, sd, stack, node, offset);
- }
+ offset = svm_node_vector_displacement<node_feature_mask>(kg, sd, stack, node, offset);
break;
case NODE_TEX_IMAGE:
offset = svm_node_tex_image(kg, sd, stack, node, offset);
@@ -331,10 +322,7 @@ ccl_device void svm_eval_nodes(KernelGlobals kg,
offset = svm_node_tex_noise(kg, sd, stack, node.y, node.z, node.w, offset);
break;
case NODE_SET_BUMP:
- IF_KERNEL_NODES_FEATURE(BUMP)
- {
- svm_node_set_bump(kg, sd, stack, node);
- }
+ svm_node_set_bump<node_feature_mask>(kg, sd, stack, node);
break;
case NODE_ATTR_BUMP_DX:
IF_KERNEL_NODES_FEATURE(BUMP)