Просмотр исходного кода

Don't restore Viewport 0 if it hasn't been set yet. (#3219)

Fixes a driver crash when starting some games caused by #3217
riperiperi 4 лет назад
Родитель
Сommit
d1146a5af2
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      Ryujinx.Graphics.OpenGL/Pipeline.cs

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

@@ -612,7 +612,7 @@ namespace Ryujinx.Graphics.OpenGL
                     _program?.Bind();
                     _program?.Bind();
                     _unit0Sampler?.Bind(0);
                     _unit0Sampler?.Bind(0);
 
 
-                    GL.ViewportArray(0, 1, _viewportArray);
+                    RestoreViewport0();
 
 
                     Enable(EnableCap.CullFace, _cullEnable);
                     Enable(EnableCap.CullFace, _cullEnable);
                     Enable(EnableCap.StencilTest, _stencilTestEnable);
                     Enable(EnableCap.StencilTest, _stencilTestEnable);
@@ -1501,7 +1501,10 @@ namespace Ryujinx.Graphics.OpenGL
 
 
         public void RestoreViewport0()
         public void RestoreViewport0()
         {
         {
-            GL.ViewportArray(0, 1, _viewportArray);
+            if (_viewportArray.Length > 0)
+            {
+                GL.ViewportArray(0, 1, _viewportArray);
+            }
         }
         }
 
 
         public bool TryHostConditionalRendering(ICounterEvent value, ulong compare, bool isEqual)
         public bool TryHostConditionalRendering(ICounterEvent value, ulong compare, bool isEqual)