From a4231ffd001ba1bfa91702ba0abd3b8587f926d6 Mon Sep 17 00:00:00 2001
From: Christoph Oelckers <coelckers@users.noreply.github.com>
Date: Fri, 19 May 2017 21:33:48 +0200
Subject: [PATCH] - more handling of some very broken old ATI drivers.

---
 src/gl/system/gl_interface.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/gl/system/gl_interface.cpp b/src/gl/system/gl_interface.cpp
index 308d741bb..e24ac553b 100644
--- a/src/gl/system/gl_interface.cpp
+++ b/src/gl/system/gl_interface.cpp
@@ -213,6 +213,16 @@ void gl_LoadExtensions()
 			gl.glslversion = 0;
 			gl.flags |= RFL_NO_CLIP_PLANES;
 		}
+		else if (gl.glslversion < 1.4f && !CheckExtension("GL_ARB_uniform_buffer_object"))
+		{
+			// Some old ATI drivers report OpenGL 3.1 with GLSL version 1.3 and no support for uniform buffers.
+			// We have no choice but to force them down to OpenGL 2.x.
+			gl.legacyMode = true;
+			gl.lightmethod = LM_LEGACY;
+			gl.buffermethod = BM_LEGACY;
+			gl.glslversion = 0;
+			gl.flags |= RFL_NO_CLIP_PLANES;
+		}
 		else
 		{
 			gl.legacyMode = false;