mesa: Replace MESA_FORMAT_L8A8/A8L8 UNORM/SNORM/SRGB with an array format.

The array format is what the GL API wants (fixing texbos on
big-endian), and matches directly to gallium's corresponding array
format.  The only driver exposing A8L8 was radeon/r200 in big-endian,
where the HW's underlying format was trying to read as array and we
needed to flip things around to make our packed format come out right
(note that while the radeon format tables had both AL and LA,
ChooseTextureFormat would only pick one of them based on endianness).

v2: Don't make r200/radeon use endian swaps.
v3: Rebase on dropping the r200 _be/_le format table removal patch
v4: reword commit message to explain why we can drop both formats
    from radeon.

Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)
This commit is contained in:
Eric Anholt 2019-09-05 14:42:15 -07:00
parent 236b478b2e
commit 6a819cabe8
20 changed files with 62 additions and 103 deletions

View File

@ -936,10 +936,12 @@ static const struct {
.image_format = __DRI_IMAGE_FORMAT_GR88,
.mesa_format = MESA_FORMAT_R8G8_UNORM,
},
#ifdef PIPE_ARCH_LITTLE_ENDIAN
{
.image_format = __DRI_IMAGE_FORMAT_GR88,
.mesa_format = MESA_FORMAT_L8A8_UNORM,
.mesa_format = MESA_FORMAT_LA_UNORM8,
},
#endif
{
.image_format = __DRI_IMAGE_FORMAT_SABGR8,
.mesa_format = MESA_FORMAT_R8G8B8A8_SRGB,

View File

@ -47,7 +47,7 @@ translate_texture_format(GLuint mesa_format)
return MAPSURF_8BIT | MT_8BIT_L8;
case MESA_FORMAT_I_UNORM8:
return MAPSURF_8BIT | MT_8BIT_I8;
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_LA_UNORM8:
return MAPSURF_16BIT | MT_16BIT_AY88;
case MESA_FORMAT_B5G6R5_UNORM:
return MAPSURF_16BIT | MT_16BIT_RGB565;

View File

@ -118,7 +118,7 @@ intel_init_texture_formats(struct gl_context *ctx)
if (intel->gen == 3)
ctx->TextureFormatSupported[MESA_FORMAT_A_UNORM8] = true;
ctx->TextureFormatSupported[MESA_FORMAT_I_UNORM8] = true;
ctx->TextureFormatSupported[MESA_FORMAT_L8A8_UNORM] = true;
ctx->TextureFormatSupported[MESA_FORMAT_LA_UNORM8] = true;
/* Depth and stencil */
if (intel->gen == 3) {

View File

@ -48,7 +48,7 @@ translate_texture_format(mesa_format mesa_format, GLenum DepthMode)
return MAPSURF_8BIT | MT_8BIT_I8;
case MESA_FORMAT_A_UNORM8:
return MAPSURF_8BIT | MT_8BIT_A8;
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_LA_UNORM8:
return MAPSURF_16BIT | MT_16BIT_AY88;
case MESA_FORMAT_B5G6R5_UNORM:
return MAPSURF_16BIT | MT_16BIT_RGB565;

View File

@ -47,7 +47,7 @@ brw_isl_format_for_mesa_format(mesa_format mesa_format)
[MESA_FORMAT_B5G6R5_UNORM] = ISL_FORMAT_B5G6R5_UNORM,
[MESA_FORMAT_B4G4R4A4_UNORM] = ISL_FORMAT_B4G4R4A4_UNORM,
[MESA_FORMAT_B5G5R5A1_UNORM] = ISL_FORMAT_B5G5R5A1_UNORM,
[MESA_FORMAT_L8A8_UNORM] = ISL_FORMAT_L8A8_UNORM,
[MESA_FORMAT_LA_UNORM8] = ISL_FORMAT_L8A8_UNORM,
[MESA_FORMAT_LA_UNORM16] = ISL_FORMAT_L16A16_UNORM,
[MESA_FORMAT_A_UNORM8] = ISL_FORMAT_A8_UNORM,
[MESA_FORMAT_A_UNORM16] = ISL_FORMAT_A16_UNORM,
@ -69,7 +69,7 @@ brw_isl_format_for_mesa_format(mesa_format mesa_format)
[MESA_FORMAT_B8G8R8X8_SRGB] = ISL_FORMAT_B8G8R8X8_UNORM_SRGB,
[MESA_FORMAT_R_SRGB8] = ISL_FORMAT_L8_UNORM_SRGB,
[MESA_FORMAT_L_SRGB8] = ISL_FORMAT_L8_UNORM_SRGB,
[MESA_FORMAT_L8A8_SRGB] = ISL_FORMAT_L8A8_UNORM_SRGB,
[MESA_FORMAT_LA_SRGB8] = ISL_FORMAT_L8A8_UNORM_SRGB,
[MESA_FORMAT_SRGB_DXT1] = ISL_FORMAT_BC1_UNORM_SRGB,
[MESA_FORMAT_SRGBA_DXT1] = ISL_FORMAT_BC1_UNORM_SRGB,
[MESA_FORMAT_SRGBA_DXT3] = ISL_FORMAT_BC2_UNORM_SRGB,

View File

@ -50,8 +50,7 @@ swzsurf_format(mesa_format format)
case MESA_FORMAT_B5G5R5A1_UNORM:
case MESA_FORMAT_A1B5G5R5_UNORM:
case MESA_FORMAT_A1R5G5B5_UNORM:
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
case MESA_FORMAT_YCBCR:
case MESA_FORMAT_YCBCR_REV:
case MESA_FORMAT_Z_UNORM16:
@ -89,8 +88,7 @@ surf2d_format(mesa_format format)
case MESA_FORMAT_B5G5R5A1_UNORM:
case MESA_FORMAT_A1B5G5R5_UNORM:
case MESA_FORMAT_A1R5G5B5_UNORM:
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
case MESA_FORMAT_YCBCR:
case MESA_FORMAT_YCBCR_REV:
case MESA_FORMAT_Z_UNORM16:
@ -128,8 +126,7 @@ rect_format(mesa_format format)
case MESA_FORMAT_B5G5R5A1_UNORM:
case MESA_FORMAT_A1B5G5R5_UNORM:
case MESA_FORMAT_A1R5G5B5_UNORM:
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
case MESA_FORMAT_YCBCR:
case MESA_FORMAT_YCBCR_REV:
case MESA_FORMAT_Z_UNORM16:
@ -167,8 +164,7 @@ sifm_format(mesa_format format)
case MESA_FORMAT_B5G5R5A1_UNORM:
case MESA_FORMAT_A1B5G5R5_UNORM:
case MESA_FORMAT_A1R5G5B5_UNORM:
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
case MESA_FORMAT_YCBCR:
case MESA_FORMAT_YCBCR_REV:
case MESA_FORMAT_Z_UNORM16:

View File

@ -73,10 +73,9 @@ static const struct tx_table tx_table_be[] =
[ MESA_FORMAT_A4R4G4B4_UNORM ] = { R200_TXFORMAT_ARGB4444 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_B5G5R5A1_UNORM ] = { R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A1R5G5B5_UNORM ] = { R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L8A8_UNORM ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A8L8_UNORM ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A_UNORM8 ] = { R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L_UNORM8 ] = { R200_TXFORMAT_I8, 0 },
[ MESA_FORMAT_LA_UNORM8 ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_I_UNORM8 ] = { R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_YCBCR ] = { R200_TXFORMAT_YVYU422, R200_YUV_TO_RGB },
[ MESA_FORMAT_YCBCR_REV ] = { R200_TXFORMAT_VYUY422, R200_YUV_TO_RGB },
@ -103,10 +102,9 @@ static const struct tx_table tx_table_le[] =
[ MESA_FORMAT_A4R4G4B4_UNORM ] = { R200_TXFORMAT_ARGB4444 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_B5G5R5A1_UNORM ] = { R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A1R5G5B5_UNORM ] = { R200_TXFORMAT_ARGB1555 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L8A8_UNORM ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A8L8_UNORM ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A_UNORM8 ] = { R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L_UNORM8 ] = { R200_TXFORMAT_I8, 0 },
[ MESA_FORMAT_LA_UNORM8 ] = { R200_TXFORMAT_AI88 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_I_UNORM8 ] = { R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_YCBCR ] = { R200_TXFORMAT_YVYU422, R200_YUV_TO_RGB },
[ MESA_FORMAT_YCBCR_REV ] = { R200_TXFORMAT_VYUY422, R200_YUV_TO_RGB },

View File

@ -72,8 +72,7 @@ static const struct tx_table tx_table[] =
[ MESA_FORMAT_A4R4G4B4_UNORM ] = { RADEON_TXFORMAT_ARGB4444 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_B5G5R5A1_UNORM ] = { RADEON_TXFORMAT_ARGB1555 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A1R5G5B5_UNORM ] = { RADEON_TXFORMAT_ARGB1555 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L8A8_UNORM ] = { RADEON_TXFORMAT_AI88 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A8L8_UNORM ] = { RADEON_TXFORMAT_AI88 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_LA_UNORM8 ] = { RADEON_TXFORMAT_AI88 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_A_UNORM8 ] = { RADEON_TXFORMAT_I8 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },
[ MESA_FORMAT_L_UNORM8 ] = { RADEON_TXFORMAT_I8, 0 },
[ MESA_FORMAT_I_UNORM8 ] = { RADEON_TXFORMAT_I8 | RADEON_TXFORMAT_ALPHA_IN_MAP, 0 },

View File

@ -359,7 +359,7 @@ mesa_format radeonChooseTextureFormat(struct gl_context * ctx,
#if defined(RADEON_R200)
/* r200: can't use a8 format since interpreting hw I8 as a8 would result
in wrong rgb values (same as alpha value instead of 0). */
return _radeon_texformat_al88;
return MESA_FORMAT_LA_UNORM8;
#else
return MESA_FORMAT_A_UNORM8;
#endif
@ -381,7 +381,7 @@ mesa_format radeonChooseTextureFormat(struct gl_context * ctx,
case GL_LUMINANCE12_ALPHA12:
case GL_LUMINANCE16_ALPHA16:
case GL_COMPRESSED_LUMINANCE_ALPHA:
return _radeon_texformat_al88;
return MESA_FORMAT_LA_UNORM8;
case GL_INTENSITY:
case GL_INTENSITY4:
@ -464,7 +464,7 @@ mesa_format radeonChooseTextureFormat(struct gl_context * ctx,
case GL_SLUMINANCE_ALPHA:
case GL_SLUMINANCE8_ALPHA8:
case GL_COMPRESSED_SLUMINANCE_ALPHA:
return MESA_FORMAT_L8A8_SRGB;
return MESA_FORMAT_LA_SRGB8;
case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
return MESA_FORMAT_SRGB_DXT1;
@ -596,7 +596,6 @@ mesa_format _radeon_texformat_argb8888 = MESA_FORMAT_NONE;
mesa_format _radeon_texformat_rgb565 = MESA_FORMAT_NONE;
mesa_format _radeon_texformat_argb4444 = MESA_FORMAT_NONE;
mesa_format _radeon_texformat_argb1555 = MESA_FORMAT_NONE;
mesa_format _radeon_texformat_al88 = MESA_FORMAT_NONE;
/*@}*/
@ -609,7 +608,6 @@ radeonInitTextureFormats(void)
_radeon_texformat_rgb565 = MESA_FORMAT_B5G6R5_UNORM;
_radeon_texformat_argb4444 = MESA_FORMAT_B4G4R4A4_UNORM;
_radeon_texformat_argb1555 = MESA_FORMAT_B5G5R5A1_UNORM;
_radeon_texformat_al88 = MESA_FORMAT_L8A8_UNORM;
}
else {
_radeon_texformat_rgba8888 = MESA_FORMAT_R8G8B8A8_UNORM;
@ -617,7 +615,6 @@ radeonInitTextureFormats(void)
_radeon_texformat_rgb565 = MESA_FORMAT_R5G6B5_UNORM;
_radeon_texformat_argb4444 = MESA_FORMAT_A4R4G4B4_UNORM;
_radeon_texformat_argb1555 = MESA_FORMAT_A1R5G5B5_UNORM;
_radeon_texformat_al88 = MESA_FORMAT_A8L8_UNORM;
}
}

View File

@ -38,7 +38,6 @@ extern mesa_format _radeon_texformat_argb8888;
extern mesa_format _radeon_texformat_rgb565;
extern mesa_format _radeon_texformat_argb4444;
extern mesa_format _radeon_texformat_argb1555;
extern mesa_format _radeon_texformat_al88;
extern
void copy_rows(void* dst, GLuint dststride, const void* src, GLuint srcstride,

View File

@ -625,8 +625,7 @@ _mesa_print_texture(struct gl_context *ctx, struct gl_texture_image *img)
case MESA_FORMAT_I_UNORM8:
c = 1;
break;
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
c = 2;
break;
case MESA_FORMAT_BGR_UNORM8:

View File

@ -718,9 +718,9 @@ _mesa_get_uncompressed_format(mesa_format format)
case MESA_FORMAT_L_LATC1_SNORM:
return MESA_FORMAT_L_SNORM8;
case MESA_FORMAT_LA_LATC2_UNORM:
return MESA_FORMAT_L8A8_UNORM;
return MESA_FORMAT_LA_UNORM8;
case MESA_FORMAT_LA_LATC2_SNORM:
return MESA_FORMAT_L8A8_SNORM;
return MESA_FORMAT_LA_SNORM8;
case MESA_FORMAT_ETC1_RGB8:
case MESA_FORMAT_ETC2_RGB8:
case MESA_FORMAT_ETC2_SRGB8:
@ -946,8 +946,7 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format,
*comps = 2;
return;
case MESA_FORMAT_L8A8_UNORM:
case MESA_FORMAT_A8L8_UNORM:
case MESA_FORMAT_LA_UNORM8:
case MESA_FORMAT_R8G8_UNORM:
case MESA_FORMAT_G8R8_UNORM:
*datatype = GL_UNSIGNED_BYTE;
@ -1070,8 +1069,7 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format,
*comps = 1;
return;
case MESA_FORMAT_R8G8_SNORM:
case MESA_FORMAT_L8A8_SNORM:
case MESA_FORMAT_A8L8_SNORM:
case MESA_FORMAT_LA_SNORM8:
*datatype = GL_BYTE;
*comps = 2;
return;
@ -1124,8 +1122,7 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format,
*datatype = GL_UNSIGNED_BYTE;
*comps = 1;
return;
case MESA_FORMAT_L8A8_SRGB:
case MESA_FORMAT_A8L8_SRGB:
case MESA_FORMAT_LA_SRGB8:
*datatype = GL_UNSIGNED_BYTE;
*comps = 2;
return;

View File

@ -70,8 +70,6 @@ MESA_FORMAT_X1B5G5R5_UNORM , packed, 1, 1, 1, x1 , un5 , un5 , u
MESA_FORMAT_B5G5R5A1_UNORM , packed, 1, 1, 1, un5 , un5 , un5 , un1 , zyxw, rgb
MESA_FORMAT_B5G5R5X1_UNORM , packed, 1, 1, 1, un5 , un5 , un5 , x1 , zyx1, rgb
MESA_FORMAT_A1R5G5B5_UNORM , packed, 1, 1, 1, un1 , un5 , un5 , un5 , yzwx, rgb
MESA_FORMAT_L8A8_UNORM , packed, 1, 1, 1, un8 , un8 , , , xxxy, rgb
MESA_FORMAT_A8L8_UNORM , packed, 1, 1, 1, un8 , un8 , , , yyyx, rgb
MESA_FORMAT_R8G8_UNORM , packed, 1, 1, 1, un8 , un8 , , , xy01, rgb
MESA_FORMAT_G8R8_UNORM , packed, 1, 1, 1, un8 , un8 , , , yx01, rgb
MESA_FORMAT_L4A4_UNORM , packed, 1, 1, 1, un4 , un4 , , , xxxy, rgb
@ -104,6 +102,7 @@ MESA_FORMAT_A_UNORM8 , array , 1, 1, 1, un8 , , ,
MESA_FORMAT_A_UNORM16 , array , 1, 1, 1, un16, , , , 000x, rgb
MESA_FORMAT_L_UNORM8 , array , 1, 1, 1, un8 , , , , xxx1, rgb
MESA_FORMAT_L_UNORM16 , array , 1, 1, 1, un16, , , , xxx1, rgb
MESA_FORMAT_LA_UNORM8 , array , 1, 1, 1, un8 , un8 , , , xxxy, rgb
MESA_FORMAT_LA_UNORM16 , array , 1, 1, 1, un16, un16, , , xxxy, rgb
MESA_FORMAT_I_UNORM8 , array , 1, 1, 1, un8 , , , , xxxx, rgb
MESA_FORMAT_I_UNORM16 , array , 1, 1, 1, un16, , , , xxxx, rgb
@ -127,8 +126,6 @@ MESA_FORMAT_R16G16_SNORM , packed, 1, 1, 1, sn16, sn16, ,
MESA_FORMAT_G16R16_SNORM , packed, 1, 1, 1, sn16, sn16, , , yx01, rgb
MESA_FORMAT_R8G8_SNORM , packed, 1, 1, 1, sn8 , sn8 , , , xy01, rgb
MESA_FORMAT_G8R8_SNORM , packed, 1, 1, 1, sn8 , sn8 , , , yx01, rgb
MESA_FORMAT_L8A8_SNORM , packed, 1, 1, 1, sn8 , sn8 , , , xxxy, rgb
MESA_FORMAT_A8L8_SNORM , packed, 1, 1, 1, sn8 , sn8 , , , yyyx, rgb
# Array signed/normalized formats
MESA_FORMAT_A_SNORM8 , array , 1, 1, 1, sn8 , , , , 000x, rgb
@ -139,6 +136,7 @@ MESA_FORMAT_I_SNORM8 , array , 1, 1, 1, sn8 , , ,
MESA_FORMAT_I_SNORM16 , array , 1, 1, 1, sn16, , , , xxxx, rgb
MESA_FORMAT_R_SNORM8 , array , 1, 1, 1, sn8 , , , , x001, rgb
MESA_FORMAT_R_SNORM16 , array , 1, 1, 1, sn16, , , , x001, rgb
MESA_FORMAT_LA_SNORM8 , array , 1, 1, 1, sn8 , sn8 , , , xxxy, rgb
MESA_FORMAT_LA_SNORM16 , array , 1, 1, 1, sn16, sn16, , , xxxy, rgb
MESA_FORMAT_RGB_SNORM16 , array , 1, 1, 1, sn16, sn16, sn16, , xyz1, rgb
MESA_FORMAT_RGBA_SNORM16 , array , 1, 1, 1, sn16, sn16, sn16, sn16, xyzw, rgb
@ -153,12 +151,11 @@ MESA_FORMAT_X8R8G8B8_SRGB , packed, 1, 1, 1, x8 , un8 , un8 , u
MESA_FORMAT_R8G8B8A8_SRGB , packed, 1, 1, 1, un8 , un8 , un8 , un8 , xyzw, srgb
MESA_FORMAT_R8G8B8X8_SRGB , packed, 1, 1, 1, un8 , un8 , un8 , x8 , xyz1, srgb
MESA_FORMAT_X8B8G8R8_SRGB , packed, 1, 1, 1, x8 , un8 , un8 , un8 , wzy1, srgb
MESA_FORMAT_L8A8_SRGB , packed, 1, 1, 1, un8 , un8 , , , xxxy, srgb
MESA_FORMAT_A8L8_SRGB , packed, 1, 1, 1, un8 , un8 , , , yyyx, srgb
# Array sRGB formats
MESA_FORMAT_R_SRGB8 , array , 1, 1, 1, un8 , , , , x001, srgb
MESA_FORMAT_L_SRGB8 , array , 1, 1, 1, un8 , , , , xxx1, srgb
MESA_FORMAT_LA_SRGB8 , array , 1, 1, 1, un8 , un8 , , , xxxy, srgb
MESA_FORMAT_BGR_SRGB8 , array , 1, 1, 1, un8 , un8 , un8 , , zyx1, srgb
# Packed float formats

Can't render this file because it contains an unexpected character in line 9 and column 3.

View File

@ -367,8 +367,6 @@ typedef enum
MESA_FORMAT_B5G5R5A1_UNORM, /* ARRR RRGG GGGB BBBB */
MESA_FORMAT_B5G5R5X1_UNORM, /* xRRR RRGG GGGB BBBB */
MESA_FORMAT_A1R5G5B5_UNORM, /* BBBB BGGG GGRR RRRA */
MESA_FORMAT_L8A8_UNORM, /* AAAA AAAA LLLL LLLL */
MESA_FORMAT_A8L8_UNORM, /* LLLL LLLL AAAA AAAA */
MESA_FORMAT_R8G8_UNORM, /* GGGG GGGG RRRR RRRR */
MESA_FORMAT_G8R8_UNORM, /* RRRR RRRR GGGG GGGG */
MESA_FORMAT_L4A4_UNORM, /* AAAA LLLL */
@ -402,7 +400,8 @@ typedef enum
MESA_FORMAT_A_UNORM16, /* ushort[i] = A */
MESA_FORMAT_L_UNORM8, /* ubyte[i] = L */
MESA_FORMAT_L_UNORM16, /* ushort[i] = L */
MESA_FORMAT_LA_UNORM16, /* ushort[i * 2] = L, ushort[i*2+1] = A */
MESA_FORMAT_LA_UNORM8, /* ubyte[i * 2] = L, ubyte[*2+1] = A */
MESA_FORMAT_LA_UNORM16, /* ushort[i * 2] = L, ushort[i*2+1] = A */
MESA_FORMAT_I_UNORM8, /* ubyte[i] = I */
MESA_FORMAT_I_UNORM16, /* ushort[i] = I */
MESA_FORMAT_R_UNORM8, /* ubyte[i] = R */
@ -427,8 +426,6 @@ typedef enum
MESA_FORMAT_G16R16_SNORM, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */
MESA_FORMAT_R8G8_SNORM, /* GGGG GGGG RRRR RRRR */
MESA_FORMAT_G8R8_SNORM, /* RRRR RRRR GGGG GGGG */
MESA_FORMAT_L8A8_SNORM, /* AAAA AAAA LLLL LLLL */
MESA_FORMAT_A8L8_SNORM, /* LLLL LLLL AAAA AAAA */
/* Array signed/normalized formats */
MESA_FORMAT_A_SNORM8, /* byte[i] = A */
@ -439,6 +436,7 @@ typedef enum
MESA_FORMAT_I_SNORM16, /* short[i] = I */
MESA_FORMAT_R_SNORM8, /* byte[i] = R */
MESA_FORMAT_R_SNORM16, /* short[i] = R */
MESA_FORMAT_LA_SNORM8, /* byte[i * 2] = L, [i * 2 + 1] = A */
MESA_FORMAT_LA_SNORM16, /* short[i * 2] = L, [i * 2 + 1] = A */
MESA_FORMAT_RGB_SNORM16, /* short[i*3] = R, [i*3+1] = G, [i*3+2] = B */
MESA_FORMAT_RGBA_SNORM16, /* ... */
@ -453,12 +451,11 @@ typedef enum
MESA_FORMAT_R8G8B8A8_SRGB, /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
MESA_FORMAT_R8G8B8X8_SRGB, /* xxxx xxxx BBBB BBBB GGGG GGGG RRRR RRRR */
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 */
MESA_FORMAT_LA_SRGB8, /* ubyte[i*2] = L, [i*2+1] = A */
MESA_FORMAT_BGR_SRGB8, /* ubyte[i*3] = B, [i*3+1] = G, [i*3+2] = R */
/* Packed float formats */

View File

@ -200,8 +200,7 @@ _mesa_texstore_rg_rgtc2(TEXSTORE_PARAMS)
tempFormat = _mesa_little_endian() ? MESA_FORMAT_R8G8_UNORM
: MESA_FORMAT_G8R8_UNORM;
else
tempFormat = _mesa_little_endian() ? MESA_FORMAT_L8A8_UNORM
: MESA_FORMAT_A8L8_UNORM;
tempFormat = MESA_FORMAT_LA_UNORM8;
rgRowStride = 2 * srcWidth * sizeof(GLubyte);
tempImage = malloc(srcWidth * srcHeight * 2 * sizeof(GLubyte));

View File

@ -162,14 +162,14 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
case GL_ALPHA4:
case GL_ALPHA8:
RETURN_IF_SUPPORTED(MESA_FORMAT_A_UNORM8);
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case GL_ALPHA12:
case GL_ALPHA16:
RETURN_IF_SUPPORTED(MESA_FORMAT_A_UNORM16);
RETURN_IF_SUPPORTED(MESA_FORMAT_A_UNORM8);
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
/* Luminance formats */
@ -189,21 +189,21 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
/* Luminance/Alpha formats */
case GL_LUMINANCE4_ALPHA4:
RETURN_IF_SUPPORTED(MESA_FORMAT_L4A4_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case 2:
case GL_LUMINANCE_ALPHA:
case GL_LUMINANCE6_ALPHA2:
case GL_LUMINANCE8_ALPHA8:
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case GL_LUMINANCE12_ALPHA4:
case GL_LUMINANCE12_ALPHA12:
case GL_LUMINANCE16_ALPHA16:
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM16);
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case GL_INTENSITY:
@ -233,13 +233,13 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
case GL_COMPRESSED_ALPHA_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_A_UNORM8);
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case GL_COMPRESSED_LUMINANCE_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_L_UNORM8);
break;
case GL_COMPRESSED_LUMINANCE_ALPHA_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_UNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_UNORM8);
break;
case GL_COMPRESSED_INTENSITY_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_I_UNORM8);
@ -409,8 +409,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
break;
case GL_LUMINANCE_ALPHA_SNORM:
case GL_LUMINANCE8_ALPHA8_SNORM:
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_SNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8L8_SNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_SNORM8);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8B8G8R8_SNORM);
RETURN_IF_SUPPORTED(MESA_FORMAT_R8G8B8A8_SNORM);
break;
@ -488,8 +487,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
break;
case GL_SLUMINANCE_ALPHA_EXT:
case GL_SLUMINANCE8_ALPHA8_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8L8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_SRGB8);
RETURN_IF_SUPPORTED(MESA_FORMAT_B8G8R8A8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8R8G8B8_SRGB);
break;
@ -499,8 +497,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_A8R8G8B8_SRGB);
break;
case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_L8A8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8L8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_LA_SRGB8);
RETURN_IF_SUPPORTED(MESA_FORMAT_B8G8R8A8_SRGB);
RETURN_IF_SUPPORTED(MESA_FORMAT_A8R8G8B8_SRGB);
break;

