intel/compiler: Test compaction on Gen <= 12
[mesa.git] / src / mesa / main / version.c
index 42f58ba175b538857912a76f2850abe63a5485ff..58deb4b3cf8ca5381dbddc9b112b321917e52230 100644 (file)
@@ -64,10 +64,10 @@ get_gl_override(gl_api api, int *version, bool *fwd_context,
       bool fc_suffix;
       bool compat_suffix;
    } override[] = {
-      { -1, false, false},
-      { -1, false, false},
-      { -1, false, false},
-      { -1, false, false},
+      [API_OPENGL_COMPAT] = { -1, false, false},
+      [API_OPENGLES]      = { -1, false, false},
+      [API_OPENGLES2]     = { -1, false, false},
+      [API_OPENGL_CORE]   = { -1, false, false},
    };
 
    STATIC_ASSERT(ARRAY_SIZE(override) == API_OPENGL_LAST + 1);
@@ -121,11 +121,7 @@ create_version_string(struct gl_context *ctx, const char *prefix)
    ctx->VersionString = malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
-                    "%s%u.%u%s Mesa " PACKAGE_VERSION
-#ifdef MESA_GIT_SHA1
-                    " (" MESA_GIT_SHA1 ")"
-#endif
-                    ,
+                    "%s%u.%u%s Mesa " PACKAGE_VERSION MESA_GIT_SHA1,
                     prefix,
                     ctx->Version / 10, ctx->Version % 10,
                     (ctx->API == API_OPENGL_CORE) ? " (Core Profile)" :
@@ -369,6 +365,7 @@ compute_version(const struct gl_extensions *extensions,
                          extensions->ARB_texture_view);
    const bool ver_4_4 = (ver_4_3 &&
                          consts->GLSLVersion >= 440 &&
+                         consts->MaxVertexAttribStride >= 2048 &&
                          extensions->ARB_buffer_storage &&
                          extensions->ARB_clear_texture &&
                          extensions->ARB_enhanced_layouts &&
@@ -387,8 +384,8 @@ compute_version(const struct gl_extensions *extensions,
                          extensions->NV_texture_barrier);
    const bool ver_4_6 = (ver_4_5 &&
                          consts->GLSLVersion >= 460 &&
-                         /* extensions->ARB_gl_spirv */ 0 &&
-                         /* extensions->ARB_spirv_extensions */ 0 &&
+                         extensions->ARB_gl_spirv &&
+                         extensions->ARB_spirv_extensions &&
                          extensions->ARB_indirect_parameters &&
                          extensions->ARB_pipeline_statistics_query &&
                          extensions->ARB_polygon_offset_clamp &&
@@ -512,23 +509,28 @@ compute_version_es2(const struct gl_extensions *extensions,
                          extensions->ARB_internalformat_query &&
                          extensions->ARB_map_buffer_range &&
                          extensions->ARB_shader_texture_lod &&
-                         extensions->ARB_texture_float &&
+                         extensions->OES_texture_float &&
+                         extensions->OES_texture_half_float &&
+                         extensions->OES_texture_half_float_linear &&
                          extensions->ARB_texture_rg &&
                          extensions->ARB_depth_buffer_float &&
-                         /* extensions->ARB_framebuffer_object && */
-                         extensions->EXT_framebuffer_sRGB &&
+                         extensions->ARB_framebuffer_object &&
+                         extensions->EXT_sRGB &&
                          extensions->EXT_packed_float &&
                          extensions->EXT_texture_array &&
                          extensions->EXT_texture_shared_exponent &&
+                         extensions->EXT_texture_sRGB &&
                          extensions->EXT_transform_feedback &&
                          extensions->ARB_draw_instanced &&
                          extensions->ARB_uniform_buffer_object &&
                          extensions->EXT_texture_snorm &&
                          extensions->NV_primitive_restart &&
-                         extensions->OES_depth_texture_cube_map);
+                         extensions->OES_depth_texture_cube_map &&
+                         extensions->EXT_texture_type_2_10_10_10_REV);
    const bool es31_compute_shader =
       consts->MaxComputeWorkGroupInvocations >= 128;
    const bool ver_3_1 = (ver_3_0 &&
+                         consts->MaxVertexAttribStride >= 2048 &&
                          extensions->ARB_arrays_of_arrays &&
                          es31_compute_shader &&
                          extensions->ARB_draw_indirect &&
@@ -541,7 +543,8 @@ compute_version_es2(const struct gl_extensions *extensions,
                          extensions->ARB_shading_language_packing &&
                          extensions->ARB_stencil_texturing &&
                          extensions->ARB_texture_multisample &&
-                         extensions->ARB_gpu_shader5 &&
+                         extensions->ARB_texture_gather &&
+                         extensions->MESA_shader_integer_functions &&
                          extensions->EXT_shader_integer_mix);
    const bool ver_3_2 = (ver_3_1 &&
                          extensions->EXT_draw_buffers2 &&
@@ -614,6 +617,11 @@ _mesa_compute_version(struct gl_context *ctx)
     */
    if (_mesa_is_desktop_gl(ctx)) {
       switch (ctx->Version) {
+      case 20:
+         /* fall-through, GLSL 1.20 is the minimum we support */
+      case 21:
+         ctx->Const.GLSLVersion = 120;
+         break;
       case 30:
          ctx->Const.GLSLVersion = 130;
          break;