#version 450 | |
layout(local_size_x = 1) in; | |
layout(constant_id = 0) const int a = 100; | |
layout(constant_id = 1) const int b = 200; | |
layout(constant_id = 2) const int c = 300; | |
const int d = c + 50; | |
layout(constant_id = 3) const int e = 400; | |
struct A | |
{ | |
int member0[a]; | |
int member1[b]; | |
}; | |
struct B | |
{ | |
int member0[b]; | |
int member1[a]; | |
}; | |
layout(set = 1, binding = 0) buffer SSBO | |
{ | |
A member_a; | |
B member_b; | |
int v[a]; | |
int w[d]; | |
}; | |
void main() | |
{ | |
w[gl_GlobalInvocationID.x] += v[gl_GlobalInvocationID.x] + e; | |
} |