[intel] Initialize a depth buffer if the visual has depth 24 but no stencil.

This commit is contained in:
Eric Anholt
2007-11-08 14:49:37 -08:00
parent 77a5bcaff4
commit 38c616260a

View File

@@ -655,21 +655,34 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
} }
} }
if (mesaVis->depthBits == 24 && mesaVis->stencilBits == 8) { if (mesaVis->depthBits == 24) {
/* combined depth/stencil buffer */ if (mesaVis->stencilBits == 8) {
struct intel_renderbuffer *depthStencilRb /* combined depth/stencil buffer */
= intel_create_renderbuffer(GL_DEPTH24_STENCIL8_EXT, struct intel_renderbuffer *depthStencilRb
screen->width, screen->height, = intel_create_renderbuffer(GL_DEPTH24_STENCIL8_EXT,
screen->depth.offset, screen->width, screen->height,
screen->depth.pitch, screen->depth.offset,
screen->cpp, /* 4! */ screen->depth.pitch,
screen->depth.map); screen->cpp, /* 4! */
intel_set_span_functions(&depthStencilRb->Base); screen->depth.map);
/* note: bind RB to two attachment points */ intel_set_span_functions(&depthStencilRb->Base);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH, /* note: bind RB to two attachment points */
&depthStencilRb->Base); _mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH,
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_STENCIL, &depthStencilRb->Base);
&depthStencilRb->Base); _mesa_add_renderbuffer(&intel_fb->Base, BUFFER_STENCIL,
&depthStencilRb->Base);
} else {
struct intel_renderbuffer *depthRb
= intel_create_renderbuffer(GL_DEPTH_COMPONENT24,
screen->width, screen->height,
screen->depth.offset,
screen->depth.pitch,
screen->cpp, /* 4! */
screen->depth.map);
intel_set_span_functions(&depthRb->Base);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH,
&depthRb->Base);
}
} }
else if (mesaVis->depthBits == 16) { else if (mesaVis->depthBits == 16) {
/* just 16-bit depth buffer, no hw stencil */ /* just 16-bit depth buffer, no hw stencil */