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:
authorClément Foucault <foucault.clem@gmail.com>2017-11-28 19:22:15 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-11-28 19:22:37 +0300
commite559a99a04131ac0e5edea063d955128815627b8 (patch)
tree967bba4585c62555e3505d126f9074973b96a65e /source/blender/gpu
parent701ebb0a64c67ab6190b8c02040e8de25e47ed8c (diff)
Eevee: Fix T53413: Crash when using displacement bump relink.
ntree_shader_relink_displacement is creating a transient node that does not have a correct original to point to. In this case we revert to constant uniform.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index bc91df895c8..9e4daa2a036 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -1589,6 +1589,15 @@ static GPUNodeLink *gpu_uniformbuffer_link(
GPUMaterial *mat, bNode *node, GPUNodeStack *stack, const int index, const eNodeSocketInOut in_out)
{
bNodeSocket *socket;
+
+ /* Some nodes can have been create on the fly and does
+ * not have an original to point to. (i.e. the bump from
+ * ntree_shader_relink_displacement). In this case just
+ * revert to static constant folding. */
+ if (node->original == NULL) {
+ return NULL;
+ }
+
if (in_out == SOCK_IN) {
socket = BLI_findlink(&node->original->inputs, index);
}