From d1146a5af20dcda5bb6bf8cb2f702bca1c789408 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Sun, 20 Mar 2022 17:48:43 +0000 Subject: [PATCH] Don't restore Viewport 0 if it hasn't been set yet. (#3219) Fixes a driver crash when starting some games caused by #3217 --- Ryujinx.Graphics.OpenGL/Pipeline.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs index 35278629b3..114fa68557 100644 --- a/Ryujinx.Graphics.OpenGL/Pipeline.cs +++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs @@ -612,7 +612,7 @@ namespace Ryujinx.Graphics.OpenGL _program?.Bind(); _unit0Sampler?.Bind(0); - GL.ViewportArray(0, 1, _viewportArray); + RestoreViewport0(); Enable(EnableCap.CullFace, _cullEnable); Enable(EnableCap.StencilTest, _stencilTestEnable); @@ -1501,7 +1501,10 @@ namespace Ryujinx.Graphics.OpenGL 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)