View File

@ -6006,7 +6006,7 @@ _mesa_get_texbuffer_format(const struct gl_context *ctx, GLenum internalFormat)
case GL_LUMINANCE32UI_EXT:
return MESA_FORMAT_L_UINT32;
case GL_LUMINANCE8_ALPHA8:
return MESA_FORMAT_L8A8_UNORM;
return MESA_FORMAT_LA_UNORM8;
case GL_LUMINANCE16_ALPHA16:
return MESA_FORMAT_LA_UNORM16;
case GL_LUMINANCE_ALPHA16F_ARB:

View File

@ -105,10 +105,6 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
return PIPE_FORMAT_R10G10B10X2_UNORM;
case MESA_FORMAT_L4A4_UNORM:
return PIPE_FORMAT_L4A4_UNORM;
case MESA_FORMAT_L8A8_UNORM:
return PIPE_FORMAT_LA88_UNORM;
case MESA_FORMAT_A8L8_UNORM:
return PIPE_FORMAT_AL88_UNORM;
case MESA_FORMAT_A_UNORM8:
return PIPE_FORMAT_A8_UNORM;
case MESA_FORMAT_A_UNORM16:
@ -117,6 +113,8 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
return PIPE_FORMAT_L8_UNORM;
case MESA_FORMAT_L_UNORM16:
return PIPE_FORMAT_L16_UNORM;
case MESA_FORMAT_LA_UNORM8:
return PIPE_FORMAT_L8A8_UNORM;
case MESA_FORMAT_LA_UNORM16:
return PIPE_FORMAT_L16A16_UNORM;
case MESA_FORMAT_I_UNORM8:
@ -161,12 +159,10 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
return PIPE_FORMAT_DXT3_SRGBA;
case MESA_FORMAT_SRGBA_DXT5:
return PIPE_FORMAT_DXT5_SRGBA;
case MESA_FORMAT_L8A8_SRGB:
return PIPE_FORMAT_LA88_SRGB;
case MESA_FORMAT_A8L8_SRGB:
return PIPE_FORMAT_AL88_SRGB;
case MESA_FORMAT_L_SRGB8:
return PIPE_FORMAT_L8_SRGB;
case MESA_FORMAT_LA_SRGB8:
return PIPE_FORMAT_L8A8_SRGB;
case MESA_FORMAT_R_SRGB8:
return PIPE_FORMAT_R8_SRGB;
case MESA_FORMAT_BGR_SRGB8:
@ -383,10 +379,8 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
return PIPE_FORMAT_A8_SNORM;
case MESA_FORMAT_L_SNORM8:
return PIPE_FORMAT_L8_SNORM;
case MESA_FORMAT_L8A8_SNORM:
return PIPE_FORMAT_LA88_SNORM;
case MESA_FORMAT_A8L8_SNORM:
return PIPE_FORMAT_AL88_SNORM;
case MESA_FORMAT_LA_SNORM8:
return PIPE_FORMAT_L8A8_SNORM;
case MESA_FORMAT_I_SNORM8:
return PIPE_FORMAT_I8_SNORM;
@ -697,10 +691,8 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
return MESA_FORMAT_R10G10B10X2_UNORM;
case PIPE_FORMAT_L4A4_UNORM:
return MESA_FORMAT_L4A4_UNORM;
case PIPE_FORMAT_LA88_UNORM:
return MESA_FORMAT_L8A8_UNORM;
case PIPE_FORMAT_AL88_UNORM:
return MESA_FORMAT_A8L8_UNORM;
case PIPE_FORMAT_L8A8_UNORM:
return MESA_FORMAT_LA_UNORM8;
case PIPE_FORMAT_L16A16_UNORM:
return MESA_FORMAT_LA_UNORM16;
case PIPE_FORMAT_A8_UNORM:
@ -759,12 +751,10 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
return MESA_FORMAT_SRGBA_DXT3;
case PIPE_FORMAT_DXT5_SRGBA:
return MESA_FORMAT_SRGBA_DXT5;
case PIPE_FORMAT_LA88_SRGB:
return MESA_FORMAT_L8A8_SRGB;
case PIPE_FORMAT_AL88_SRGB:
return MESA_FORMAT_A8L8_SRGB;
case PIPE_FORMAT_L8_SRGB:
return MESA_FORMAT_L_SRGB8;
case PIPE_FORMAT_L8A8_SRGB:
return MESA_FORMAT_LA_SRGB8;
case PIPE_FORMAT_R8_SRGB:
return MESA_FORMAT_R_SRGB8;
case PIPE_FORMAT_R8G8B8_SRGB:
@ -976,10 +966,8 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
return MESA_FORMAT_A_SNORM8;
case PIPE_FORMAT_L8_SNORM:
return MESA_FORMAT_L_SNORM8;
case PIPE_FORMAT_LA88_SNORM:
return MESA_FORMAT_L8A8_SNORM;
case PIPE_FORMAT_AL88_SNORM:
return MESA_FORMAT_A8L8_SNORM;
case PIPE_FORMAT_L8A8_SNORM:
return MESA_FORMAT_LA_SNORM8;
case PIPE_FORMAT_I8_SNORM:
return MESA_FORMAT_I_SNORM8;

