On 11/12/2012 08:48 PM, Anuj Phogat wrote:
It is required by OpenGL ES 3.0 to support ETC2 textures.
This patch adds new MESA_FORMATs for following etc2 texture
formats:
  GL_COMPRESSED_RGB8_ETC2
  GL_COMPRESSED_SRGB8_ETC2
  GL_COMPRESSED_RGBA8_ETC2_EAC
  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  GL_COMPRESSED_R11_EAC
  GL_COMPRESSED_RG11_EAC
  GL_COMPRESSED_SIGNED_R11_EAC
  GL_COMPRESSED_SIGNED_RG11_EAC
  MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1
  MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1

Above formats are currently available in only gles 3.0.

v2: Add entries in texfetch_funcs[] array.

Signed-off-by: Anuj Phogat<anuj.pho...@gmail.com>
---
  src/mesa/main/format_unpack.c |   75 +++++++++++++++++++++++-
  src/mesa/main/formats.c       |  133 +++++++++++++++++++++++++++++++++++++++++
  src/mesa/main/formats.h       |   10 +++
  src/mesa/main/glformats.c     |   21 +++++++
  src/mesa/main/texcompress.c   |  100 +++++++++++++++++++++++++++++++
  src/mesa/main/texformat.c     |   37 +++++++++++
  src/mesa/main/teximage.c      |   21 +++++++
  src/mesa/main/texstore.c      |   12 ++++
  src/mesa/swrast/s_texfetch.c  |   60 ++++++++++++++++++
  9 files changed, 468 insertions(+), 1 deletions(-)


[...]

diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index f0bc7fd..96f553d 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -972,6 +972,43 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum 
target,
        }
     }

+   if (_mesa_is_gles3(ctx)) {
+      switch (internalFormat) {
+         case GL_COMPRESSED_RGB8_ETC2:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_RGB8);
+            break;
+         case GL_COMPRESSED_SRGB8_ETC2:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_SRGB8);
+            break;
+         case GL_COMPRESSED_RGBA8_ETC2_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_RGBA8_EAC);
+            break;
+         case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC);
+            break;
+         case GL_COMPRESSED_R11_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_R11_EAC);
+            break;
+         case GL_COMPRESSED_RG11_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_RG11_EAC);
+            break;
+         case GL_COMPRESSED_SIGNED_R11_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_SIGNED_R11_EAC);
+            break;
+         case GL_COMPRESSED_SIGNED_RG11_EAC:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_SIGNED_RG11_EAC);
+            break;
+         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1);
+            break;
+         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+            RETURN_IF_SUPPORTED(MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1);
+            break;
+         default:
+            ; /* fallthrough */
+      }

Those switch cases are indented differently than others in the file.

Also, the nonlinear_to_linear() function should probably have the _mesa_ prefix since it's no longer a static function.


Otherwise, the series looks OK to me.

Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to