diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs
index 745926e740..4eb94097f9 100644
--- a/Ryujinx.Graphics.OpenGL/Pipeline.cs
+++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs
@@ -285,6 +285,13 @@ namespace Ryujinx.Graphics.OpenGL
 
         public void Dispatch(int groupsX, int groupsY, int groupsZ)
         {
+            if (!_program.IsLinked)
+            {
+                return;
+            }
+
+            PrepareForDispatch();
+
             GL.DispatchCompute(groupsX, groupsY, groupsZ);
         }
 
@@ -872,6 +879,14 @@ namespace Ryujinx.Graphics.OpenGL
             }
         }
 
+        private void PrepareForDispatch()
+        {
+            if (_unit0Texture != null)
+            {
+                _unit0Texture.Bind(0);
+            }
+        }
+
         private void PrepareForDraw()
         {
             _vertexArray.Validate();
@@ -894,10 +909,5 @@ namespace Ryujinx.Graphics.OpenGL
                     (_componentMasks[index] & 8u) != 0);
             }
         }
-
-        public void RebindProgram()
-        {
-            _program?.Bind();
-        }
     }
 }