OSDN Git Service

mesa: disallow creation of GL 3.1 compatibility contexts
authorMarek Olšák <maraeo@gmail.com>
Sat, 8 Dec 2012 21:48:47 +0000 (22:48 +0100)
committerMarek Olšák <maraeo@gmail.com>
Wed, 12 Dec 2012 12:09:54 +0000 (13:09 +0100)
Death to driver-specific hacks!

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/intel/intel_extensions.c
src/mesa/main/version.c
src/mesa/state_tracker/st_extensions.c

index 96288ab..df886a5 100755 (executable)
@@ -89,11 +89,7 @@ intelInitExtensions(struct gl_context *ctx)
    ctx->Extensions.ARB_texture_rgb10_a2ui = true;
 
    if (intel->gen >= 6)
-      if (ctx->API == API_OPENGL_CORE) {
-         ctx->Const.GLSLVersion = 140;
-      } else {
-         ctx->Const.GLSLVersion = 130;
-      }
+      ctx->Const.GLSLVersion = 140;
    else
       ctx->Const.GLSLVersion = 120;
    _mesa_override_glsl_version(ctx);
index eef8f43..4373d7b 100644 (file)
@@ -345,6 +345,12 @@ _mesa_compute_version(struct gl_context *ctx)
 
    switch (ctx->API) {
    case API_OPENGL_COMPAT:
+      /* Disable GLSL 1.40 and later for legacy contexts.
+       * This disallows creation of the GL 3.1 compatibility context. */
+      if (ctx->Const.GLSLVersion > 130) {
+         ctx->Const.GLSLVersion = 130;
+      }
+      /* fall through */
    case API_OPENGL_CORE:
       compute_version(ctx);
       break;
index 93ef7a9..726d868 100644 (file)
@@ -570,10 +570,7 @@ void st_init_extensions(struct st_context *st)
    glsl_feature_level = screen->get_param(screen, PIPE_CAP_GLSL_FEATURE_LEVEL);
 
    if (glsl_feature_level >= 140) {
-      if (ctx->API == API_OPENGL_CORE)
-         ctx->Const.GLSLVersion = 140;
-      else
-         ctx->Const.GLSLVersion = 130;
+      ctx->Const.GLSLVersion = 140;
    } else if (glsl_feature_level >= 130) {
       ctx->Const.GLSLVersion = 130;
    } else {