From 4ed9843a2698add2e43861d1b5395f4422c090a2 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 20 Aug 2022 12:35:53 -0400 Subject: [PATCH] asahi: Advertise ASTC formats Now that we have layout and tiling code that can handle block-compressed formats, including the non-square blocks found with some ASTC formats, we can advertise ASTC formats. Passes dEQP-GLES3.*astc* which exercises everything here. (These tests passed before by decompressing the textures to RGBA8 UNORM in the frontend, but it's much more efficient to use real ASTC textures as done here.) Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/agx_formats.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/asahi/lib/agx_formats.c b/src/asahi/lib/agx_formats.c index 1fc0c25c449..a9433e52ca1 100644 --- a/src/asahi/lib/agx_formats.c +++ b/src/asahi/lib/agx_formats.c @@ -124,6 +124,36 @@ const struct agx_pixel_format_entry agx_pixel_format[PIPE_FORMAT_COUNT] = { AGX_FMT(ETC2_R11_SNORM, EAC_R11, SNORM, F,_), AGX_FMT(ETC2_RG11_UNORM, EAC_RG11, UNORM, F,_), AGX_FMT(ETC2_RG11_SNORM, EAC_RG11, SNORM, F,_), + + AGX_FMT(ASTC_4x4, ASTC_4X4, UNORM, F, _), + AGX_FMT(ASTC_5x4, ASTC_5X4, UNORM, F, _), + AGX_FMT(ASTC_5x5, ASTC_5X5, UNORM, F, _), + AGX_FMT(ASTC_6x5, ASTC_6X5, UNORM, F, _), + AGX_FMT(ASTC_6x6, ASTC_6X6, UNORM, F, _), + AGX_FMT(ASTC_8x5, ASTC_8X5, UNORM, F, _), + AGX_FMT(ASTC_8x6, ASTC_8X6, UNORM, F, _), + AGX_FMT(ASTC_8x8, ASTC_8X8, UNORM, F, _), + AGX_FMT(ASTC_10x5, ASTC_10X5, UNORM, F, _), + AGX_FMT(ASTC_10x6, ASTC_10X6, UNORM, F, _), + AGX_FMT(ASTC_10x8, ASTC_10X8, UNORM, F, _), + AGX_FMT(ASTC_10x10, ASTC_10X10, UNORM, F, _), + AGX_FMT(ASTC_12x10, ASTC_12X10, UNORM, F, _), + AGX_FMT(ASTC_12x12, ASTC_12X12, UNORM, F, _), + + AGX_FMT(ASTC_4x4_SRGB, ASTC_4X4, UNORM, F, _), + AGX_FMT(ASTC_5x4_SRGB, ASTC_5X4, UNORM, F, _), + AGX_FMT(ASTC_5x5_SRGB, ASTC_5X5, UNORM, F, _), + AGX_FMT(ASTC_6x5_SRGB, ASTC_6X5, UNORM, F, _), + AGX_FMT(ASTC_6x6_SRGB, ASTC_6X6, UNORM, F, _), + AGX_FMT(ASTC_8x5_SRGB, ASTC_8X5, UNORM, F, _), + AGX_FMT(ASTC_8x6_SRGB, ASTC_8X6, UNORM, F, _), + AGX_FMT(ASTC_8x8_SRGB, ASTC_8X8, UNORM, F, _), + AGX_FMT(ASTC_10x5_SRGB, ASTC_10X5, UNORM, F, _), + AGX_FMT(ASTC_10x6_SRGB, ASTC_10X6, UNORM, F, _), + AGX_FMT(ASTC_10x8_SRGB, ASTC_10X8, UNORM, F, _), + AGX_FMT(ASTC_10x10_SRGB, ASTC_10X10, UNORM, F, _), + AGX_FMT(ASTC_12x10_SRGB, ASTC_12X10, UNORM, F, _), + AGX_FMT(ASTC_12x12_SRGB, ASTC_12X12, UNORM, F, _), }; const enum agx_format