mesa: add missing RGB9_E5 format in _mesa_base_fbo_format
authorJuan A. Suarez Romero <jasuarez@igalia.com>
Mon, 15 Jan 2018 10:58:50 +0000 (10:58 +0000)
committerAntia Puentes <apuentes@igalia.com>
Fri, 23 Feb 2018 09:12:06 +0000 (10:12 +0100)
RGB9_E5 should be accepted by RenderbufferStorage if the
EXT_texture_shared_exponent is exposed. It is left to the
implementations to return GL_FRAMEBUFFER_UNSUPPORTED_EXT
when checking the framebuffer completeness if they do not
support rendering in this format.

Discussed in:
https://github.com/KhronosGroup/OpenGL-API/issues/32

This fixes KHR-GL45.internalformat.renderbuffer.rgb9_e5

v2: Added more info to the commit message (Antia)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Antia Puentes <apuentes@igalia.com>
src/mesa/main/fbobject.c

index d23916d1ad72318baa85bb42b66db1149e96a4f4..c72204e11a07721a004a609eaafa9b9c03418b75 100644 (file)
@@ -1976,6 +1976,9 @@ _mesa_base_fbo_format(const struct gl_context *ctx, GLenum internalFormat)
                ctx->Extensions.ARB_texture_float) ||
               _mesa_is_gles3(ctx) /* EXT_color_buffer_float */ )
          ? GL_RGBA : 0;
+   case GL_RGB9_E5:
+      return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_shared_exponent)
+         ? GL_RGB: 0;
    case GL_ALPHA16F_ARB:
    case GL_ALPHA32F_ARB:
       return ctx->API == API_OPENGL_COMPAT &&