diff --git a/src/main/resources/assets/voxy/shaders/util/prefixsum/inital3.comp b/src/main/resources/assets/voxy/shaders/util/prefixsum/inital3.comp index b904ff80..e1863c6d 100644 --- a/src/main/resources/assets/voxy/shaders/util/prefixsum/inital3.comp +++ b/src/main/resources/assets/voxy/shaders/util/prefixsum/inital3.comp @@ -92,11 +92,18 @@ void main() { memoryBarrierShared(); barrier(); + + //hate amd hate amd hate amd hate amd + + uint val = warpPrefixSum[gl_LocalInvocationID.x&3u]; + + subgroupBarrier(); + //Use warp to do entire add in 1 reduction + uint extraJank = subgroupExclusiveAdd(val); + + barrier(); if (gl_LocalInvocationID.x<4) { - uint val = warpPrefixSum[gl_SubgroupInvocationID]; - subgroupBarrier(); - //Use warp to do entire add in 1 reduction - warpPrefixSum[gl_SubgroupInvocationID] = subgroupExclusiveAdd(val); + warpPrefixSum[gl_LocalInvocationID.x] = extraJank; } memoryBarrierShared();