// Data the host uploads for the GPU wand / projectile system: cast requests, shot nodes and specs (also appended to by the GPU). layout(std430, set = 0, binding = 35) buffer FxHost { // written by the host: cast requests, shot nodes and specs ivec4 hhead; // x, y: number of requests in list 0 / 1 vec4 hcast[1024]; // 2 lists x 256 requests x 2 vec4: (x, y, dir x, dir y), (node or -boom-1, team, seed, flags) vec4 hnodes[8192]; // 2048 nodes x 4 vec4 ivec4 hspecs[16384]; // 4096 specs x 4 ivec4 ivec4 hcollision; // x: compact collision target count, rebuilt on the GPU before flight int htargets[4096]; // ascending entity slots; preserves first-hit ordering };