• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 450 core
2#define PRECISION ${PRECISION}
3#define FORMAT ${FORMAT}
4
5layout(std430) buffer;
6
7/* Qualifiers: layout - storage - precision - memory */
8layout(set = 0, binding = 0, FORMAT) uniform PRECISION restrict writeonly image3D uOutputX;
9layout(set = 0, binding = 1, FORMAT) uniform PRECISION restrict writeonly image3D uOutputY;
10layout(set = 0, binding = 2, FORMAT) uniform PRECISION restrict writeonly image3D uOutputZ;
11layout(set = 0, binding = 3, FORMAT) uniform PRECISION restrict writeonly image3D uOutputW;
12
13layout(set = 0, binding = 4) uniform PRECISION sampler3D uInput;
14
15layout(set = 0, binding = 5) uniform PRECISION restrict Block {
16  ivec3 pos;
17} uBlock;
18
19void main() {
20    vec4 texel = texelFetch(uInput, uBlock.pos, 0);
21
22    ivec3 out_pos = ivec3(0, 0, 0);
23
24    imageStore(uOutputX, out_pos, vec4(texel.x, 0.0, 0.0, 0.0));
25    imageStore(uOutputY, out_pos, vec4(texel.y, 0.0, 0.0, 0.0));
26    imageStore(uOutputZ, out_pos, vec4(texel.z, 0.0, 0.0, 0.0));
27    imageStore(uOutputW, out_pos, vec4(texel.w, 0.0, 0.0, 0.0));
28}
29