Revision control
Copy as Markdown
#version 440
layout(location = 0) in vec2 v_texcoord;
layout(location = 0) out vec4 fragColor;
layout(binding = 1) uniform sampler2D tex;
layout(binding = 2) uniform sampler2D tex2;
layout(binding = 3) uniform sampler2D tex3;
layout (binding = 4, rgba8) uniform readonly image2D image0;
layout (binding = 5, rgba8) uniform writeonly image2D image1;
layout(std140, binding = 10) buffer storageBuf {
vec4 whatever;
} buf;
layout(std140, binding = 11) uniform buf {
mat4 mvp;
} ubuf;
layout(std140, binding = 12) uniform buf2 {
float f;
} ubuf2;
void main()
{
vec4 c = texture(tex, v_texcoord) * texture(tex2, v_texcoord) * texture(tex3, v_texcoord);
c = ubuf.mvp * c;
c *= ubuf2.f;
c *= buf.whatever;
c += imageLoad(image0, ivec2(0, 0));
imageStore(image1, ivec2(0, 0), c);
fragColor = c;
}