From dfcc629a23259855e686a1cf068af51e048e8492 Mon Sep 17 00:00:00 2001 From: Josh Morgenstern <josh@morgenstern.dev> Date: Tue, 14 Sep 2021 13:04:33 +0200 Subject: [PATCH] [#111] Check particle count in flip shader --- projects/sph/shaders/flip.comp | 10 ++++++++++ projects/sph/src/main.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/projects/sph/shaders/flip.comp b/projects/sph/shaders/flip.comp index 96f3e992..58829574 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 1141b625..b8972ed5 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()); -- GitLab