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!

Attachment: radeon_irqwait.patch
Description: Binary data

Reply via email to