----- Original Message ----- > We weren't handling the LUMINANCE_SNORM, LUMINANCE_ALPHA_SNORM and > INTENSITY_SNORM cases. Note that adding these cases here does not > require a driver to support rendering to these surface types. If > the driver can't do it we'll report an incomplete framebuffer. > > NVIDIA doesn't support GL_EXT_texture_snorm but their driver > accepts these formats in glRenderBufferStorage(). > --- > src/mesa/main/fbobject.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > index 2892784..d846808 100644 > --- a/src/mesa/main/fbobject.c > +++ b/src/mesa/main/fbobject.c > @@ -1504,6 +1504,22 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum > internalFormat) > return ctx->API == API_OPENGL_COMPAT && > ctx->Extensions.EXT_texture_snorm && > ctx->Extensions.ARB_framebuffer_object ? GL_ALPHA : 0; > + case GL_LUMINANCE_SNORM: > + case GL_LUMINANCE8_SNORM: > + case GL_LUMINANCE16_SNORM: > + return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm > + ? GL_LUMINANCE : 0; > + case GL_LUMINANCE_ALPHA_SNORM: > + case GL_LUMINANCE8_ALPHA8_SNORM: > + case GL_LUMINANCE16_ALPHA16_SNORM: > + return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm > + ? GL_LUMINANCE_ALPHA : 0; > + case GL_INTENSITY_SNORM: > + case GL_INTENSITY8_SNORM: > + case GL_INTENSITY16_SNORM: > + return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm > + ? GL_INTENSITY : 0; > + > case GL_R16F: > case GL_R32F: > return ((_mesa_is_desktop_gl(ctx) && > -- > 1.7.10.4 >
Reviewed-by: Jose Fonseca <[email protected]> _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
