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.
This commit is contained in:
parent
92182495da
commit
66228d4362
Notes:
blender-bot
2023-02-14 03:31:55 +01:00
Referenced by issue #62090, Eevee shader compilation error: C1503: undefined variable "att1_is_srgb"
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue