Opengl GLSL 4.2-语法错误:";“布局”;解析错误

Opengl GLSL 4.2-语法错误:";“布局”;解析错误,opengl,glsl,opengl-4,Opengl,Glsl,Opengl 4,所以,我最近发现了一个有趣的着色器并尝试编译它 但是,GLSL编译器引发了以下错误: ERROR: 0:50: error(#132) Syntax error: "layout" parse error @(片段着色器) 详情: 卡:AMD Radeon HD 7870(支持OpenGL 4.20) 我尝试了4.2驱动程序和4.3测试版驱动程序 布局限定符不能是函数签名的一部分GLSL 4.40规范第6.1.1节定义了功能原型的以下语法: 功能原型: 精度限定符类型函数名(*参数限定符*精

所以,我最近发现了一个有趣的着色器并尝试编译它

但是,GLSL编译器引发了以下错误:

ERROR: 0:50: error(#132) Syntax error: "layout" parse error
@(片段着色器)

详情:

  • 卡:AMD Radeon HD 7870(支持OpenGL 4.20)
  • 我尝试了4.2驱动程序和4.3测试版驱动程序
布局限定符不能是函数签名的一部分GLSL 4.40规范第6.1.1节定义了功能原型的以下语法:

功能原型:
精度限定符类型函数名(*参数限定符*精度限定符类型名称数组说明符,…)

现在,参数限定符可以是

常数
中的
输出
inout
精确
内存限定符(易失性(,…)
精度限定符(低值,…)


第4.10节明确规定:

布局限定符不能用于形式函数参数[…]


如果您放弃布局限定符,您应该不会有问题。如果没有,则是驱动程序错误。

您可以发布整个顶点和片段着色器代码吗?@bwroga可以找到原始代码。我稍微修改了样式(不应该影响任何东西)哦,哇,这修正了错误。但是,当我尝试将图像变量传递给该函数时(例如,
ImageAtomic_Average_RGBA8(体素Fragtex_Normal,ivec3(基本体素),Normal);
-声明:
layout(r32ui)uniform volatile uimage3D体素Fragtex_Normal;
),编译器抛出以下错误:
错误(\373)图像限定符的使用无效
。这是否相关?它是否在调用函数的行生成错误?还是在图像声明上?或者其他地方?@structinf:另外,GitHub版本是您当前的版本吗?除了一些样式修改之外,是的。
#version 420

...

uint ImageAtomic_Average_RGBA8(layout (r32ui) volatile uimage3D Img, ivec3 Coords, vec4 NewVal)
{ ... }