As tedu@ reported (and some pople on misc@ confirmed) partly disabling 2D acceleration on Broadwell made X unstable. It really looks like the alternative BLT path isn't well tested and therefore buggy. So here is a diff that disables 2D acceleration completely. Those who don't care about suspend/resume can still enable it if they want. 3D acceleration should continue to work.
ok? Index: sna_accel.c =================================================================== RCS file: /home/cvs/xenocara/driver/xf86-video-intel/src/sna/sna_accel.c,v retrieving revision 1.6 diff -u -p -r1.6 sna_accel.c --- sna_accel.c 15 Nov 2015 15:33:57 -0000 1.6 +++ sna_accel.c 1 Dec 2015 15:37:44 -0000 @@ -17659,6 +17659,9 @@ static bool sna_option_accel_none(struct return true; s = xf86GetOptValString(sna->Options, OPTION_ACCEL_METHOD); + /* XXX avoid render ring since it gets stuck after resume */ + if (s == NULL && sna->info->gen >= 0100) + return true; if (s == NULL) return IS_DEFAULT_ACCEL_METHOD(NOACCEL); @@ -17670,9 +17673,6 @@ static bool sna_option_accel_blt(struct const char *s; s = xf86GetOptValString(sna->Options, OPTION_ACCEL_METHOD); - /* XXX avoid render ring since it gets stuck after resume */ - if (s == NULL && sna->info->gen >= 0100) - return true; if (s == NULL) return false;