【发布时间】:2020-07-21 21:02:24
【问题描述】:
此 GLSL 源代码编译(使用 GL_COMPUTE_SHADER)并运行没有问题(仅使用输出图像):
#version 460
layout (local_size_x = 16, local_size_y = 16) in;
layout (rgba8, binding = 3) uniform writeonly lowp image2D destTex;
void main() {
ivec2 pixel_coords = ivec2(gl_GlobalInvocationID.xy);
imageStore(destTex, pixel_coords, vec4(1.0, 0.0, 0.0, 1.0)); // Solid red
}
但如果我只添加两行代码以允许输入图像,则以下内容无法编译:
#version 460
layout (local_size_x = 16, local_size_y = 16) in;
layout (rgba8, binding = 1) uniform readonly lowp image2D srcTex;
layout (rgba8, binding = 3) uniform writeonly lowp image2D destTex;
void main() {
ivec2 pixel_coords = ivec2(gl_GlobalInvocationID.xy);
vec4 color = imageLoad(srcTex, pixel_coords);
imageStore(destTex, pixel_coords, color);
}
编译器的输出是:
0(7) : error C0000: syntax error, unexpected $undefined, expecting "::" at token "<undefined>"
0(8) : error C1503: undefined variable "color"
有什么想法吗?
【问题讨论】:
标签: opengl glsl gpgpu compute-shader