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

Fixes a driver crash when starting some games caused by #3217
This commit is contained in:
riperiperi 2022-03-20 17:48:43 +00:00 committed by GitHub
parent 79408b68c3
commit d1146a5af2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)