On Mon, 2004-08-23 at 15:24, Ian Romanick wrote: > Thomas Hellstr�m wrote: > > > As some of you might have read on another thread, there is a discussion > > how to handle the X server (and possibly other) 2d contexts in the via / > > unichrome family of drivers that expects certain 2d engine register > > values to stay the same even when other contexts or DMA commands have > > played. > > > > Looking at the now obsolete gamma driver and ffb_context.c, some > > register values are saved at context switches whereas in other drivers > > this does not seem to happen. > > > > What is the common practice? That all clients always reinitialize the > > engines every time they are used or that the drm saves the registers > > that are commonly used by different clients as part of the context switch? > > The common practice is to define a set of register "groups", and define > a bit mask for with 1 bit per group (usually called "dirty bits"). When > a context gets the hardware lock, it checks to see if any other context > has held the lock since the last time it held it. If another context > has, it looks at the bit mask (stored in the SAREA). Any set dirty bits > mean the some other context modified some register in that group. The > dirty register(s) is then reset to the value expect by the context now > holding the lock.
Another way is what the radeon/r200 drivers do: When you grab the lock from someone else, *all* state is dirty. You can see an example in radeon_dri.c. When we grab the lock, we mark the 3d state invalid so that the next use of it (Render acceleration) resets it all. To be totally correct, in my opinion, the EnterServer for Radeon should be resetting some of the 2d state that it depends on, as well. As it is, it looks like if someone wanted to set things like the default offset in the 3d driver, they'd have to update the 2d driver to reset it when grabbing the lock, bump the DDX version, and check for that version in the 3d driver and deal with it appropriately. -- Eric Anholt [EMAIL PROTECTED] http://people.freebsd.org/~anholt/ [EMAIL PROTECTED] ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
