[Mesa-dev] [PATCH 1/2] mesa: disallow creation of GL 3.1 compatibility contexts

Marek Olšák maraeo at gmail.com
Sat Dec 8 14:02:07 PST 2012


Death to driver-specific hacks!
---
 src/mesa/drivers/dri/intel/intel_extensions.c |    6 +-----
 src/mesa/main/version.c                       |    6 ++++++
 src/mesa/state_tracker/st_extensions.c        |    5 +----
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 96288ab..df886a5 100755
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -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);
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index eef8f43..4373d7b 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -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;
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 93ef7a9..726d868 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -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 {
-- 
1.7.10.4



More information about the mesa-dev mailing list