i965: Bump kernel requirement to 3.3 on Ivybridge.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 6 Apr 2013 17:27:28 +0000 (10:27 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 20 May 2013 20:03:17 +0000 (13:03 -0700)
Kernel 3.3 introduced the SOL reset execbuf parameter, needed for GL 3.0
on Ivybridge.  Bumping the requirement will give an obvious error
message rather than simply reporting GL 2.1.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/intel/intel_extensions.c
src/mesa/drivers/dri/intel/intel_screen.c
src/mesa/drivers/dri/intel/intel_screen.h

index 8d8e325a2c9a61cb86fa4f5f4ae081651a868f77..5cb2fa38f33765bb5fba9639df32d0b2366efc59 100644 (file)
@@ -91,12 +91,9 @@ intelInitExtensions(struct gl_context *ctx)
       ctx->Const.GLSLVersion = 120;
    _mesa_override_glsl_version(ctx);
 
-   if (intel->gen == 6 ||
-       (intel->gen == 7 && intel->intelScreen->kernel_has_gen7_sol_reset))
-      ctx->Extensions.EXT_transform_feedback = true;
-
    if (intel->gen >= 6) {
       ctx->Extensions.EXT_framebuffer_multisample = true;
+      ctx->Extensions.EXT_transform_feedback = true;
       ctx->Extensions.ARB_blend_func_extended = !driQueryOptionb(&intel->optionCache, "disable_blend_func_extended");
       ctx->Extensions.ARB_draw_buffers_blend = true;
       ctx->Extensions.ARB_ES3_compatibility = true;
index 9c292d6029d0dd6215e2070615b44751296e90e4..433f4ed2bd3d464a3e905e956077388a75030e4a 100644 (file)
@@ -1196,17 +1196,10 @@ set_max_gl_versions(struct intel_screen *screen)
 
    switch (screen->gen) {
    case 7:
-      if (screen->kernel_has_gen7_sol_reset) {
-         screen->max_gl_core_version = 31;
-         screen->max_gl_compat_version = 30;
-         screen->max_gl_es1_version = 11;
-         screen->max_gl_es2_version = 30;
-      } else {
-         screen->max_gl_core_version = 0;
-         screen->max_gl_compat_version = 21;
-         screen->max_gl_es1_version = 11;
-         screen->max_gl_es2_version = 20;
-      }
+      screen->max_gl_core_version = 31;
+      screen->max_gl_compat_version = 30;
+      screen->max_gl_es1_version = 11;
+      screen->max_gl_es2_version = 30;
       break;
    case 6:
       screen->max_gl_core_version = 31;
@@ -1294,10 +1287,6 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
 
    intelScreen->deviceID = drm_intel_bufmgr_gem_get_devid(intelScreen->bufmgr);
 
-   intelScreen->kernel_has_gen7_sol_reset =
-      intel_get_boolean(intelScreen->driScrnPriv,
-                       I915_PARAM_HAS_GEN7_SOL_RESET);
-
    if (IS_GEN7(intelScreen->deviceID)) {
       intelScreen->gen = 7;
    } else if (IS_GEN6(intelScreen->deviceID)) {
@@ -1312,6 +1301,13 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
       intelScreen->gen = 2;
    }
 
+   if (intelScreen->gen == 7 &&
+       !intel_get_boolean(intelScreen->driScrnPriv,
+                          I915_PARAM_HAS_GEN7_SOL_RESET)) {
+      fprintf(stderr, "i965 requires Kernel 3.3 or later.\n");
+      return false;
+   }
+
    intelScreen->hw_has_separate_stencil = intelScreen->gen >= 6;
    intelScreen->hw_must_use_separate_stencil = intelScreen->gen >= 7;
 
index 7da98950aca6fbf1815a1ddd56345b0873964985..48339373e469148fcd7aeb0fb6e1a63f23d5a3fc 100644 (file)
@@ -60,8 +60,6 @@ struct intel_screen
    bool hw_has_separate_stencil;
    bool hw_must_use_separate_stencil;
 
-   bool kernel_has_gen7_sol_reset;
-
    bool hw_has_llc;
    bool hw_has_swizzling;