X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fformats.h;h=08039067a6c4fe18d528d2231060445b6dfd5a5d;hb=551b61528f6754aa91948ed13821cf2c90cf8970;hp=ccb09b263ffafe6c6712f5b9398b07439b8d7d3c;hpb=0af4bf4d4bc96d1a8471bdfe8055fa05e7ccd0fe;p=mesa.git diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index ccb09b263ff..08039067a6c 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -36,7 +36,6 @@ #include #include #include -#include "compiler.h" #ifdef __cplusplus extern "C" { @@ -66,11 +65,13 @@ enum mesa_format_layout { MESA_FORMAT_LAYOUT_PACKED, MESA_FORMAT_LAYOUT_S3TC, MESA_FORMAT_LAYOUT_RGTC, + MESA_FORMAT_LAYOUT_LATC, MESA_FORMAT_LAYOUT_FXT1, MESA_FORMAT_LAYOUT_ETC1, MESA_FORMAT_LAYOUT_ETC2, MESA_FORMAT_LAYOUT_BPTC, MESA_FORMAT_LAYOUT_ASTC, + MESA_FORMAT_LAYOUT_ATC, MESA_FORMAT_LAYOUT_OTHER, }; @@ -349,6 +350,7 @@ typedef enum MESA_FORMAT_B4G4R4X4_UNORM, /* xxxx RRRR GGGG BBBB */ MESA_FORMAT_A4R4G4B4_UNORM, /* BBBB GGGG RRRR AAAA */ MESA_FORMAT_A1B5G5R5_UNORM, /* RRRR RGGG GGBB BBBA */ + MESA_FORMAT_X1B5G5R5_UNORM, /* BBBB BGGG GGRR RRRX */ MESA_FORMAT_B5G5R5A1_UNORM, /* ARRR RRGG GGGB BBBB */ MESA_FORMAT_B5G5R5X1_UNORM, /* xRRR RRGG GGGB BBBB */ MESA_FORMAT_A1R5G5B5_UNORM, /* BBBB BGGG GGRR RRRA */ @@ -439,6 +441,7 @@ typedef enum MESA_FORMAT_X8B8G8R8_SRGB, /* RRRR RRRR GGGG GGGG BBBB BBBB xxxx xxxx */ MESA_FORMAT_L8A8_SRGB, /* AAAA AAAA LLLL LLLL */ MESA_FORMAT_A8L8_SRGB, /* LLLL LLLL AAAA AAAA */ + MESA_FORMAT_R_SRGB8, /* RRRR RRRR */ /* Array sRGB formats */ MESA_FORMAT_L_SRGB8, /* ubyte[i] = L */ @@ -471,10 +474,27 @@ typedef enum MESA_FORMAT_Z_FLOAT32, /* Packed signed/unsigned non-normalized integer formats */ + + MESA_FORMAT_A8B8G8R8_UINT, /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */ + MESA_FORMAT_A8R8G8B8_UINT, /* BBBB BBBB GGGG GGGG RRRR RRRR AAAA AAAA */ + MESA_FORMAT_R8G8B8A8_UINT, /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */ + MESA_FORMAT_B8G8R8A8_UINT, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */ MESA_FORMAT_B10G10R10A2_UINT, /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */ MESA_FORMAT_R10G10B10A2_UINT, /* AABB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */ MESA_FORMAT_A2B10G10R10_UINT, /* RRRR RRRR RRGG GGGG GGGG BBBB BBBB BBAA */ MESA_FORMAT_A2R10G10B10_UINT, /* BBBB BBBB BBGG GGGG GGGG RRRR RRRR RRAA */ + MESA_FORMAT_B5G6R5_UINT, /* RRRR RGGG GGGB BBBB */ + MESA_FORMAT_R5G6B5_UINT, /* BBBB BGGG GGGR RRRR */ + MESA_FORMAT_B2G3R3_UINT, /* RRRG GGBB */ + MESA_FORMAT_R3G3B2_UINT, /* BBGG GRRR */ + MESA_FORMAT_A4B4G4R4_UINT, /* RRRR GGGG BBBB AAAA */ + MESA_FORMAT_R4G4B4A4_UINT, /* AAAA BBBB GGGG RRRR */ + MESA_FORMAT_B4G4R4A4_UINT, /* AAAA RRRR GGGG BBBB */ + MESA_FORMAT_A4R4G4B4_UINT, /* BBBB GGGG RRRR AAAA */ + MESA_FORMAT_A1B5G5R5_UINT, /* RRRR RGGG GGBB BBBA */ + MESA_FORMAT_B5G5R5A1_UINT, /* ARRR RRGG GGGB BBBB */ + MESA_FORMAT_A1R5G5B5_UINT, /* BBBB BGGG GGRR RRRA */ + MESA_FORMAT_R5G5B5A1_UINT, /* ABBB BBGG GGGR RRRR */ /* Array signed/unsigned non-normalized integer formats */ MESA_FORMAT_A_UINT8, @@ -617,6 +637,33 @@ typedef enum MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x10, MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x10, MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x12, + + MESA_FORMAT_RGBA_ASTC_3x3x3, + MESA_FORMAT_RGBA_ASTC_4x3x3, + MESA_FORMAT_RGBA_ASTC_4x4x3, + MESA_FORMAT_RGBA_ASTC_4x4x4, + MESA_FORMAT_RGBA_ASTC_5x4x4, + MESA_FORMAT_RGBA_ASTC_5x5x4, + MESA_FORMAT_RGBA_ASTC_5x5x5, + MESA_FORMAT_RGBA_ASTC_6x5x5, + MESA_FORMAT_RGBA_ASTC_6x6x5, + MESA_FORMAT_RGBA_ASTC_6x6x6, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_3x3x3, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x3x3, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x3, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x4, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4x4, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x4, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x5, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5, + MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6, + + /* ATC compressed formats */ + MESA_FORMAT_ATC_RGB, + MESA_FORMAT_ATC_RGBA_EXPLICIT, + MESA_FORMAT_ATC_RGBA_INTERPOLATED, + MESA_FORMAT_COUNT } mesa_format; @@ -645,6 +692,10 @@ _mesa_get_format_base_format(uint32_t format); extern void _mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh); +extern void +_mesa_get_format_block_size_3d(mesa_format format, GLuint *bw, + GLuint *bh, GLuint *bd); + extern mesa_array_format _mesa_array_format_flip_channels(mesa_array_format format); @@ -678,6 +729,9 @@ _mesa_is_format_integer(mesa_format format); extern bool _mesa_is_format_etc2(mesa_format format); +bool +_mesa_is_format_astc_2d(mesa_format format); + GLenum _mesa_is_format_color_format(mesa_format format); @@ -705,6 +759,9 @@ _mesa_test_formats(void); extern mesa_format _mesa_get_srgb_format_linear(mesa_format format); +extern mesa_format +_mesa_get_linear_format_srgb(mesa_format format); + extern mesa_format _mesa_get_uncompressed_format(mesa_format format); @@ -719,6 +776,9 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format, GLenum format, GLenum type, GLboolean swapBytes, GLenum *error); +mesa_format +_mesa_format_fallback_rgbx_to_rgba(mesa_format format); + #ifdef __cplusplus } #endif