[Bf-blender-cvs] [e8f04048752] tmp-eevee-aov: Fix crash volumetric shaders + Use custom Closure when no matching AOV

Jeroen Bakker noreply at git.blender.org
Thu Sep 24 15:16:38 CEST 2020


Commit: e8f04048752afdd336270564cc871cd8bd026099
Author: Jeroen Bakker
Date:   Thu Sep 24 15:15:53 2020 +0200
Branches: tmp-eevee-aov
https://developer.blender.org/rBe8f04048752afdd336270564cc871cd8bd026099

Fix crash volumetric shaders + Use custom Closure when no matching AOV

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

M	source/blender/gpu/intern/gpu_codegen.c

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

diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index d530326dcd9..77b66f486af 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -582,6 +582,7 @@ static char *code_generate_fragment(GPUMaterial *material,
   codegen_declare_tmps(ds, graph);
   codegen_call_functions(ds, graph);
 
+  BLI_dynstr_append(ds, "\t#ifndef VOLUMETRICS\n");
   BLI_dynstr_append(ds, "\tif (renderPassAOV) {\n");
   bool first_aov = true;
   LISTBASE_FOREACH (GPUNodeGraphOutputLink *, aovlink, &graph->outlink_aovs) {
@@ -594,8 +595,13 @@ static char *code_generate_fragment(GPUMaterial *material,
     codegen_final_output(ds, aovlink->outlink->output);
     BLI_dynstr_append(ds, "\t\t}\n");
   }
-  BLI_dynstr_append(ds, "\t\treturn CLOSURE_DEFAULT;\n");
-  BLI_dynstr_append(ds, "\t} else {\n\t\t");
+  BLI_dynstr_append(ds, "\t\tClosure no_aov = CLOSURE_DEFAULT;\n");
+  BLI_dynstr_append(ds, "\t\tno_aov.holdout = 1.0;\n");
+  BLI_dynstr_append(ds, "\t\treturn no_aov;\n");
+  BLI_dynstr_append(ds, "\t} else {\n");
+  BLI_dynstr_append(ds, "\t#else /* VOLUMETRICS */\n");
+  BLI_dynstr_append(ds, "\t{\n");
+  BLI_dynstr_append(ds, "\t#endif /* VOLUMETRICS */\n\t\t");
   codegen_final_output(ds, graph->outlink->output);
   BLI_dynstr_append(ds, "\t}\n");



More information about the Bf-blender-cvs mailing list