diff --git a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
index 49d6d962d53b56d7df10eecb9bb1ae002bad415c..defc9c3e246612bbd8138f8f7b25ff29002c416a 100644
--- a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
+++ b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
@@ -48,4 +48,6 @@ void main()	{
         ivec3(gl_GlobalInvocationID),
         gridValue
     );
+
+    memoryBarrierImage();
 }
\ No newline at end of file
diff --git a/projects/wobble_bobble/shaders/update_grid_forces.comp b/projects/wobble_bobble/shaders/update_grid_forces.comp
index bf1c8a17c2173e846b43009d5290c5a5ce68efd3..cfb8e20100dca232534c338ab082fa9931ffe53e 100644
--- a/projects/wobble_bobble/shaders/update_grid_forces.comp
+++ b/projects/wobble_bobble/shaders/update_grid_forces.comp
@@ -13,6 +13,8 @@ layout( push_constant ) uniform constants {
 };
 
 void main()	{
+    memoryBarrierImage();
+
     vec4 gridSample = imageLoad(
         gridImage,
         ivec3(gl_GlobalInvocationID)
@@ -42,4 +44,6 @@ void main()	{
         ivec3(gl_GlobalInvocationID),
         vec4(velocity, mass)
     );
+
+    memoryBarrierImage();
 }
\ No newline at end of file
diff --git a/projects/wobble_bobble/shaders/update_grid_velocities.comp b/projects/wobble_bobble/shaders/update_grid_velocities.comp
index 39e3084169ed0bdeb285af6de8150c7fc38be308..0178b4c5d777bbb1d0105623b923563765d57120 100644
--- a/projects/wobble_bobble/shaders/update_grid_velocities.comp
+++ b/projects/wobble_bobble/shaders/update_grid_velocities.comp
@@ -15,6 +15,8 @@ layout( push_constant ) uniform constants {
 };
 
 void main()	{
+    memoryBarrierImage();
+
     vec3 position = (vec3(gl_GlobalInvocationID) + vec3(0.5f)) / textureSize(sampler3D(gridTextureIn, gridSampler), 0);
     vec4 gridCurrentSample = texture(sampler3D(gridTextureIn, gridSampler), position);
 
@@ -26,4 +28,6 @@ void main()	{
         ivec3(gl_GlobalInvocationID),
         gridPreviousSample
     );
+
+    memoryBarrierImage();
 }
\ No newline at end of file
diff --git a/projects/wobble_bobble/shaders/update_particle_deformation.comp b/projects/wobble_bobble/shaders/update_particle_deformation.comp
index f38e17784b93b25231ebaec9cf3ca34407746165..7bfc923b39cd8478d2824084efa8bbbfabc9a4b0 100644
--- a/projects/wobble_bobble/shaders/update_particle_deformation.comp
+++ b/projects/wobble_bobble/shaders/update_particle_deformation.comp
@@ -18,6 +18,9 @@ layout( push_constant ) uniform constants {
 };
 
 void main()	{
+    memoryBarrierBuffer();
+    memoryBarrierImage();
+
     ParticleMinimal particle = particles[gl_GlobalInvocationID.x].minimal;
     mat3 deformation = mat3(particles[gl_GlobalInvocationID.x].deformation);
 
@@ -30,4 +33,6 @@ void main()	{
     mat3 deformation_elastic = (mat3(1.0f) + grad_velocity * dt) * deformation;
 
     particles[gl_GlobalInvocationID.x].deformation = mat4(deformation_elastic);
+
+    memoryBarrierBuffer();
 }
\ No newline at end of file
diff --git a/projects/wobble_bobble/shaders/update_particle_positions.comp b/projects/wobble_bobble/shaders/update_particle_positions.comp
index b3433928ceb8157358274e105a9f2244d40739cb..270c2108715b1d6829b9bd51627b3e7ad1448a2b 100644
--- a/projects/wobble_bobble/shaders/update_particle_positions.comp
+++ b/projects/wobble_bobble/shaders/update_particle_positions.comp
@@ -15,9 +15,13 @@ layout( push_constant ) uniform constants {
 };
 
 void main()	{
+    memoryBarrierBuffer();
+
     if (gl_GlobalInvocationID.x < particles.length()) {
         vec3 position = particles[gl_GlobalInvocationID.x].minimal.position;
         position = position + particles[gl_GlobalInvocationID.x].minimal.velocity * dt;
         particles[gl_GlobalInvocationID.x].minimal.position = position;
     }
+
+    memoryBarrierBuffer();
 }
\ No newline at end of file
diff --git a/projects/wobble_bobble/shaders/update_particle_velocities.comp b/projects/wobble_bobble/shaders/update_particle_velocities.comp
index 407f34d0fc814f358af793dab0459810a00b2528..ecd57e12afcd54da58faa7b8e1d6797cf843d894 100644
--- a/projects/wobble_bobble/shaders/update_particle_velocities.comp
+++ b/projects/wobble_bobble/shaders/update_particle_velocities.comp
@@ -13,6 +13,9 @@ layout(set=0, binding=1) uniform texture3D gridImage;
 layout(set=0, binding=2) uniform sampler gridSampler;
 
 void main()	{
+    memoryBarrierBuffer();
+    memoryBarrierImage();
+
     if (gl_GlobalInvocationID.x < particles.length()) {
         vec3 position = particles[gl_GlobalInvocationID.x].minimal.position;
         float mass = particles[gl_GlobalInvocationID.x].minimal.mass;
@@ -28,4 +31,6 @@ void main()	{
             particles[gl_GlobalInvocationID.x].minimal.velocity = gridVelocity * mass / gridMass;
         }
     }
+
+    memoryBarrierBuffer();
 }
\ No newline at end of file