mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
st/mesa: fix FRAMEBUFFER_UNSUPPORTED with the D24S8 format
Fixes FDO bug #29116. NOTE: this is a candidate for the 7.8 branch
This commit is contained in:
parent
3750ebd540
commit
4fd39a8d69
1 changed files with 19 additions and 7 deletions
|
|
@ -458,25 +458,37 @@ st_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb)
|
|||
{
|
||||
struct st_context *st = st_context(ctx);
|
||||
struct pipe_screen *screen = st->pipe->screen;
|
||||
const struct gl_renderbuffer *depthRb =
|
||||
fb->Attachment[BUFFER_DEPTH].Renderbuffer;
|
||||
const struct gl_renderbuffer *stencilRb =
|
||||
fb->Attachment[BUFFER_STENCIL].Renderbuffer;
|
||||
const struct gl_renderbuffer_attachment *depth =
|
||||
&fb->Attachment[BUFFER_DEPTH];
|
||||
const struct gl_renderbuffer_attachment *stencil =
|
||||
&fb->Attachment[BUFFER_STENCIL];
|
||||
GLuint i;
|
||||
|
||||
if (stencilRb && depthRb && stencilRb != depthRb) {
|
||||
if (depth->Type && stencil->Type && depth->Type != stencil->Type) {
|
||||
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
return;
|
||||
}
|
||||
if (depth->Type == GL_RENDERBUFFER_EXT &&
|
||||
stencil->Type == GL_RENDERBUFFER_EXT &&
|
||||
depth->Renderbuffer != stencil->Renderbuffer) {
|
||||
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
return;
|
||||
}
|
||||
if (depth->Type == GL_TEXTURE &&
|
||||
stencil->Type == GL_TEXTURE &&
|
||||
depth->Texture != stencil->Texture) {
|
||||
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!st_validate_attachment(screen,
|
||||
&fb->Attachment[BUFFER_DEPTH],
|
||||
depth,
|
||||
PIPE_BIND_DEPTH_STENCIL)) {
|
||||
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
return;
|
||||
}
|
||||
if (!st_validate_attachment(screen,
|
||||
&fb->Attachment[BUFFER_STENCIL],
|
||||
stencil,
|
||||
PIPE_BIND_DEPTH_STENCIL)) {
|
||||
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue