diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-06-09 10:06:08 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-06-09 10:12:08 +0100 |
commit | 6141b1aea159759e7e9dcf2561deb9d8c02bd0a2 (patch) | |
tree | c69efbd53acab3a70d25e5101a598872356f8da8 | |
parent | 1786d2ee03a190ebe242ac7b58bed7cc31d66b16 (diff) |
sna: Warn after detecting a hung GPU
...and include the instructional error message from uxa.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/kgem.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 1c88e7f6..2c61d2cc 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -912,7 +912,18 @@ void _kgem_submit(struct kgem *kgem) void kgem_throttle(struct kgem *kgem) { + static int warned; + kgem->wedged |= drmCommandNone(kgem->fd, DRM_I915_GEM_THROTTLE) == -EIO; + + if (kgem->wedged && !warned) { + struct sna *sna = container_of(kgem, struct sna, kgem); + xf86DrvMsg(sna->scrn->scrnIndex, X_ERROR, + "Detected a hung GPU, disabling acceleration.\n"); + xf86DrvMsg(sna->scrn->scrnIndex, X_ERROR, + "When reporting this, please include i915_error_state from debugfs and the full dmesg.\n"); + warned = 1; + } } bool kgem_needs_expire(struct kgem *kgem) |