Просмотр исходного кода

Fix texture 0 not being bound for compute

gdk 6 лет назад
Родитель
Сommit
396768f3b4
1 измененных файлов с 15 добавлено и 5 удалено
  1. 15 5
      Ryujinx.Graphics.OpenGL/Pipeline.cs

+ 15 - 5
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();
-        }
     }
 }