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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
Kenneth Graunke 2013-04-06 10:27:28 -07:00
parent 9fd7ea786c
commit 50e60bf8da
3 changed files with 12 additions and 21 deletions

View 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;

View 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;

View 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;