Leif,

On 2002.05.16 23:34 Leif Delgass wrote:
> Jose,
> 
> In reading this it just occurred to me what the flaw in my code was.  I
> was setting up the descriptor table for a new pass _before_ waiting for
> the last one to complete, so there was a race condition.  If I wait for
> idle _before_, I get no lockups, but the framerate drops.  So here's what
> I'm going to do: setup ring pointers so that I start the descriptors for
> a new pass where the last one ended.  Then I'll start building the new
> descriptors, wrapping if necessary, and wait for idle if I hit the start
> of the ring (the start of the last pass).  I'll let you know how it goes.
> I'm sure this method could be refined, but if it works, things should be
> stable and I can check it in.
> 
> Leif
> 

This is great, especially is exactly on the same direction I was planning 
to. And better, even if the best way ends up to be on VBLANK interrupt 
basis, queuing buffers beyond the active buffer (i.e., without interfering 
with current buffer) and treating the descriptor table as a circular 
buffer, is possible beyond doubt. And we only have to gain from that since 
it's a much more cleaner approach leading to less memory consuption than, 
e.g., having to deal with two descriptor tables or waiting to have enough 
free space on the head.

José Fonseca

_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to