On Sat, 28 Sep 2002 17:28:01 +0100 Keith Whitwell <[EMAIL PROTECTED]> 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____
[EMAIL PROTECTED] >o<__/ \___/ \___/ at the same time!
radeon_irqwait.patch
Description: Binary data
