#version 450

layout(local_size_x = 8, local_size_y = 8) in;

layout(binding = 0)
writeonly uniform uimage2D dst;

layout(push_constant)
uniform u_info_t {
  uvec4 clear_value;
  ivec2 dst_offset;
  ivec2 dst_extent;
} u_info;

void main() {
  ivec3 thread_id = ivec3(gl_GlobalInvocationID);

  if (all(lessThan(thread_id.xy, u_info.dst_extent.xy)))
    imageStore(dst, u_info.dst_offset.xy + thread_id.xy, u_info.clear_value);
}
