[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