diff --git a/projects/sph/shaders/flip.comp b/projects/sph/shaders/flip.comp index 96f3e992f8bd34bd0688801e917c75d2d62462e5..588295747e7847378c43dc446e983427761b8ca6 100644 --- a/projects/sph/shaders/flip.comp +++ b/projects/sph/shaders/flip.comp @@ -23,8 +23,18 @@ layout(std430, binding = 0) writeonly buffer buffer_outParticle Particle outParticle[]; }; +layout( push_constant ) uniform constants{ + float deltaTime; + float particleCount; +}; + void main() { uint id = gl_GlobalInvocationID.x; + + if(id >= int(particleCount)) + { + return; + } outParticle[id].force = inParticle[id].force; outParticle[id].density = inParticle[id].density; diff --git a/projects/sph/src/main.cpp b/projects/sph/src/main.cpp index 1141b625bc5605d5c78a4e97e003938a7dbce8fa..b8972ed53cc73e4bea53fb8efa3e1625c4f4ec72 100644 --- a/projects/sph/src/main.cpp +++ b/projects/sph/src/main.cpp @@ -308,7 +308,7 @@ int main(int argc, const char **argv) { computePipeline4, computeDispatchCount, { vkcv::DescriptorSetUsage(0,core.getDescriptorSet(computeDescriptorSet4).vulkanHandle) }, - vkcv::PushConstants(0)); + pushConstantsCompute); core.recordBufferMemoryBarrier(cmdStream, particleBuffer1.getHandle()); core.recordBufferMemoryBarrier(cmdStream, particleBuffer2.getHandle());