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]

Reply via email to