Bläddra i källkod

metal: also disable vsync for custom refresh rates

Evan Husted 1 år sedan
förälder
incheckning
1fbb0d8e7d
1 ändrade filer med 7 tillägg och 13 borttagningar
  1. 7 13
      src/Ryujinx.Graphics.Metal/Window.cs

+ 7 - 13
src/Ryujinx.Graphics.Metal/Window.cs

@@ -22,13 +22,15 @@ namespace Ryujinx.Graphics.Metal
 
 
         private int _requestedWidth;
         private int _requestedWidth;
         private int _requestedHeight;
         private int _requestedHeight;
-
-        // private bool _vsyncEnabled;
+        
         private AntiAliasing _currentAntiAliasing;
         private AntiAliasing _currentAntiAliasing;
         private bool _updateEffect;
         private bool _updateEffect;
         private IPostProcessingEffect _effect;
         private IPostProcessingEffect _effect;
         private IScalingFilter _scalingFilter;
         private IScalingFilter _scalingFilter;
         private bool _isLinear;
         private bool _isLinear;
+
+        public bool IsVSyncEnabled => _metalLayer.DisplaySyncEnabled;
+        
         // private float _scalingFilterLevel;
         // private float _scalingFilterLevel;
         private bool _updateScalingFilter;
         private bool _updateScalingFilter;
         private ScalingFilter _currentScalingFilter;
         private ScalingFilter _currentScalingFilter;
@@ -40,7 +42,7 @@ namespace Ryujinx.Graphics.Metal
             _metalLayer = metalLayer;
             _metalLayer = metalLayer;
         }
         }
 
 
-        private unsafe void ResizeIfNeeded()
+        private void ResizeIfNeeded()
         {
         {
             if (_requestedWidth != 0 && _requestedHeight != 0)
             if (_requestedWidth != 0 && _requestedHeight != 0)
             {
             {
@@ -54,7 +56,7 @@ namespace Ryujinx.Graphics.Metal
             }
             }
         }
         }
 
 
-        public unsafe void Present(ITexture texture, ImageCrop crop, Action swapBuffersCallback)
+        public void Present(ITexture texture, ImageCrop crop, Action swapBuffersCallback)
         {
         {
             if (_renderer.Pipeline is Pipeline pipeline && texture is Texture tex)
             if (_renderer.Pipeline is Pipeline pipeline && texture is Texture tex)
             {
             {
@@ -141,15 +143,7 @@ namespace Ryujinx.Graphics.Metal
         
         
         public void ChangeVSyncMode(VSyncMode vSyncMode)
         public void ChangeVSyncMode(VSyncMode vSyncMode)
         {
         {
-            switch (vSyncMode)
-            {
-                case VSyncMode.Unbounded:
-                    _metalLayer.DisplaySyncEnabled = false;
-                    break;
-                case VSyncMode.Switch:
-                    _metalLayer.DisplaySyncEnabled = true;
-                    break;
-            }
+            _metalLayer.DisplaySyncEnabled = vSyncMode is VSyncMode.Switch;
         }
         }
 
 
         public void SetAntiAliasing(AntiAliasing effect)
         public void SetAntiAliasing(AntiAliasing effect)