Mesa (master): mesa/main: Modify generate_mipmap_compressed to cope with float textures

Neil Roberts nroberts at kemper.freedesktop.org
Tue Aug 12 17:27:16 UTC 2014


Module: Mesa
Branch: master
Commit: 88a8830390c8c7557d2e852dcef94ae6f04eb6b5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88a8830390c8c7557d2e852dcef94ae6f04eb6b5

Author: Neil Roberts <neil at linux.intel.com>
Date:   Fri Jul 25 17:38:22 2014 +0100

mesa/main: Modify generate_mipmap_compressed to cope with float textures

Once we add BPTC texture support we will need to generate mipmaps for
compressed floating point textures too. Most of the code seems to already be
there but it just needs a few extra lines to get it to use GL_FLOAT instead of
GL_UNSIGNED_BYTE as the type for the temporary buffers.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/main/mipmap.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index cc109cc..fdaa682 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -2038,12 +2038,15 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
 
    components = _mesa_format_num_components(temp_format);
 
-   /* Revisit this if we get compressed formats with >8 bits per component */
-   if (_mesa_get_format_datatype(srcImage->TexFormat)
-       == GL_SIGNED_NORMALIZED) {
+   switch (_mesa_get_format_datatype(srcImage->TexFormat)) {
+   case GL_FLOAT:
+      temp_datatype = GL_FLOAT;
+      break;
+   case GL_SIGNED_NORMALIZED:
+      /* Revisit this if we get compressed formats with >8 bits per component */
       temp_datatype = GL_BYTE;
-   }
-   else {
+      break;
+   default:
       temp_datatype = GL_UNSIGNED_BYTE;
    }
 




More information about the mesa-commit mailing list