intel: Fix false positives in checking for non-packed depth/stencil RB.

The wine d3d9 visual.c testcase was tripping over this and failing.
Presumably it's binding a packed depth/stencil texture to both
stencil and depth attachment points, and we make a new renderbuffer
wrapper for each in that case.
This commit is contained in:
Eric Anholt 2009-12-28 19:09:01 -08:00
parent 089144e4e5
commit a099644755

View file

@ -592,13 +592,20 @@ intel_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb)
int i;
if (depthRb && stencilRb && stencilRb != depthRb) {
/* we only support combined depth/stencil buffers, not separate
* stencil buffers.
*/
DBG("Only supports combined depth/stencil (found %s, %s)\n",
depthRb ? _mesa_get_format_name(depthRb->Base.Format): "NULL",
stencilRb ? _mesa_get_format_name(stencilRb->Base.Format): "NULL");
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
if (ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Type == GL_TEXTURE &&
ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Type == GL_TEXTURE &&
(ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Texture->Name ==
ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Texture->Name)) {
/* OK */
} else {
/* we only support combined depth/stencil buffers, not separate
* stencil buffers.
*/
DBG("Only supports combined depth/stencil (found %s, %s)\n",
depthRb ? _mesa_get_format_name(depthRb->Base.Format): "NULL",
stencilRb ? _mesa_get_format_name(stencilRb->Base.Format): "NULL");
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
}
}
for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {