mesa/meta: Support decompressing floating-point formats
authorNeil Roberts <neil@linux.intel.com>
Thu, 31 Jul 2014 13:07:50 +0000 (14:07 +0100)
committerNeil Roberts <neil@linux.intel.com>
Tue, 12 Aug 2014 17:23:50 +0000 (18:23 +0100)
commita018a3f3f5542534fd3b274673ef2c2e9c2c2c05
tree498a56114768f834358a1ebab5d71770c25d89cf
parent817051ab5b71b2c00e20f1b92ccf69c71e7ab70e
mesa/meta: Support decompressing floating-point formats

Previously the Meta implementation of glGetTexImage would fall back to
_mesa_get_teximage if the texturing is not using an unsigned normalised
format. However in order to support the half-float formats of BPTC textures we
can make it render to a floating-point renderbuffer instead. This patch makes
decompression_state have two FBOs, one for the GL_RGBA format and one for
GL_RGBA32F. If a floating-point texture is encountered it will try setting up
a floating-point FBO. It will now also check the status of the FBO and fall
back to _mesa_get_teximage if the FBO is not complete.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/common/meta.c
src/mesa/drivers/common/meta.h