On Sun, Jun 02, 2002 at 06:22:03PM +0200, Michel D�nzer wrote:
> > - Changing the do_wait_for_idle into a while(1) loop (not really a
> >   permanant thing to do, just to see the improvement if we stop the
> >   continual looping in and out of the kernel to wait for idle)
> 
> I don't understand what you are saying here.

Well at the mo we have 

        do_whatever:
                PUT_SOME_STUFF_ON_RING();
                while (++i < usec timeout)
                        if (bit_is_clear) {
                                return 0; /* we're now idle */
                        }

                        udelay (1);
                }

and in the drmDoWhatever
        do {
                ret = ioctl(do_whatever...);
        } while (ret == EBUSY && ++i < SomeArbitraryInteger);


..and in the typical user of 'whatever' we have

        do {
                drmDoWhatever(fd,...);
        } while (ret == EBUSY && ++i < AnotherArbitraryInteger);

I've basically changed do_idle to

        while(1)
                if (bit_is_clear) {
                        return;
                }
                udelay (1);
        }

So you call it once, and it returns when it's idle, with the obvious
problem if it doesn't go idle, but I've not hit that (and some of the
callers either loop forever or have a massive count anyway).

Where 'whatever' includes things like waiting for a frame to complete,
waiting for idle etc. In the wait for idle, it also included a similar
call / return / call return loop for the fifo too, compounding it, but
that's gone in my test anyway.

> > I'm reversing some of the changes now, to see if there's a specific one that
> > made the difference.
> 
> I'll happily test any patches, just send them my way.

Ok, I'll post something later...


> That's what I meant with 'X server option'. :) The 3D clients report
> that pageflipping would be allowed but never seem to use it.

Doh, I missed that. 

If it says 'allow 1 current 0' it's using it afaict.

-- 
Michael.

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to