From: Felix <fx...@gm...> - 2002-09-28 19:20:15
|
On Sat, 28 Sep 2002 17:28:01 +0100 Keith Whitwell <ke...@tu...> wrote: > Felix Kühling wrote: [snip] > > Ok, I think it can be done. However, we would react to load changes with > > one frame delay. Before I go on amusing people with another naive patch, > > I'll explain my idea. If you think it's ok, I'll go ahead implementing > > it, this time using radeonContext instead of a static variable ;) > > > > radeonContext would contain the irq_seq number and a boolean specifying > > whether there is an IRQ to wait for. If there is none, we have to do > > busy waiting. > > > > If we wait for an IRQ we check first, whether the last frame has already > > been completed. If so, we don't have to wait. > > > > In both cases (busy waiting and IRQ), if we did really wait, we emit an > > IRQ guessing that it will be the same next time. radeonContext is > > updated accordingly. > > > > To avoid switching the waiting scheme all the time we could switch to > > IRQ waiting only if we had to do at least N usleeps. > > This sounds good. I'm looking forward to see if you can implement it without > things getting too ugly. :) We'll see. > In the meantime, why don't you send me a tested version of your earlier patch, > modified to keep 'irq_seq' in rmesa. I'll commit it. Here you go ... tested as good as I can. I don't have/know any GL clients that use more than one context at at time. The attached patch contains both, the improved WaitForFrameCompletion and IRQ waiting in radeonFinish. > > Keith > __\|/__ ___ ___ ___ __Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___ _____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____ fx...@gm... >o<__/ \___/ \___/ at the same time! |