From 93c240d31fbfa25cef2696ad4a0c8a723e67ff26 Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Tue, 11 Sep 2018 18:08:36 +0200
Subject: [PATCH] save error state before we reset it on texture creation

---
 src/render.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/render.c b/src/render.c
index f272529..a66835e 100644
--- a/src/render.c
+++ b/src/render.c
@@ -137,6 +137,8 @@ DWORD WINAPI render_main(void)
     if (gotOpenglV3)
         scaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader);
 
+    BOOL GotError = FALSE;
+
     // primary surface texture
     GLenum surfaceFormat = GL_LUMINANCE;
     GLuint surfaceTexIds[TEXTURE_COUNT];
@@ -150,6 +152,8 @@ DWORD WINAPI render_main(void)
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
+        GotError = GotError || glGetError() != GL_NO_ERROR;
+
         while (glGetError() != GL_NO_ERROR);
 
         if (paletteConvProgram)
@@ -440,7 +444,7 @@ DWORD WINAPI render_main(void)
         glBindFramebuffer(GL_FRAMEBUFFER, 0);
     }
  
-    BOOL useOpenGL = !(ddraw->autorenderer && (!paletteConvProgram || glGetError() != GL_NO_ERROR));
+    BOOL useOpenGL = !(ddraw->autorenderer && (!paletteConvProgram || GotError || glGetError() != GL_NO_ERROR));
 
     if (!paletteConvProgram)
         glEnable(GL_TEXTURE_2D);