All pastes #597582 Raw Edit

Untitled

public text v1 · immutable
#597582 ·published 2007-06-30 18:12 UTC
rendered paste body
diff --git a/src/mesa/drivers/dri/unichrome/via_ioctl.c b/src/mesa/drivers/dri/unichrome/via_ioctl.c
index c8c6dc0..9f77af1 100644
--- a/src/mesa/drivers/dri/unichrome/via_ioctl.c
+++ b/src/mesa/drivers/dri/unichrome/via_ioctl.c
@@ -577,6 +577,10 @@ void viaResetPageFlippingLocked(struct via_context *vmesa)
    vmesa->doPageFlip = vmesa->allowPageFlip = 0;
 }
 
+void viaCheckWaitIdle(struct via_context *vmesa)
+{
+   while(!viaCheckIdle(vmesa));
+}
 
 /*
  * Copy the back buffer to the front buffer. 
@@ -597,11 +601,14 @@ void viaCopyBuffer(const __DRIdrawablePrivate *dPriv)
 
    VIA_FLUSH_DMA(vmesa);
 
-   if (vmesa->vblank_flags == VBLANK_FLAG_SYNC &&
+/*   if (vmesa->vblank_flags == VBLANK_FLAG_SYNC &&
        vmesa->lastBreadcrumbWrite > 1)
       viaWaitIdleVBlank(dPriv, vmesa, vmesa->lastBreadcrumbWrite-1);
    else
-      viaWaitIdleVBlank(dPriv, vmesa, vmesa->lastSwap[1]);
+      viaWaitIdleVBlank(dPriv, vmesa, vmesa->lastSwap[1]); */
+    if (vmesa->vblank_flags == VBLANK_FLAG_SYNC) {
+    	viaCheckWaitIdle(vmesa);
+    }
 
    LOCK_HARDWARE(vmesa);
 
@@ -631,11 +638,16 @@ void viaPageFlip(const __DRIdrawablePrivate *dPriv)
     struct via_renderbuffer buffer_tmp;
 
     VIA_FLUSH_DMA(vmesa);
-   if (vmesa->vblank_flags == VBLANK_FLAG_SYNC &&
+/*   if (vmesa->vblank_flags == VBLANK_FLAG_SYNC &&
        vmesa->lastBreadcrumbWrite > 1)
       viaWaitIdleVBlank(dPriv, vmesa, vmesa->lastBreadcrumbWrite - 1);
    else
       viaWaitIdleVBlank(dPriv, vmesa, vmesa->lastSwap[0]);
+*/
+
+    if (vmesa->vblank_flags == VBLANK_FLAG_SYNC) {
+    	viaCheckWaitIdle(vmesa);
+    }
 
     LOCK_HARDWARE(vmesa);
     viaDoPageFlipLocked(vmesa, vmesa->back.offset);