st/glx: fix depth/stencil format selection code
authorBrian Paul <brianp@vmware.com>
Mon, 22 Mar 2010 21:55:43 +0000 (15:55 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 22 Mar 2010 22:01:15 +0000 (16:01 -0600)
commitef2664da6c4db1b52ef351641e3ee949b87f9c7b
treead24224aae9516203aacf4218141731e84061610
parentaf0b0e1172a14ca215777f6ef6569d1433f45af2
st/glx: fix depth/stencil format selection code

This fixes a pretty big performance regression caused by commit
3475e88442c16fb2b50b903fe246b3ebe49da226.

When the user does not request a stencil buffer it's important that we
don't use a depth/stencil format (or at least make it our last choice).
If the user calls glClear(GL_DEPTH_BUFFER_BIT) when we have a combined
depth/stencil buffer, that causes us to hit the clear_with_quad() path
which can be much, much slower than calling pipe_context::clear().

Also, try to use a shallower depth format before a deeper one.
src/gallium/state_trackers/glx/xlib/xm_api.c