Jelajahi Sumber

GPU: Improve syncing.

Fernando Sahmkow 4 tahun lalu
induk
melakukan
d0a5a48948
1 mengubah file dengan 10 tambahan dan 3 penghapusan
  1. 10 3
      src/video_core/gpu.cpp

+ 10 - 3
src/video_core/gpu.cpp

@@ -503,8 +503,15 @@ struct GPU::Impl {
         case BufferMethods::SemaphoreAddressHigh:
         case BufferMethods::SemaphoreAddressHigh:
         case BufferMethods::SemaphoreAddressLow:
         case BufferMethods::SemaphoreAddressLow:
         case BufferMethods::SemaphoreSequence:
         case BufferMethods::SemaphoreSequence:
-        case BufferMethods::UnkCacheFlush:
-        case BufferMethods::WrcacheFlush:
+            break;
+        case BufferMethods::UnkCacheFlush: {
+            rasterizer->SyncGuestHost();
+            break;
+        }
+        case BufferMethods::WrcacheFlush: {
+            rasterizer->SignalReference();
+            break;
+        }
         case BufferMethods::FenceValue:
         case BufferMethods::FenceValue:
             break;
             break;
         case BufferMethods::RefCnt:
         case BufferMethods::RefCnt:
@@ -514,7 +521,7 @@ struct GPU::Impl {
             ProcessFenceActionMethod();
             ProcessFenceActionMethod();
             break;
             break;
         case BufferMethods::WaitForInterrupt:
         case BufferMethods::WaitForInterrupt:
-            ProcessWaitForInterruptMethod();
+            rasterizer->WaitForIdle();
             break;
             break;
         case BufferMethods::SemaphoreTrigger: {
         case BufferMethods::SemaphoreTrigger: {
             ProcessSemaphoreTriggerMethod();
             ProcessSemaphoreTriggerMethod();