On 04/27/2015 12:11 PM, Ilia Mirkin wrote:
In some situations it is convenient for a driver to expose a higher GLSL
version while some extensions are still incomplete. However in that
situation, it would report a GLSL version that was higher than the GL
version. Avoid that situation by limiting the GLSL version to the GL
version.

Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
---

v1 -> v2:
   do work in _mesa_compute_version, not in compute_version
   only fix up core profile (easier and this situation doesn't come up for 
compat)

  src/mesa/main/version.c | 11 +++++++++++
  1 file changed, 11 insertions(+)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index da255b2..6024dc8 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -483,6 +483,17 @@ _mesa_compute_version(struct gl_context *ctx)

     ctx->Version = _mesa_get_version(&ctx->Extensions, &ctx->Const, ctx->API);

+   /* Make sure that the GLSL version lines up with the GL version. In some
+    * cases it can be too high, e.g. if an extension is missing.
+    */
+   if (ctx->API == API_OPENGL_CORE) {
+      switch (ctx->Version) {
+      case 31: ctx->Const.GLSLVersion = 140; break;
+      case 32: ctx->Const.GLSLVersion = 150; break;
+      default: ctx->Const.GLSLVersion = ctx->Version * 10; break;
+      }

Would you mind formatting this like other switch/cases:

case 31:
   ctx->Const.GLSLVersion = 140;
   break;

+   }
+
     switch (ctx->API) {
     case API_OPENGL_COMPAT:
     case API_OPENGL_CORE:


Looks OK otherwise.
Reviewed-by: Brian Paul <bri...@vmware.com>


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to