#version 450

layout(
  local_size_x = 64,
  local_size_y = 1,
  local_size_z = 1) in;

layout(binding = 0)
writeonly uniform image1D dst;

layout(push_constant)
uniform u_info_t {
  vec4 clear_value;
  ivec4 dst_offset;
  ivec4 dst_extent;
} u_info;

void main() {
  ivec3 thread_id = ivec3(gl_GlobalInvocationID);
  
  if (thread_id.x < u_info.dst_extent.x) {
    imageStore(dst,
      u_info.dst_offset.x + thread_id.x,
      u_info.clear_value);
  }
}