From 50e60bf8daabc473ab7caa23bb60cff8c2954d6f Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Sat, 6 Apr 2013 10:27:28 -0700 Subject: [PATCH] i965: Bump kernel requirement to 3.3 on Ivybridge. 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 Reviewed-by: Eric Anholt Reviewed-by: Paul Berry --- src/mesa/drivers/dri/intel/intel_extensions.c | 5 +--- src/mesa/drivers/dri/intel/intel_screen.c | 26 ++++++++----------- src/mesa/drivers/dri/intel/intel_screen.h | 2 -- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c index 8d8e325a2c9..5cb2fa38f33 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.c +++ b/src/mesa/drivers/dri/intel/intel_extensions.c @@ -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; diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index 9c292d6029d..433f4ed2bd3 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -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; diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h index 7da98950aca..48339373e46 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.h +++ b/src/mesa/drivers/dri/intel/intel_screen.h @@ -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; -- 2.30.2