On Sat, 28 Sep 2002 16:31:56 +0100 Keith Whitwell <[EMAIL PROTECTED]> wrote:
[snip] > Using a static variable doesn't cut it -- that should go into the > radeonContext struct in radeon_context.h. > > Beyond that, it would be *nice* if the irq never happened unless we thought > that we were in danger of out-racing the card. I don't really have a good Is emitting an IRQ really costlier than busy waiting? > scheme to detect that situation -- perhaps every once in a while go back to > the busy waiting case, and only start emitting irq's if you ever actually have > to wait. > > That's a little complex, perhaps... 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. > > Keith > Regards, Felix __\|/__ ___ ___ ___ __Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___ _____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____ [EMAIL PROTECTED] >o<__/ \___/ \___/ at the same time! ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel