> 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; }