Keith Whitwell wrote:
>
> Jens Owen wrote:
> >
> > Keith Whitwell wrote:
> > >
> > > Jens Owen wrote:
> > > >
> > > > Keith Whitwell wrote:
> > > > >
> > > > > Michael wrote:
> > > > > >
> > > > > > On Tue, May 21, 2002 at 12:14:45AM +0100, Keith Whitwell wrote:
> > > > > > > I have a .XF86config-radeon that sets ModulesPath to that directory, and
>maybe
> > > > > > > I need to set an env var or two... I guess the magic is adding up.
> > > > > >
> > > > > > Yeah, I should have rtfm'd, ModulesPath into .../exports/lib/modules
> > > > > > fixes it, thanks.
> > > > > >
> > > > > > glxgears
> > > > > > 5229 frames in 5.0 seconds = 1045.800 FPS
> > > > > > 5210 frames in 5.0 seconds = 1042.000 FPS
> > > > > >
> > > > > > 200fps+ at least there
> > > > >
> > > > > I've done some more work & will probably commit shortly.
> > > > > This is good stuff, I think.
> > > >
> > > > It is!
> > > >
> > > > > Changes since last time:
> > > > > - Deprecate the Open/Close Fullscreen foo.
> > > > > - Automatically turn pageflipping on when there
> > > > > is exactly one 3d client
> > > > > -- There may be situations where this
> > > > > isn't a good idea, perhaps many many
> > > > > cliprects?
> > > >
> > > > Oh yeah, we won't have a private full size back buffer for single 3D
> > > > client anymore. The performance tradeoff will be relative to the
> > > > compexity of the model and the number of passes the 3D driver will have
> > > > to make to render into multiple clip regions. I think two passes by the
> > > > 3D driver will washout any gains made by flipping. Perhaps we could use
> > > > hardware stencil support to render a complex clip list in a single pass.
> > > >
> > >
> > > The good news is there's no real cost to switching between mechanisms, but we
> > > do have to decide at the start of the frame which one to use, and that frame
> > > has to be in the "non-flipped" state - ie. we have that opportunity to
> > > fallback every second frame, I think...
> >
> > Hmmm, aren't we going to need to fall back at any arbitrary time? For
> > example, let say the first app started (with page flipping) and rendered
> > and odd number of frames. Then if a second application starts, we will
> > need to fall back at that point regardless of which buffer is front and
> > which is back at the time.
>
> Yes, this is what we already do.
>
> > Perhaps we stop page flipping, but we don't stop the mechanism of
> > dynamically assigning front and back buffers.
> >
> > Here's the scenario I'm thinking of:
> >
> > Buffer A assigned to be "front" buffer at server init
> > Buffer B assigned to be "back" buffer at server init
> >
> > Server does 2D rendering to Buffer A (current front)
> >
> > 3D application 1 starts
> > 3D driver 1 enables page flipping mode
> > 3D driver 1 copies Buffer A to Buffer B for entire screen
> Yep, but the Server does the copy.
>
> >
> > Server does 2D rendering to both buffers
> Yep, using the shadow module to track dirty regions & blit them clean.
>
> >
> > 3D driver 1 does 3D rendering to Buffer B (current back)
> >
> > Server continues to render to both buffers
> >
> > 3D application 1 issues a swap buffers command
> > 3D driver 1 performs page flip: front is B, back is A
> >
> > 3D driver 1 does 3D rendering to Buffer A (current back)
> >
> > Server continues to render to both buffers
> >
> > 3D appication 2 starts
> > 3D driver 2 disables page flipping mode: front stays B
> >
> > Server does 2D rendering to Buffer B (current front)
> >
> > 3D driver 2 does 3D rendering to Buffer A (current back)
> > 3D driver 1 does 3D rendering to Buffer A (current back)
>
> This is all eactly as implemented, I think... See -- it wasn't so hard...
Great. What thrue me off was your statements:
KW> The good news is there's no real cost to switching between
KW> mechanisms,
Isn't there an overhead when going into page flipping mode in that the
server has to duplicate the contents of the front buffer into the both
buffers?
KW> but we do have to decide at the start of the frame which one to
KW> use, and that frame has to be in the "non-flipped" state - ie.
KW> we have that opportunity to fallback every second frame, I think..."
If the server can start rendering to buffer B as it's current front (as
described in scenario above), then couldn't you switch modes on *any*
frame? I don't understand why you are limited to every second frame.
-- /\
Jens Owen / \/\ _
[EMAIL PROTECTED] / \ \ \ Steamboat Springs, Colorado
_______________________________________________________________
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