new radeon tiling patch
Roland Scheidegger
rscheidegger_lists at hispeed.ch
Wed Jan 19 08:30:41 PST 2005
Michel Dänzer wrote:
>> and furthermore there needs to be some code to deal with disabled
>> irqs. Is this such a big issue? I'm happy to leave it broken.
>
>
> I don't know, you brought it up, I just brainstormed how it could be
> done. :)
Ok. I leave it broken then at least for now.
>
>
>>>> 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).
>>>
>>>
>>> You mean CRTC_OFFSET? I'm not sure the calculation is that big an
>>> issue... it'll never happen more than a couple thousand times
>>> per second anyway. ;)
>>
>> Well, both CRTC_OFFSET and CRTC_OFFSET_CNTL.
>
>
> The latter shouldn't matter if the writes are synchronized to the
> refresh anyway? Unless the update triggers at the same time the
> interrupt is generated without FLIP_CNTL...
I'm not 100% sure this will work. If you update the offset_cntl in the
ddx, the crtc might take the new value before drm had a chance to update
the offset register (if the vblank would just happen when you write the
offset_cntl, and thus the drm might need to wait for a full frame).
>
>> It's not really the time which the calculation uses, but I just
>> don't like additional ugly code.
>
>
> Well, you could always hide it in a function or something. ;)
It's not THAT much code ;-).
>
>
>> Well, the most important issue with that is that
>> RADEON_WAIT_CRTC_PFLIP doesn't actually wait for a pageflip! It
>> made absolutely no difference. Maybe with FLIP_CNTL set, it now
>> considers it as a pageflip whenever it hits a new line, dunno.
>
>
> Sure. There's a way to wait for a certain scanline instead, if you
> want to explore that...
Hmm, that might be interesting. But I'll leave it for now I think.
I was able to get rid of the new setparam + sarea variable for pageflip
+ mergedfb/tiling.
Instead of double wrapping, I just got rid of DRIAdjustFrame altogether
(you can simply override the default wrap.AdjustFrame with 0). This will
probably break the fullscreen stuff, so I'm wondering should I care
about that or is this fullscreen stuff (deprecated for ages afaik) just
never used anyway and could be removed?
I could of course write something like RadeonDriAdjustFrame which would
fix that up, but I'm not sure it's worth the hassle.
Roland
More information about the xorg
mailing list