summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/pipe/xlib/xm_api.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mesa/pipe/xlib/xm_api.c b/src/mesa/pipe/xlib/xm_api.c
index ec889ca34fa..e456ea2fd4d 100644
--- a/src/mesa/pipe/xlib/xm_api.c
+++ b/src/mesa/pipe/xlib/xm_api.c
@@ -380,11 +380,21 @@ create_xmesa_buffer(XMesaDrawable d, BufferType type,
_mesa_add_renderbuffer(fb, BUFFER_STENCIL, rb);
}
else {
- if (vis->mesa_visual.depthBits > 0) {
+ if (vis->mesa_visual.depthBits > 24) {
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_DEPTH_COMPONENT32);
_mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
}
+ else if (vis->mesa_visual.depthBits > 16) {
+ struct gl_renderbuffer *rb
+ = st_new_renderbuffer_fb(GL_DEPTH24_STENCIL8_EXT);
+ _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
+ }
+ else if (vis->mesa_visual.depthBits > 1) {
+ struct gl_renderbuffer *rb
+ = st_new_renderbuffer_fb(GL_DEPTH_COMPONENT16);
+ _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
+ }
if (vis->mesa_visual.stencilBits > 0) {
struct gl_renderbuffer *rb