I am quite certain, that, at least on mach64 hardware, an attempt to access framebuffer by CPU while the GUI engine is active will result in a hard lockup.
If this was true with Radeons, you'd get a lockup every time the hardware cursor shape changes. I guess the memory controller has improved...
I did wonder about that and concluded that it is possible that there is another WaitForIdle call sometime earlier in the code flow, or an effective one at that.
Moving the mouse rarely results in large repaints, so when the cursor changes shape Xserver has acquired lock and executed a few simple drawing commands, which would finish faster than a PCI access to MMIO registers, thus keeping FIFO empty.
This was, of course, pure speculation.
So can we be sure that one can do arbitrary INREG() on Radeons without fear of lockup ? (with the exception of registers that initiate transactions, for example on VIP bus).
thank you !
Vladimir Dergachev
-- Earthling Michel DÃnzer | Debian (powerpc), X and DRI developer Libre software enthusiast | http://svcs.affero.net/rm.php?r=daenzer
------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel