diff --git a/projects/sph/shaders/force.comp b/projects/sph/shaders/force.comp
index 9830a42f11a527e570bc77bc2f5a65b347e35819..6d5f31d2a8b2e1774c6ee7d091085226e1eacabb 100644
--- a/projects/sph/shaders/force.comp
+++ b/projects/sph/shaders/force.comp
@@ -80,6 +80,7 @@ void main() {
     particle_data[gl_LocalInvocationIndex].pressure = inParticle[id].pressure;
 
     memoryBarrierShared();
+    barrier();
 
     const float h6 = pow(h, 6);
     externalForce = particle_data[gl_LocalInvocationIndex].density * gravity * vec3(-gravityDir.x,gravityDir.y,gravityDir.z);
diff --git a/projects/sph/shaders/pressure.comp b/projects/sph/shaders/pressure.comp
index eb2029e35760d732ac8b4095d0ef41819a256736..903da585a0b527fbd35df6bb0c6abcfa052ad3e4 100644
--- a/projects/sph/shaders/pressure.comp
+++ b/projects/sph/shaders/pressure.comp
@@ -63,6 +63,7 @@ void main() {
     position_data[gl_LocalInvocationIndex] = inParticle[id].position;
 
     memoryBarrierShared();
+    barrier();
 
     for(uint j = 1; j < gl_WorkGroupSize.x; j++) {
         uint i = (gl_LocalInvocationIndex + j) % gl_WorkGroupSize.x;