Changeset - r24960:2efc4aec202c
[Not reviewed]
master
0 1 0
Michael Lutz - 3 years ago 2021-02-27 17:14:24
michi@icosahedron.de
Fix: [OpenGL] Don't use OpenGL on MESA software renderers.

Performance in this case is worse than not using OpenGL, so just let
OTTD fall back to a different video driver.
1 file changed with 8 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/video/opengl.cpp
Show inline comments
 
@@ -15,6 +15,8 @@
 
// #define NO_GL_BUFFER_SYNC
 
/* Define to enable persistent buffer mapping on AMD GPUs. */
 
// #define GL_MAP_PERSISTENT_AMD
 
/* Define to allow software rendering backends. */
 
// #define GL_ALLOW_SOFTWARE_RENDERER
 

	
 
#if defined(_WIN32)
 
#	include <windows.h>
 
@@ -536,6 +538,12 @@ const char *OpenGLBackend::Init()
 

	
 
	DEBUG(driver, 1, "OpenGL driver: %s - %s (%s)", vend, renderer, ver);
 

	
 
#ifndef GL_ALLOW_SOFTWARE_RENDERER
 
	/* Don't use MESA software rendering backends as they are slower than
 
	 * just using a non-OpenGL video driver. */
 
	if (strncmp(renderer, "llvmpipe", 8) == 0 || strncmp(renderer, "softpipe", 8) == 0) return "Software renderer detected, not using OpenGL";
 
#endif
 

	
 
	const char *minor = strchr(ver, '.');
 
	_gl_major_ver = atoi(ver);
 
	_gl_minor_ver = minor != nullptr ? atoi(minor + 1) : 0;
0 comments (0 inline, 0 general)