new radeon tiling patch

Roland Scheidegger rscheidegger_lists at hispeed.ch
Tue Jan 18 11:43:31 PST 2005


Roland Scheidegger wrote:
>> The DRM could update the register in the vblank interrupt handler?
> 
> That sounds right (didn't know there was such a handler, but there it 
> is...). I can't see how to do that though. Looks complicated :-(.
Hmm, played around with waiting on vblank a bit. Tried both
RADEONWaitForVerticalSync (without the usleep and thus larger timeout
value) and the drmWaitVBlank function. Both with moderate success
(meaning it works sometimes, but still some flickering when scrolling).
I think ddx (X) gets preempted at the wrong time...
How would you do that in-kernel? There is vblank interrupt related stuff
(radeon_driver_vblank_wait for instance), but that only is called when a
user has requested a wait for vblank, as far as I can see (which is all 
the time with dri clients). Also, if doing that in the drm, we'd need to 
mess with OFFSET_CNTL there too (i.e. messy calculation or another field 
in the sarea).
I also figured maybe RADEON_WAIT_CRTC_PFLIP would stop the cp so you 
could just put the offset_cntl and offset values in the ring buffer 
after that wait command, so I tried hacking in some out_ring commands in 
the DoAdjustFrame code, but that didn't work neither. Thus I'm still 
stuck at "unfixable" :-(.


Roland






More information about the xorg mailing list