aboutsummaryrefslogtreecommitdiff
path: root/shaders/spv/shader_copy.comp
blob: 876bdf741c90d6fc12cf1eb33264e0cde61fead9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#version 310 es

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

layout (binding = 0) readonly buffer InBuf {
    uvec4 data[];
} in_buf;

layout (binding = 1) writeonly buffer OutBuf {
    uvec4 data[];
} out_buf;

layout (push_constant) uniform PushConsts {
    uint in_img_width;
    uint in_x_offset;
    uint out_img_width;
    uint out_x_offset;
    uint copy_width;
} prop;

void main ()
{
    uvec2 g_id = gl_GlobalInvocationID.xy;
    g_id.x = min (g_id.x, prop.copy_width - 1u);

    out_buf.data[g_id.y * prop.out_img_width + prop.out_x_offset + g_id.x] =
        in_buf.data[g_id.y * prop.in_img_width + prop.in_x_offset + g_id.x];
}