glslc-缺少入口点,即使有-fentry点
使用glslc-缺少入口点,即使有-fentry点,glsl,vulkan,spir-v,Glsl,Vulkan,Spir V,使用glslc--target env=“vulkan1.1”-fentry point=“mainColor”test.frag时,会出现错误 test.frag内容: #version 450 layout (location=0) in vec4 color; layout (location=0) out vec4 fragColor; void mainColor() { fragColor = color; } void mainWhite() { fragCo
glslc--target env=“vulkan1.1”-fentry point=“mainColor”test.frag
时,会出现错误
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);
}
我做错了什么?如何修复此编译错误?我做错了什么 见: GLSL只允许每个阶段使用一个入口点,因此每个编译单元可以使用0或1,并且必须调用
main()
。[……]
及
[…]统一控制流是进入main()
,[…]时的初始状态
如何修复此编译错误
声明
main()
函数。主函数正在更改,我想在一个二进制文件中使用mainColor作为main进行编译,然后在另一个二进制文件中使用mainWhite进行编译。这是-fentry point所期望的,不是吗?@Calvin Ruiz是的,我知道,这在Vulkan和SPIR-V中是可能的,但在GLSL中是不可能的:“GLSL只允许每个阶段有一个入口点,[…]”@Calvin Ruiz这在最新的GLSL版本(4.60)中是不可能的,但在将来可能实现。
#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);
}