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
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-03-01 19:57:06 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-03-01 21:46:08 +0300
commit66228d4362a64b31ad5614033412ba0b21ca371f (patch)
tree72a4da13661c52ed77011f431aac96dd632f0be7 /source
parent92182495da881d54310bc6dd53afb91daf00116f (diff)
Fix T62090 : Eevee shader compilation: undefined variable "att1_is_srgb"
The geom shader check was not needed and this uncovered an error in the GPU_BARYCENTRIC_TEXCO optimization recently commited.
Diffstat (limited to 'source')
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_geometry.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index a2c25a9ffb4..63d875b07fd 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -889,7 +889,7 @@ static char *code_generate_vertex(ListBase *nodes, const char *vert_code, bool u
input->attr_id, attr_prefix_get(input->attr_type), hash);
/* Auto attribute can be vertex color byte buffer.
* We need to know and convert them to linear space in VS. */
- if (!use_geom && input->attr_type == CD_AUTO_FROM_NAME) {
+ if (input->attr_type == CD_AUTO_FROM_NAME) {
BLI_dynstr_appendf(ds, "uniform bool ba%u;\n", hash);
BLI_dynstr_appendf(ds, "#define att%d_is_srgb ba%u\n", input->attr_id, hash);
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.c b/source/blender/nodes/shader/nodes/node_shader_geometry.c
index 4c4ad7c4cc9..ec9b3a5443e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_geometry.c
+++ b/source/blender/nodes/shader/nodes/node_shader_geometry.c
@@ -37,11 +37,13 @@ static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *node, bNodeExecData
{
/* HACK: Don't request GPU_BARYCENTRIC_TEXCO if not used because it will
* trigger the use of geometry shader (and the performance penalty it implies). */
- eGPUBuiltin bary_builtin = (out[7].type == GPU_NONE) ? GPU_VIEW_NORMAL : GPU_BARYCENTRIC_TEXCO;
+ float val[2] = {0.0f, 0.0f};
+ GPUNodeLink *bary_link = (!out[5].hasoutput) ? GPU_constant(val) : GPU_builtin(GPU_BARYCENTRIC_TEXCO);
+
return GPU_stack_link(mat, node, "node_geometry", in, out,
GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL),
GPU_attribute(CD_ORCO, ""), GPU_builtin(GPU_OBJECT_MATRIX),
- GPU_builtin(GPU_INVERSE_VIEW_MATRIX), GPU_builtin(bary_builtin));
+ GPU_builtin(GPU_INVERSE_VIEW_MATRIX), bary_link);
}
/* node type definition */