浏览代码

Fix 3D semaphore counter type 0 handling (#3380)

Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
Billy Laws 3 年之前
父节点
当前提交
d03124a992
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs

+ 3 - 3
Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs

@@ -44,7 +44,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
         /// </summary>
         /// </summary>
         private enum ReportCounterType
         private enum ReportCounterType
         {
         {
-            Zero = 0,
+            Payload = 0,
             InputVertices = 1,
             InputVertices = 1,
             InputPrimitives = 3,
             InputPrimitives = 3,
             VertexShaderInvocations = 5,
             VertexShaderInvocations = 5,
@@ -169,8 +169,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
 
 
             switch (type)
             switch (type)
             {
             {
-                case ReportCounterType.Zero:
-                    resultHandler(null, 0);
+                case ReportCounterType.Payload:
+                    resultHandler(null, (ulong)_state.State.SemaphorePayload);
                     break;
                     break;
                 case ReportCounterType.SamplesPassed:
                 case ReportCounterType.SamplesPassed:
                     counter = _context.Renderer.ReportCounter(CounterType.SamplesPassed, resultHandler, false);
                     counter = _context.Renderer.ReportCounter(CounterType.SamplesPassed, resultHandler, false);