> Attached patch is an implementation of my idea, but not tested.

Attached is a correct(tested) patch.

----
Shyouzou Sugitani <[EMAIL PROTECTED]>
                  <[EMAIL PROTECTED]>
--- src/unix/video-drivers/xf86_dga2.c.dist     Sun Jan 27 01:08:30 2002
+++ src/unix/video-drivers/xf86_dga2.c  Sun Jan 27 01:09:46 2002
@@ -402,7 +402,7 @@
                        xf86ctx.grabbed_mouse = 1;
        }
 
-       XDGASetViewport(display,xf86ctx.screen,0,0,XDGAFlipImmediate);
+       xf86_dga_fix_viewport = 1;
 
        memset(xf86ctx.base_addr, 0,
               xf86ctx.device->mode.bytesPerScanline
@@ -524,7 +524,12 @@
    
        if(xf86_dga_fix_viewport)
        {
-               XF86DGASetViewPort(display,xf86ctx.screen,0,0);
+               if (xf86ctx.device->mode.viewportFlags & XDGAFlipImmediate)
+                       XDGASetViewport(display,xf86ctx.screen,0,0,XDGAFlipImmediate);
+               else {
+                       XDGASetViewport(display,xf86ctx.screen,0,0,XDGAFlipRetrace);
+                       while(XDGAGetViewportStatus(display, xf86ctx.screen));
+               }
                xf86_dga_fix_viewport = 0;
        }
 

Reply via email to