View File

@ -141,8 +141,6 @@ texfetch_funcs[] =
FETCH_FUNCS(A1B5G5R5_UNORM),
FETCH_FUNCS(B5G5R5A1_UNORM),
FETCH_FUNCS(A1R5G5B5_UNORM),
FETCH_FUNCS(L8A8_UNORM),
FETCH_FUNCS(A8L8_UNORM),
FETCH_FUNCS(R8G8_UNORM),
FETCH_FUNCS(G8R8_UNORM),
FETCH_FUNCS(L4A4_UNORM),
@ -173,6 +171,7 @@ texfetch_funcs[] =
FETCH_FUNCS(A_UNORM16),
FETCH_FUNCS(L_UNORM8),
FETCH_FUNCS(L_UNORM16),
FETCH_FUNCS(LA_UNORM8),
FETCH_FUNCS(LA_UNORM16),
FETCH_FUNCS(I_UNORM8),
FETCH_FUNCS(I_UNORM16),
@ -191,19 +190,18 @@ texfetch_funcs[] =
FETCH_FUNCS(R8G8B8A8_SNORM),
FETCH_FUNCS(R16G16_SNORM),
FETCH_FUNCS(R8G8_SNORM),
FETCH_FUNCS(L8A8_SNORM),
FETCH_FUNCS(A8L8_SNORM),
/* Array signed/normalized formats */
FETCH_FUNCS(A_SNORM8),
FETCH_FUNCS(A_SNORM16),
FETCH_FUNCS(L_SNORM8),
FETCH_FUNCS(L_SNORM16),
FETCH_FUNCS(LA_SNORM8),
FETCH_FUNCS(LA_SNORM16),
FETCH_FUNCS(I_SNORM8),
FETCH_FUNCS(I_SNORM16),
FETCH_FUNCS(R_SNORM8),
FETCH_FUNCS(R_SNORM16),
FETCH_FUNCS(LA_SNORM16),
FETCH_FUNCS(RGB_SNORM16),
FETCH_FUNCS(RGBA_SNORM16),
@ -214,12 +212,11 @@ texfetch_funcs[] =
FETCH_FUNCS(R8G8B8A8_SRGB),
FETCH_FUNCS(R8G8B8X8_SRGB),
FETCH_FUNCS(X8B8G8R8_SRGB),
FETCH_FUNCS(L8A8_SRGB),
FETCH_FUNCS(A8L8_SRGB),
/* Array sRGB formats */
FETCH_FUNCS(R_SRGB8),
FETCH_FUNCS(L_SRGB8),
FETCH_FUNCS(LA_SRGB8),
FETCH_FUNCS(BGR_SRGB8),
/* Packed float formats */

