From d03124a9921f2dd9f3d52c8aa7c7b6dc5d4f7aef Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Thu, 2 Jun 2022 23:51:36 +0100 Subject: [PATCH] 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. --- Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs b/Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs index 986c02aba..6fc931f78 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Threed/SemaphoreUpdater.cs @@ -44,7 +44,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed /// private enum ReportCounterType { - Zero = 0, + Payload = 0, InputVertices = 1, InputPrimitives = 3, VertexShaderInvocations = 5, @@ -169,8 +169,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed switch (type) { - case ReportCounterType.Zero: - resultHandler(null, 0); + case ReportCounterType.Payload: + resultHandler(null, (ulong)_state.State.SemaphorePayload); break; case ReportCounterType.SamplesPassed: counter = _context.Renderer.ReportCounter(CounterType.SamplesPassed, resultHandler, false);