Mesa (master): mesa: add GLSLVersionCompat constant

Timothy Arceri tarceri at kemper.freedesktop.org
Wed May 9 04:30:23 UTC 2018


Module: Mesa
Branch: master
Commit: 4560aad780b851f855a8adc72ea34ca4eb17634a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4560aad780b851f855a8adc72ea34ca4eb17634a

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Tue May  8 10:10:39 2018 +1000

mesa: add GLSLVersionCompat constant

This allows drivers to define what version of GLSL they support
in compat. This will be needed in order to support compat 3.2
without breaking drivers that wont support it.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/drivers/dri/i915/intel_extensions.c | 1 +
 src/mesa/drivers/dri/i965/intel_extensions.c | 6 ++++++
 src/mesa/main/mtypes.h                       | 1 +
 src/mesa/main/version.c                      | 4 +---
 src/mesa/state_tracker/st_extensions.c       | 1 +
 5 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/intel_extensions.c b/src/mesa/drivers/dri/i915/intel_extensions.c
index c85bd787fe..c385153013 100644
--- a/src/mesa/drivers/dri/i915/intel_extensions.c
+++ b/src/mesa/drivers/dri/i915/intel_extensions.c
@@ -78,6 +78,7 @@ intelInitExtensions(struct gl_context *ctx)
    ctx->Extensions.OES_draw_texture = true;
 
    ctx->Const.GLSLVersion = 120;
+   ctx->Const.GLSLVersionCompat = 120;
    _mesa_override_glsl_version(&ctx->Const);
 
    if (intel->gen >= 3) {
diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c
index e1e19217bc..b5860f13cb 100644
--- a/src/mesa/drivers/dri/i965/intel_extensions.c
+++ b/src/mesa/drivers/dri/i965/intel_extensions.c
@@ -148,6 +148,12 @@ intelInitExtensions(struct gl_context *ctx)
       ctx->Const.GLSLVersion = 330;
    else
       ctx->Const.GLSLVersion = 120;
+
+   if (devinfo->gen >= 6)
+      ctx->Const.GLSLVersionCompat = 130;
+   else
+      ctx->Const.GLSLVersionCompat = 120;
+
    _mesa_override_glsl_version(&ctx->Const);
 
    ctx->Extensions.EXT_shader_integer_mix = ctx->Const.GLSLVersion >= 130;
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 2d3eb457f9..2c87308dd7 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3649,6 +3649,7 @@ struct gl_constants
    GLuint MaxGeometryTotalOutputComponents;
 
    GLuint GLSLVersion;  /**< Desktop GLSL version supported (ex: 120 = 1.20) */
+   GLuint GLSLVersionCompat;  /**< Desktop compat GLSL version supported  */
 
    /**
     * Changes default GLSL extension behavior from "error" to "warn".  It's out
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 84babd69e2..3f3dff0bde 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -588,9 +588,7 @@ _mesa_get_version(const struct gl_extensions *extensions,
       /* Disable higher GLSL versions for legacy contexts.
        * This disallows creation of higher compatibility contexts. */
       if (!consts->AllowHigherCompatVersion) {
-         if (consts->GLSLVersion > 140) {
-            consts->GLSLVersion = 140;
-         }
+         consts->GLSLVersion = consts->GLSLVersionCompat;
       }
       /* fall through */
    case API_OPENGL_CORE:
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 5479e637af..19ef736e5b 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -936,6 +936,7 @@ void st_init_extensions(struct pipe_screen *screen,
 
    /* Figure out GLSL support and set GLSLVersion to it. */
    consts->GLSLVersion = screen->get_param(screen, PIPE_CAP_GLSL_FEATURE_LEVEL);
+   consts->GLSLVersionCompat = 140;
 
    _mesa_override_glsl_version(consts);
 




More information about the mesa-commit mailing list