[Mesa-dev] [PATCH] mesa: add view classes for 3d astc formats

Anuj Phogat anuj.phogat at gmail.com
Fri May 20 21:28:24 UTC 2016


On Sun, May 8, 2016 at 7:26 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>
> This is pretty academic since no hw supports these formats, but since core
> support for these has landed, might as well extend the view logic.
>
>  src/mesa/main/textureview.c | 28 ++++++++++++++++++++++++++--
>  1 file changed, 26 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/textureview.c b/src/mesa/main/textureview.c
> index ef4d7bb..9b584cd 100644
> --- a/src/mesa/main/textureview.c
> +++ b/src/mesa/main/textureview.c
> @@ -210,7 +210,7 @@ static const struct internal_format_class_info gles_etc2_compatible_internal_for
>
>  static const struct internal_format_class_info gles_astc_compatible_internal_formats[] = {
>  #define ASTC_FMT(size) \
> -   {VIEW_CLASS_ASTC_##size## _RGBA, GL_COMPRESSED_RGBA_ASTC_##size##_KHR}, \
> +   {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_RGBA_ASTC_##size##_KHR}, \
>     {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_##size##_KHR}
>
>     ASTC_FMT(4x4),
> @@ -230,6 +230,24 @@ static const struct internal_format_class_info gles_astc_compatible_internal_for
>  #undef ASTC_FMT
>  };
>
> +static const struct internal_format_class_info gles_astc_3d_compatible_internal_formats[] = {
> +#define ASTC_FMT(size) \
> +   {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_RGBA_ASTC_##size##_OES}, \
> +   {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_##size##_OES}
> +
> +   ASTC_FMT(3x3x3),
> +   ASTC_FMT(4x3x3),
> +   ASTC_FMT(4x4x3),
> +   ASTC_FMT(4x4x4),
> +   ASTC_FMT(5x4x4),
> +   ASTC_FMT(5x5x4),
> +   ASTC_FMT(5x5x5),
> +   ASTC_FMT(6x5x5),
> +   ASTC_FMT(6x6x5),
> +   ASTC_FMT(6x6x6),
> +#undef ASTC_FMT
> +};
> +
>  GLenum
>  _mesa_texture_view_lookup_view_class(const struct gl_context *ctx, GLenum internalformat)
>  {
> @@ -264,7 +282,13 @@ _mesa_texture_view_lookup_view_class(const struct gl_context *ctx, GLenum intern
>           }
>        }
>
> -      /* FINISHME: Add 3D OES formats when supported */
> +      if (ctx->Extensions.OES_texture_compression_astc) {
> +         for (i = 0; i < ARRAY_SIZE(gles_astc_3d_compatible_internal_formats); i++) {
> +            if (gles_astc_3d_compatible_internal_formats[i].internal_format
> +                == internalformat)
> +               return gles_astc_3d_compatible_internal_formats[i].view_class;
> +         }
> +      }
>     }
>     return GL_FALSE;
>  }
> --
> 2.7.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list