First Commit
This commit is contained in:
37
externals/glslang/Test/spv.structCopy.comp
vendored
Normal file
37
externals/glslang/Test/spv.structCopy.comp
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
#version 460
|
||||
layout(local_size_x = 512, local_size_y = 1) in;
|
||||
layout(std430) buffer;
|
||||
|
||||
struct MyStruct {
|
||||
uint a;
|
||||
uint b;
|
||||
uint c;
|
||||
};
|
||||
|
||||
layout(binding = 0) buffer MyStructs {
|
||||
uint count;
|
||||
MyStruct data[];
|
||||
}
|
||||
my_structs;
|
||||
|
||||
layout(binding = 1) buffer Output {
|
||||
uint a;
|
||||
uint b;
|
||||
uint c;
|
||||
}
|
||||
o;
|
||||
|
||||
shared MyStruct s[512];
|
||||
|
||||
void main() {
|
||||
s[0] = MyStruct(1, 2, 3);
|
||||
|
||||
uint id = gl_GlobalInvocationID.x;
|
||||
MyStruct ms =
|
||||
id > my_structs.count ? s[id - my_structs.count] : my_structs.data[id];
|
||||
|
||||
atomicAdd(o.a, ms.a);
|
||||
atomicAdd(o.b, ms.b);
|
||||
atomicAdd(o.c, ms.c);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user