[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