diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/framebuffer.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index 4fef9066c8..17241cfcef 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -444,9 +444,12 @@ set_stencil_renderbuffer(struct gl_framebuffer *fb, * _ColorDrawBuffers * _NumColorDrawBuffers * _ColorReadBuffer + * _DepthBuffer + * _StencilBuffer * If the current framebuffer is user-created, make sure it's complete. * The following functions can effect this state: glReadBuffer, - * glDrawBuffer, glDrawBuffersARB, glFramebufferRenderbufferEXT. + * glDrawBuffer, glDrawBuffersARB, glFramebufferRenderbufferEXT, + * glRenderbufferStorageEXT. */ void _mesa_update_framebuffer(GLcontext *ctx) @@ -504,7 +507,9 @@ _mesa_update_framebuffer(GLcontext *ctx) /* * Deal with GL_DEPTH_STENCIL renderbuffer(s) attached to the depth - * and/or stencil attachment points. + * and/or stencil attachment points. If either of the DEPTH or STENCIL + * renderbuffer attachments are GL_DEPTH_STENCIL buffers, we need to set + * up depth/stencil renderbuffer wrappers. */ { struct gl_renderbuffer *depthRb @@ -513,6 +518,7 @@ _mesa_update_framebuffer(GLcontext *ctx) = fb->Attachment[BUFFER_STENCIL].Renderbuffer; if (depthRb && depthRb->_BaseFormat == GL_DEPTH_STENCIL_EXT) { + /* The attached depth buffer is a GL_DEPTH_STENCIL renderbuffer */ if (!fb->_DepthBuffer || fb->_DepthBuffer->Wrapped != depthRb) { /* need to update wrapper */ struct gl_renderbuffer *wrapper @@ -527,6 +533,7 @@ _mesa_update_framebuffer(GLcontext *ctx) } if (stencilRb && stencilRb->_BaseFormat == GL_DEPTH_STENCIL_EXT) { + /* The attached stencil buffer is a GL_DEPTH_STENCIL renderbuffer */ if (!fb->_StencilBuffer || fb->_StencilBuffer->Wrapped != stencilRb) { /* need to update wrapper */ struct gl_renderbuffer *wrapper |