From: Leif D. <lde...@re...> - 2003-04-12 17:18:14
|
I think setting rmesa->sarea->nbox = 0 when there are 3 or fewer cliprects and the cliprects dirty flag isn't set should be correct. The idea is that, since r128 has three auxiliary hardware scissors (3 cliprects can be emitted per re-used vertex buffer), there is no need to update the scissor registers unless the cliprects have changed or there are more than 3 cliprects. Actually, I'm not sure why the test isn't nbox < 4. The real problem may be elsewhere. One possibility is that on context switches with the X server, the ring may not be flushed of drawing commands using old clipping information. Another thing that might help is updating the window position and scissor information immediately from r128GetLock, rather than setting new_state flags. This is one of the changes I made in the mach64 driver relative to r128, based on the code in the radeon driver. Mach64 used to have the same sort of clipping and overlapping window problems as r128. I'll have to go back through my changes and see if I can reconstruct what I did. It would also improve window moving if we implement XAA blits for back-buffer (and depth buffer?) moves as in the Radeon driver (I did this for mach64 also). --Leif On Fri, 11 Apr 2003, Eric Anholt wrote: > CVSROOT: /cvsroot/dri > Module name: xc > Repository: xc/xc/lib/GL/mesa/src/drv/r128/ > Changes by: anholt@sc8-pr-cvs1. 03/04/11 23:28:28 > > Log message: > Partial cleanup of r128 clipping. The primary effect is to stop the drawing of > vertices into clipped sections of the backbuffer with nbox < 3. Unlike r1.15 > of mgaioctl.c, this change retains the non-upload-cliprects path. > > Modified files: > xc/xc/lib/GL/mesa/src/drv/r128/: Tag: texmem-0-0-1 > r128_ioctl.c > > Revision Changes Path > 1.18.10.6 +4 -12 xc/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you feeling lost and > disoriented. TotalView can help you find your way. Available on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Dri-patches mailing list > Dri...@li... > https://lists.sourceforge.net/lists/listinfo/dri-patches > -- Leif Delgass http://www.retinalburn.net |