diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2007-02-12 16:38:50 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2007-02-12 16:38:50 +0800 |
commit | 1e6688742e6a6e11d002c1fce5dca3da3d58594f (patch) | |
tree | 2deb0c74ba937caef7c420445cb75be363e512c2 | |
parent | ebcc9b5d12995cc83c032beeff468c5ecb30b33f (diff) |
I965: fix a failure on waiting irq.
Wait until getting the right fence if drm/i915 resets the
counter.
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_ioctl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_ioctl.c b/src/mesa/drivers/dri/i965/intel_ioctl.c index 4da31277ea..0a8e976f70 100644 --- a/src/mesa/drivers/dri/i965/intel_ioctl.c +++ b/src/mesa/drivers/dri/i965/intel_ioctl.c @@ -108,7 +108,8 @@ void intelWaitIrq( struct intel_context *intel, int seq ) /* This seems quite often to return before it should!?! */ - } while (ret == -EAGAIN || ret == -EINTR || (ret == -EBUSY && lastdispatch != intel->sarea->last_dispatch) || (ret == 0 && seq > intel->sarea->last_dispatch)); + } while (ret == -EAGAIN || ret == -EINTR || (ret == -EBUSY && lastdispatch != intel->sarea->last_dispatch) || (ret == 0 && seq > intel->sarea->last_dispatch) + || (ret == 0 && intel->sarea->last_dispatch - seq >= (1 << 24))); if ( ret ) { |