From: Nathan H. <na...@ma...> - 2000-10-10 02:08:52
|
On Mon, Oct 09, 2000 at 01:55:53PM -0600, Keith Whitwell wrote: > > One potential problem with this is that in fallback cases we will hold the > hardware lock for the time it takes to render an entire vertex buffer of > triangles, one spanline at a time. I propose to get around this by 'flashing' > the lock in the spanline and pixel functions, eg: > > UNLOCK_HARDWARE(fxMesa); > LOCK_HARDWARE(fxMesa); > ... > > To allow a (tiny) window for the X server or other clients to grab the lock. Instead of putting the UNLOCK/LOCK pairs inside the span functions, and having LOCK/UNLOCK around the slow fallbacks, how about having the slow fallback default to nolock but with LOCK/UNLOCK around each call to the span functions. The cliprects would be reworked (if necessary) around each span, inside the LOCK/UNLOCK pair and just before drawing the span. The other option is to extend the X server for two forms of lock: 1 for changing the cliprects and 1 for everything else. Then you can lock the cliprects around the whole fallback and unlock everything else with the "flashing" concept. |