mesa: add GLSLVersionCompat constant
authorTimothy Arceri <tarceri@itsqueeze.com>
Tue, 8 May 2018 00:10:39 +0000 (10:10 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Wed, 9 May 2018 04:24:36 +0000 (14:24 +1000)
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@amd.com>
src/mesa/drivers/dri/i915/intel_extensions.c
src/mesa/drivers/dri/i965/intel_extensions.c
src/mesa/main/mtypes.h
src/mesa/main/version.c
src/mesa/state_tracker/st_extensions.c

index c85bd787fe73467f310497706fa7f9dacb727cd2..c3851530139daa2a790441d341aeba32536610a9 100644 (file)
@@ -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) {
index e1e19217bc9f0c1194ed45bc8c12ce38be9e74ab..b5860f13cb48881d11656bac76487aa28fa684c3 100644 (file)
@@ -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;
index 2d3eb457f9bfeae4aa58e65c883beadd67f3e64f..2c87308dd735230f19f10c65c19f6d1101ca41be 100644 (file)
@@ -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
index 84babd69e2f0bf53be1c56f7f225159e089cddd2..3f3dff0bde37c1bc697f3535ce6113c0a9c08d0e 100644 (file)
@@ -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:
index 5479e637afff8ba635bcaa77c75eb4e7ebbab805..19ef736e5b0ee440aea1dcb26cf14764c06a2755 100644 (file)
@@ -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);