mesa: Set api prefix to version string when overriding version

Otherwise there are problems when user overrides version and application
such as Piglit wants to detect used api with glGetString(GL_VERSION).

This makes it currently impossible to run glslparsertest tests for
OpenGL ES when using version override.

Below is example when using MESA_GLES_VERSION_OVERRIDE=3.1.

Before:
	"3.1 Mesa 11.1.0-devel (git-24a1a15)"

After:
	"OpenGL ES 3.1 Mesa 11.1.0-devel (git-78042ff)"

v2: only include api prefix for OpenGL ES (Boyan Ding)

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Cc: "11.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit dc8c221e28)
This commit is contained in:
Tapani Pälli 2015-10-13 08:49:57 +03:00 committed by Emil Velikov
parent 0d87f75763
commit da1d57faf3

View file

@ -24,6 +24,7 @@
#include <stdio.h>
#include "context.h"
#include "imports.h"
#include "mtypes.h"
#include "version.h"
@ -181,7 +182,23 @@ _mesa_override_gl_version(struct gl_context *ctx)
{
if (_mesa_override_gl_version_contextless(&ctx->Const, &ctx->API,
&ctx->Version)) {
create_version_string(ctx, "");
/* We need to include API in version string for OpenGL ES, otherwise
* application can not detect GLES via glGetString(GL_VERSION) query.
*
* From OpenGL ES 3.2 spec, Page 436:
*
* "The VERSION string is laid out as follows:
*
* OpenGL ES N.M vendor-specific information"
*
* From OpenGL 4.5 spec, Page 538:
*
* "The VERSION and SHADING_LANGUAGE_VERSION strings are laid out as
* follows:
*
* <version number><space><vendor-specific information>"
*/
create_version_string(ctx, _mesa_is_gles(ctx) ? "OpenGL ES " : "");
}
}