[Scummvm-git-logs] scummvm master -> a4c99343b33ed94b2cb83cc40742ebfbaaca408c

aquadran noreply at scummvm.org
Sun Mar 6 10:09:53 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a4c99343b3 OPENGL: Fix shader compilation with older Android GPU drivers


Commit: a4c99343b33ed94b2cb83cc40742ebfbaaca408c
    https://github.com/scummvm/scummvm/commit/a4c99343b33ed94b2cb83cc40742ebfbaaca408c
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-03-06T11:09:50+01:00

Commit Message:
OPENGL: Fix shader compilation with older Android GPU drivers

Changed paths:
    backends/graphics/opengl/shader.cpp


diff --git a/backends/graphics/opengl/shader.cpp b/backends/graphics/opengl/shader.cpp
index c521fe8d3e7..2f36a9ce820 100644
--- a/backends/graphics/opengl/shader.cpp
+++ b/backends/graphics/opengl/shader.cpp
@@ -80,7 +80,7 @@ const char *const g_lookUpFragmentShader =
 // Taken from: https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_03#OpenGL_ES_2_portability
 const char *const g_precisionDefines =
 	"#ifdef GL_ES\n"
-	"\t#if defined(GL_FRAGMENT_PRECISION_HIGH) && GL_FRAGMENT_PRECISION_HIGH == 1\n"
+	"\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
 	"\t\tprecision highp float;\n"
 	"\t#else\n"
 	"\t\tprecision mediump float;\n"
@@ -253,6 +253,8 @@ bool Shader::setUniform(const Common::String &name, ShaderUniformValue *value) {
 
 GLshader Shader::compileShader(const char *source, GLenum shaderType) {
 	const GLchar *versionSource = g_context.type == kContextGLES2 ? "#version 100\n" : "#version 110\n";
+	const GLchar *compatSource = shaderType == GL_VERTEX_SHADER ? "" : g_precisionDefines;
+
 	GLshader handle;
 	GL_ASSIGN(handle, glCreateShader(shaderType));
 	if (!handle) {
@@ -261,7 +263,7 @@ GLshader Shader::compileShader(const char *source, GLenum shaderType) {
 
 	const char *const shaderSources[] = {
 		versionSource,
-		g_precisionDefines,
+		compatSource,
 		source
 	};
 
@@ -276,7 +278,7 @@ GLshader Shader::compileShader(const char *source, GLenum shaderType) {
 
 		GLchar *log = new GLchar[logSize];
 		GL_CALL(glGetShaderInfoLog(handle, logSize, nullptr, log));
-		warning("Could not compile shader \"%s\": \"%s\"", source, log);
+		warning("Could not compile shader \"%s%s%s\": \"%s\"", versionSource, compatSource, source, log);
 		delete[] log;
 
 		GL_CALL(glDeleteShader(handle));




More information about the Scummvm-git-logs mailing list