Felix Kühling wrote: > 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?
Good question. I really don't know. >>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. This sounds good. I'm looking forward to see if you can implement it without things getting too ugly. 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. Keith ------------------------------------------------------- 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