Mesa (master): st/mesa: add support for GL_OES_compressed_ETC1_RGB8_texture

Chia-I Wu olv at kemper.freedesktop.org
Fri Dec 2 00:47:19 UTC 2011


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

Author: Chia-I Wu <olv at lunarg.com>
Date:   Tue Nov 29 12:49:36 2011 +0800

st/mesa: add support for GL_OES_compressed_ETC1_RGB8_texture

Have st/mesa recognize MESA_FORMAT_ETC1_RGB8 then we are good to advertise the
extension.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/state_tracker/st_extensions.c |    8 ++++++++
 src/mesa/state_tracker/st_format.c     |   12 ++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index cef2088..37fb3e7 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -475,6 +475,14 @@ void st_init_extensions(struct st_context *st)
       ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE;
    }
 
+   if (ctx->API != API_OPENGL) {
+      if (screen->is_format_supported(screen, PIPE_FORMAT_ETC1_RGB8,
+                                      PIPE_TEXTURE_2D, 0,
+                                      PIPE_BIND_SAMPLER_VIEW)) {
+         ctx->Extensions.OES_compressed_ETC1_RGB8_texture = GL_TRUE;
+      }
+   }
+
    if (screen->is_format_supported(screen, PIPE_FORMAT_R8G8B8A8_SNORM,
                                    PIPE_TEXTURE_2D, 0,
                                    PIPE_BIND_SAMPLER_VIEW)) {
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index bc414f4..4b34acf 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -420,6 +420,9 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
    case MESA_FORMAT_SIGNED_LA_LATC2:
       return PIPE_FORMAT_LATC2_SNORM;
 
+   case MESA_FORMAT_ETC1_RGB8:
+      return PIPE_FORMAT_ETC1_RGB8;
+
    /* signed normalized formats */
    case MESA_FORMAT_SIGNED_R8:
       return PIPE_FORMAT_R8_SNORM;
@@ -745,6 +748,9 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
    case PIPE_FORMAT_LATC2_SNORM:
       return MESA_FORMAT_SIGNED_LA_LATC2;
 
+   case PIPE_FORMAT_ETC1_RGB8:
+      return MESA_FORMAT_ETC1_RGB8;
+
    /* signed normalized formats */
    case PIPE_FORMAT_R8_SNORM:
       return MESA_FORMAT_SIGNED_R8;
@@ -1189,6 +1195,12 @@ static const struct format_mapping format_map[] = {
       { PIPE_FORMAT_LATC2_SNORM, 0 }
    },
 
+   /* ETC1 */
+   {
+      { GL_ETC1_RGB8_OES, 0 },
+      { PIPE_FORMAT_ETC1_RGB8, 0 }
+   },
+
    /* signed/unsigned integer formats.
     */
    {




More information about the mesa-commit mailing list