diff options
Diffstat (limited to 'graphics/asymptote/base/shaders/partialsum.glsl')
-rw-r--r-- | graphics/asymptote/base/shaders/partialsum.glsl | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/graphics/asymptote/base/shaders/partialsum.glsl b/graphics/asymptote/base/shaders/partialsum.glsl deleted file mode 100644 index d00195bb3a..0000000000 --- a/graphics/asymptote/base/shaders/partialsum.glsl +++ /dev/null @@ -1,37 +0,0 @@ -layout(local_size_x=PROCESSORS) in; - -uniform uint elements; - -layout(binding=0, std430) buffer sumBuffer -{ - uint sum[]; -}; - -shared uint sharedData[PROCESSORS]; - -void main(void) -{ - uint id=gl_LocalInvocationID.x; - sharedData[id]=sum[id+1u]; - - barrier(); - - uint index=id << 1u; - sharedData[index+1u] += sharedData[index]; - barrier(); - for(uint step=1u; step < STEPSM1; step++) { - uint mask=(1u << step)-1u; - uint index=((id >> step) << (step+1u))+mask; - uint windex=index+(id&mask)+1u; - sharedData[windex] += sharedData[index]; - barrier(); - } - uint mask=(1u << STEPSM1)-1u; - index=((id >> STEPSM1) << (STEPSM1+1u))+mask; - uint windex=index+(id&mask)+1u; - if(windex < PROCESSORS) - sharedData[windex] += sharedData[index]; - barrier(); - - sum[id+1u]=sharedData[id]; -} |