On Wed, 2002-05-22 at 21:48, [EMAIL PROTECTED] wrote: > >What about a mixed approach to avoid unnecessary bus traffic: try to read > >the ring head pointer from memory, and if after a timeout the free ring space > >still doesn't seem to be large enough, read it directly from the register. > >This could hurt performance badly if the memory copy is often outdated > though. > > Well, let's first make it stable...
Good idea. :) Do you agree with Albert's analysis? Have you tried with caching enabled yet? > >> >If apps would at least avoid reading stuff written > >> >by the video card, write-through cached would be OK. > >> >Apps that read AGP memory are uncommon enough that > >> >fixing all of them would be feasible. > >> > >> I think we can use full caching (copyback) without too much > >> problems. In the r128 case, we'll have to flush from the X server > >> as it's directly writing to the ring (and maybe from the mesa driver > >> as well). On radeon, it's all done via indirect buffers and those > >> get passed to the kernel driver before beeing inserted in the ring. > > > >Where is r128 different than radeon in this respect? > > The last time I looked at r128, it wrote to the ring directly iirc, > while radeon on wrote to indirect buffers, the kernel putting them > in the ring. This may have changed though. I'm pretty sure only the kernel ever had access to the ring in both drivers (the only exception I know of were the ati-5-0-[01] branches in DRI CVS, but they were never merged into the trunk, let alone an XFree86 release). -- Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]