diff options
Diffstat (limited to 'source/blender/gpu/intern/gpu_codegen.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_codegen.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 12292f4897c..496302bb44e 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -718,7 +718,7 @@ static char *code_generate_vertex(ListBase *nodes, const GPUMatType type) GPUNode *node; GPUInput *input; char *code; - char *vertcode; + char *vertcode = NULL; for (node = nodes->first; node; node = node->next) { for (input = node->inputs.first; input; input = input->next) { @@ -1615,7 +1615,16 @@ GPUPass *GPU_generate_pass(ListBase *nodes, GPUNodeLink *outlink, fragmentcode = code_generate_fragment(nodes, outlink->output); vertexcode = code_generate_vertex(nodes, type); geometrycode = code_generate_geometry(nodes, use_opensubdiv); - shader = GPU_shader_create(vertexcode, fragmentcode, geometrycode, glsl_material_library, NULL, 0, 0, 0); + shader = GPU_shader_create_ex(vertexcode, + fragmentcode, + geometrycode, + glsl_material_library, + NULL, + 0, + 0, + 0, + use_opensubdiv ? GPU_SHADER_FLAGS_SPECIAL_OPENSUBDIV + : GPU_SHADER_FLAGS_NONE); /* failed? */ if (!shader) { |