ソースを参照

Force command flush after creating a syncpoint (#2056)

* Force command flush after creating GL sync

* This is not required, as the commands were flushed on creation.

* Move comment.
riperiperi 5 年 前
コミット
f2cdceb846
1 ファイル変更5 行追加2 行削除
  1. 5 2
      Ryujinx.Graphics.OpenGL/Sync.cs

+ 5 - 2
Ryujinx.Graphics.OpenGL/Sync.cs

@@ -26,6 +26,9 @@ namespace Ryujinx.Graphics.OpenGL
                 Handle = GL.FenceSync(SyncCondition.SyncGpuCommandsComplete, WaitSyncFlags.None)
             };
 
+            // Force commands to flush up to the syncpoint.
+            GL.ClientWaitSync(handle.Handle, ClientWaitSyncFlags.SyncFlushCommandsBit, 0);
+
             lock (Handles)
             {
                 Handles.Add(handle);
@@ -62,7 +65,7 @@ namespace Ryujinx.Graphics.OpenGL
                         return;
                     }
 
-                    WaitSyncStatus syncResult = GL.ClientWaitSync(result.Handle, ClientWaitSyncFlags.SyncFlushCommandsBit, 1000000000);
+                    WaitSyncStatus syncResult = GL.ClientWaitSync(result.Handle, ClientWaitSyncFlags.None, 1000000000);
                     
                     if (syncResult == WaitSyncStatus.TimeoutExpired)
                     {
@@ -86,7 +89,7 @@ namespace Ryujinx.Graphics.OpenGL
 
                 if (first == null) break;
 
-                WaitSyncStatus syncResult = GL.ClientWaitSync(first.Handle, ClientWaitSyncFlags.SyncFlushCommandsBit, 0);
+                WaitSyncStatus syncResult = GL.ClientWaitSync(first.Handle, ClientWaitSyncFlags.None, 0);
 
                 if (syncResult == WaitSyncStatus.AlreadySignaled)
                 {