mesa: Branch 'master' - 2 commits

Haihao Xiang haihao at kemper.freedesktop.org
Fri Dec 8 09:12:13 UTC 2006


 src/mesa/drivers/dri/i965/brw_misc_state.c |    8 ++++----
 src/mesa/drivers/dri/i965/intel_ioctl.c    |    5 +++--
 2 files changed, 7 insertions(+), 6 deletions(-)

New commits:
diff-tree f79360858d4c94629ef543a35e4e44a13419ac0e (from 5449f5a97524cb21194b20d05449d7211faaa51c)
Author: Xiang, Haihao <haihao.xiang at intel.com>
Date:   Fri Dec 8 17:05:14 2006 +0800

    fix bug#9237

diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 6a6c450..d577968 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -88,10 +88,10 @@ static void upload_drawing_rect(struct b
    if (brw->intel.numClipRects > 1) 
       return; 
  
-   x1 = dPriv->x;
-   y1 = dPriv->y;      
-   x2 = dPriv->x + dPriv->w;
-   y2 = dPriv->y + dPriv->h;
+   x1 = brw->intel.pClipRects[0].x1;
+   y1 = brw->intel.pClipRects[0].y1;
+   x2 = brw->intel.pClipRects[0].x2;
+   y2 = brw->intel.pClipRects[0].y2;
 	 
    if (x1 < 0) x1 = 0;
    if (y1 < 0) y1 = 0;
diff-tree 5449f5a97524cb21194b20d05449d7211faaa51c (from 7a10d66590a4cebd2b453218e75fe82b02a3edcc)
Author: Xiang, Haihao <haihao.xiang at intel.com>
Date:   Fri Dec 8 17:00:59 2006 +0800

    fix bug#9045

diff --git a/src/mesa/drivers/dri/i965/intel_ioctl.c b/src/mesa/drivers/dri/i965/intel_ioctl.c
index d1f2e3f..f3b76db 100644
--- a/src/mesa/drivers/dri/i965/intel_ioctl.c
+++ b/src/mesa/drivers/dri/i965/intel_ioctl.c
@@ -75,7 +75,7 @@ void intelWaitIrq( struct intel_context 
 {
    if (!intel->no_hw) {
       drmI830IrqWait iw;
-      int ret;
+      int ret, lastdispatch;
       
       if (0)
 	 fprintf(stderr, "%s %d\n", __FUNCTION__, seq );
@@ -83,11 +83,12 @@ void intelWaitIrq( struct intel_context 
       iw.irq_seq = seq;
 	
       do {
+	 lastdispatch = intel->sarea->last_dispatch;
 	 ret = drmCommandWrite( intel->driFd, DRM_I830_IRQ_WAIT, &iw, sizeof(iw) );
 
 	 /* This seems quite often to return before it should!?! 
 	  */
-      } while (ret == -EAGAIN || ret == -EINTR || (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));
       
 
       if ( ret ) {



More information about the mesa-commit mailing list