所以,我最近发现了一个有趣的着色器并尝试编译它。
但是,GLSL编译器抛出了以下错误:
ERROR: 0:50: error(#132) Syntax error: "layout" parse error
@(片段着色器)
#version 420
...
uint ImageAtomic_Average_RGBA8(layout (r32ui) volatile uimage3D Img, ivec3 Coords, vec4 NewVal)
{ ... }
详细说明:
答案 0 :(得分:1)
布局限定符不能是函数签名的一部分。 GLSL 4.40规范的第6.1.1节为函数原型定义了以下语法:
function-prototype:
精度限定符类型函数名称( *参数限定符* 精度限定符类型名称数组-specifier,...)
现在,参数限定符可以是
之一const
in
out
inout
准确
记忆限定符(易失性,...)
精度限定符( lowp ,...)
一致地,第4.10节明确指出:
布局限定符不能用于形式函数参数[..]
如果删除布局限定符,则应该没问题。如果没有,那就是驱动程序错误。