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 c85bd78..c385153 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 e1e1921..b5860f1 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 2d3eb45..2c87308 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 84babd6..3f3dff0 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 5479e63..19ef736 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);