diff options
-rw-r--r-- | src/intel_driver.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/intel_driver.c b/src/intel_driver.c index 5a019333..eec1ae0d 100644 --- a/src/intel_driver.c +++ b/src/intel_driver.c @@ -1293,6 +1293,24 @@ static void I830XvInit(ScrnInfoPtr scrn) intel->colorKey); } +static Bool can_accelerate_2d(struct intel_screen_private *intel) +{ + if (INTEL_INFO(intel)->gen >= 60) { + drm_i915_getparam_t gp; + int value; + + /* On Sandybridge we need the BLT in order to do anything since + * it so frequently used in the acceleration code paths. + */ + gp.value = &value; + gp.param = I915_PARAM_HAS_BLT; + if (drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GETPARAM, &gp)) + return FALSE; + } + + return TRUE; +} + /** * This is called before ScreenInit to do any require probing of screen * configuration. @@ -2205,6 +2223,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv) intel->force_fallback = FALSE; intel->use_shadow = FALSE; + if (!can_accelerate_2d(intel)) + intel->use_shadow = TRUE; /* Enable tiling by default */ intel->tiling = TRUE; |