aboutsummaryrefslogtreecommitdiff
path: root/BuddhaTest/Shaders/BuddhaCompute.glsl
blob: 49209ae19a499bba94df624a1e44f5dc7849314f (plain) (blame)
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
#version 430

layout(std430, binding=2) buffer renderedData
{
        uint width;
        uint height;
        uint counts_SSBO[];
};

uniform uint iterationCount;

void addToColorAt(uvec2 cell, uvec3 toAdd)
{
    uint firstIndex = 3*(cell.x + cell.y * width);
    atomicAdd(counts_SSBO[firstIndex],toAdd.x);
    atomicAdd(counts_SSBO[firstIndex+1],toAdd.y);
    atomicAdd(counts_SSBO[firstIndex+2],toAdd.z);
}


layout (local_size_x = 1, local_size_y = 1) in;
void main() {
    if(iterationCount < 1024)
        addToColorAt(uvec2(iterationCount%width,iterationCount/width),uvec3(1,0,0));
    else
        addToColorAt(uvec2(iterationCount%width,iterationCount/width),uvec3(0,1,0));
}