View File

@ -131,10 +131,9 @@ FETCH_RGBA(R10G10B10A2_UNORM, GLuint, 1)
FETCH_RGBA(R8G8_UNORM, GLushort, 1)
FETCH_RGBA(G8R8_UNORM, GLushort, 1)
FETCH_RGBA(L4A4_UNORM, GLubyte, 1)
FETCH_RGBA(L8A8_UNORM, GLushort, 1)
FETCH_RGBA(R_UNORM8, GLubyte, 1)
FETCH_RGBA(R_UNORM16, GLushort, 1)
FETCH_RGBA(A8L8_UNORM, GLushort, 1)
FETCH_RGBA(LA_UNORM8, GLubyte, 2)
FETCH_RGBA(R16G16_UNORM, GLuint, 1)
FETCH_RGBA(G16R16_UNORM, GLuint, 1)
FETCH_RGBA(B2G3R3_UNORM, GLubyte, 1)
@ -154,8 +153,7 @@ FETCH_RGBA(R8G8B8X8_SRGB, GLuint, 1)
FETCH_RGBA(X8B8G8R8_SRGB, GLuint, 1)
FETCH_RGBA(R_SRGB8, GLubyte, 1)
FETCH_RGBA(L_SRGB8, GLubyte, 1)
FETCH_RGBA(L8A8_SRGB, GLushort, 1)
FETCH_RGBA(A8L8_SRGB, GLushort, 2)
FETCH_RGBA(LA_SRGB8, GLubyte, 2)
FETCH_RGBA(RGBA_SINT8, GLbyte, 4)
FETCH_RGBA(RGBA_SINT16, GLshort, 4)
FETCH_RGBA(RGBA_SINT32, GLint, 4)
@ -167,8 +165,7 @@ FETCH_RGBA(A_SNORM8, GLbyte, 1)
FETCH_RGBA(L_SNORM8, GLbyte, 1)
FETCH_RGBA(I_SNORM8, GLbyte, 1)
FETCH_RGBA(R8G8_SNORM, GLshort, 1)
FETCH_RGBA(L8A8_SNORM, GLshort, 1)
FETCH_RGBA(A8L8_SNORM, GLshort, 1)
FETCH_RGBA(LA_SNORM8, GLbyte, 2)
FETCH_RGBA(X8B8G8R8_SNORM, GLint, 1)
FETCH_RGBA(A8B8G8R8_SNORM, GLint, 1)
FETCH_RGBA(R8G8B8A8_SNORM, GLint, 1)