#version 450 layout( local_size_x = 64, local_size_y = 1, local_size_z = 1) in; layout(binding = 0) writeonly uniform imageBuffer dst; layout(push_constant) uniform u_info_t { vec4 clear_value; ivec4 dst_offset; ivec4 dst_size; } u_info; void main() { ivec3 thread_id = ivec3(gl_GlobalInvocationID.x); if (thread_id.x < u_info.dst_size.x) imageStore(dst, thread_id.x + u_info.dst_offset.x, u_info.clear_value); }