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 <kenn...@whitecape.org> --- 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 8d8e325..5cb2fa3 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 ad1b351..f3dc908 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -1195,17 +1195,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; @@ -1293,10 +1286,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)) { @@ -1311,6 +1300,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 7da9895..4833937 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; -- 1.8.2.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev