I965: fix a failure on waiting irq.
authorXiang, Haihao <haihao.xiang@intel.com>
Mon, 12 Feb 2007 08:38:50 +0000 (16:38 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 12 Feb 2007 08:38:50 +0000 (16:38 +0800)
Wait until getting the right fence if drm/i915 resets the
counter.

src/mesa/drivers/dri/i965/intel_ioctl.c

index 4da31277ea2b1feb1d499dda5db08a3959e73202..0a8e976f706a29f76892be48f8390d341ec0cd8f 100644 (file)
@@ -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 ) {