This change enables GLES2 chagnes to render This change enables GLES2 to render float/half-float textures to a framebuffer when the appropriate OES extensions are available.
This commit regressed OES GLES2 float texture rendering: https://gitlab.freedesktop.org/mesa/mesa/commit/e333035c47a6a4cc88f0f9ca2bced500538bebae --- src/mesa/main/fbobject.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 23e4939..dd98487 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -869,16 +869,30 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format, return; } - /* OES_texture_float allows creation and use of floating point - * textures with GL_FLOAT, GL_HALF_FLOAT but it does not allow - * these textures to be used as a render target, this is done via - * GL_EXT_color_buffer(_half)_float with set of new sized types. - */ - if (_mesa_is_gles(ctx) && (texObj->_IsFloat || texObj->_IsHalfFloat)) { - att_incomplete("bad internal format"); - att->Complete = GL_FALSE; - return; + if (_mesa_is_gles(ctx)) { + /** + * GL ES 2 will allow GL_FLOAT and GL_HALF_FLOAT to render as a + * target when the appropriate OES_* extensions are available. + */ + if ((texObj->_IsFloat && !_mesa_has_OES_texture_half_float(ctx)) || + (texObj->_IsHalfFloat && !_mesa_has_OES_texture_float(ctx))) { + att_incomplete("bad internal format"); + att->Complete = GL_FALSE; + return; + } + } else if (_mesa_is_gles3(ctx)) { + /* OES_texture_float allows creation and use of floating point + * textures with GL_FLOAT, GL_HALF_FLOAT but it does not allow + * these textures to be used as a render target, this is done via + * GL_EXT_color_buffer(_half)_float with set of new sized types. + */ + if ((texObj->_IsFloat || texObj->_IsHalfFloat)) { + att_incomplete("bad internal format"); + att->Complete = GL_FALSE; + return; + } } + } else if (format == GL_DEPTH) { if (baseFormat == GL_DEPTH_COMPONENT) { -- 2.17.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev