2

使用glslc --targe-env="vulkan1.1" -fentry-point="mainColor" test.frag时出现错误

test.frag: error: Linking fragment stage: Missing entry point: Each stage requires one entry point 

test.frag 内容:

#version 450

layout (location=0) in vec4 color;
layout (location=0) out vec4 fragColor;

void mainColor()
{
    fragColor = color;
}

void mainWhite()
{
    fragColor = vec4(1, 1, 1, 1);
}

我究竟做错了什么 ?
如何修复此编译错误?

4

1 回答 1

1

我究竟做错了什么?

请参阅在单个模块中支持多个入口点 #605

GLSL 只允许每个阶段有一个入口点,因此每个编译单元有 0 或 1 个,并且必须调用main(). [...]

OpenGL 着色语言 4.60 规范 (HTML) - 3.8.2。动态统一的表达式和统一的控制流

[...]统一控制流是进入的初始状态main(),[...]

如何修复此编译错误?

声明main()函数。

于 2020-09-30T08:57:17.463 回答