mesa: check fbo completeness based on internal format, not driver format
The base format is a function of the user-requested format, while the driver format is not. So we should use the base format instead. The driver format can be anything. Specifically in the stencil-only case, it might be a depth/stencil format. However we still want to refuse such an attachment when bound to GL_DEPTH. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -811,7 +811,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
|
||||
break;
|
||||
}
|
||||
|
||||
baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
|
||||
baseFormat = texImage->_BaseFormat;
|
||||
|
||||
if (format == GL_COLOR) {
|
||||
if (!_mesa_is_legal_color_format(ctx, baseFormat)) {
|
||||
@@ -868,8 +868,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
|
||||
}
|
||||
}
|
||||
else if (att->Type == GL_RENDERBUFFER_EXT) {
|
||||
const GLenum baseFormat =
|
||||
_mesa_get_format_base_format(att->Renderbuffer->Format);
|
||||
const GLenum baseFormat = att->Renderbuffer->_BaseFormat;
|
||||
|
||||
assert(att->Renderbuffer);
|
||||
if (!att->Renderbuffer->InternalFormat ||
|
||||
|
||||
Reference in New Issue
Block a user