mesa: only report INCOMPLETE_FORMATS for GLES1 / desktop

The enum is defined in EXT_framebuffer_object (available on desktop),
and was copied to OES_framebuffer_object (available in GLES1). The ES2
spec has no mention of such an enum. If the underlying implementation
does not support this, it will set a generic incomplete error (as is
done in st_cb_fbo.c if mixed_formats == false).

This should fix the following dEQP tests on ES2 drivers:

    dEQP-GLES2.functional.fbo.completeness.attachment_combinations.rbo_tex_none_none
    dEQP-GLES2.functional.fbo.completeness.attachment_combinations.tex_rbo_none_none

Fixes: fd017458bc (mesa: fix fbo attachment size check for RBs, make it trigger in ES2)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4444
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9572>
This commit is contained in:
Ilia Mirkin 2021-03-12 14:25:09 -05:00 committed by Marge Bot
parent 87c85139ea
commit a04a797b89
1 changed files with 1 additions and 1 deletions

View File

@ -1314,7 +1314,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,
return;
}
/* check that all color buffers are the same format */
if (intFormat != GL_NONE && f != intFormat) {
if (ctx->API != API_OPENGLES2 && intFormat != GL_NONE && f != intFormat) {
fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT;
fbo_incomplete(ctx, "format mismatch", -1);
return;