Fix return value of shading language for GLES2.

Throughout the mesa project we've been using 100 for GLES2's shading
language.  It was pretty clearly the intent here, but the clever
inline detection of "am I parsing a GLSL version or a GL version
string" forgot about GLSL 1.0.x, and thus returned 10.
macos/v1.5.9
Eric Anholt 5 years ago
parent 4e26d4dcfa
commit 1e0b063dbd
  1. 15
      src/dispatch_common.c
  2. 2
      test/gl_version.c

@ -392,10 +392,10 @@ epoxy_is_desktop_gl(void)
} }
static int static int
epoxy_internal_gl_version(GLenum version_string, int error_version) epoxy_internal_gl_version(GLenum version_string, int error_version, int factor)
{ {
const char *version = (const char *)glGetString(version_string); const char *version = (const char *)glGetString(version_string);
GLint major, minor, factor; GLint major, minor;
int scanf_count; int scanf_count;
if (!version) if (!version)
@ -413,11 +413,6 @@ epoxy_internal_gl_version(GLenum version_string, int error_version)
abort(); abort();
} }
if (minor >= 10)
factor = 100;
else
factor = 10;
return factor * major + minor; return factor * major + minor;
} }
@ -439,7 +434,7 @@ epoxy_internal_gl_version(GLenum version_string, int error_version)
int int
epoxy_gl_version(void) epoxy_gl_version(void)
{ {
return epoxy_internal_gl_version(GL_VERSION, 0); return epoxy_internal_gl_version(GL_VERSION, 0, 10);
} }
int int
@ -448,7 +443,7 @@ epoxy_conservative_gl_version(void)
if (api.begin_count) if (api.begin_count)
return 100; return 100;
return epoxy_internal_gl_version(GL_VERSION, 100); return epoxy_internal_gl_version(GL_VERSION, 100, 10);
} }
/** /**
@ -471,7 +466,7 @@ epoxy_glsl_version(void)
{ {
if (epoxy_gl_version() >= 20 || if (epoxy_gl_version() >= 20 ||
epoxy_has_gl_extension ("GL_ARB_shading_language_100")) epoxy_has_gl_extension ("GL_ARB_shading_language_100"))
return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0); return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0, 100);
return 0; return 0;
} }

@ -80,6 +80,8 @@ main(int argc, char **argv)
pass = pass && test_version("3.0 Mesa 13.0.6", 30, pass = pass && test_version("3.0 Mesa 13.0.6", 30,
"1.30", 130); "1.30", 130);
pass = pass && test_version("OpenGL ES 2.0 Mesa 20.1.0-devel (git-4bb19a330e)", 20,
"OpenGL ES GLSL ES 1.0.16", 100);
pass = pass && test_version("OpenGL ES 3.2 Mesa 18.3.0-devel", 32, pass = pass && test_version("OpenGL ES 3.2 Mesa 18.3.0-devel", 32,
"OpenGL ES GLSL ES 3.20", 320); "OpenGL ES GLSL ES 3.20", 320);
pass = pass && test_version("4.5.0 NVIDIA 384.130", 45, pass = pass && test_version("4.5.0 NVIDIA 384.130", 45,

Loading…
Cancel
Save