mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 20:10:17 +01:00
st/mesa: Fix handling of LA and RG formats for big-endian
MESA_FORMAT_LnAn puts the luminance in the least significant part of the containing integer, which is equivalent to PIPE_FORMAT_LAnn. PIPE_FORMAT_LnAn puts the luminance first in memory. This patch fixes up the mesa<->gallium mapping accordingly. Signed-off-by: Richard Sandiford <rsandifo@linux.vnet.ibm.com> Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
be6ef203aa
commit
ccdbcd9586
1 changed files with 48 additions and 16 deletions
|
|
@ -88,9 +88,13 @@ st_mesa_format_to_pipe_format(struct st_context *st, mesa_format mesaFormat)
|
|||
case MESA_FORMAT_L4A4_UNORM:
|
||||
return PIPE_FORMAT_L4A4_UNORM;
|
||||
case MESA_FORMAT_L8A8_UNORM:
|
||||
return PIPE_FORMAT_L8A8_UNORM;
|
||||
return PIPE_FORMAT_LA88_UNORM;
|
||||
case MESA_FORMAT_A8L8_UNORM:
|
||||
return PIPE_FORMAT_AL88_UNORM;
|
||||
case MESA_FORMAT_L16A16_UNORM:
|
||||
return PIPE_FORMAT_L16A16_UNORM;
|
||||
return PIPE_FORMAT_LA1616_UNORM;
|
||||
case MESA_FORMAT_A16L16_UNORM:
|
||||
return PIPE_FORMAT_AL1616_UNORM;
|
||||
case MESA_FORMAT_A_UNORM8:
|
||||
return PIPE_FORMAT_A8_UNORM;
|
||||
case MESA_FORMAT_A_UNORM16:
|
||||
|
|
@ -142,7 +146,9 @@ st_mesa_format_to_pipe_format(struct st_context *st, mesa_format mesaFormat)
|
|||
case MESA_FORMAT_SRGBA_DXT5:
|
||||
return PIPE_FORMAT_DXT5_SRGBA;
|
||||
case MESA_FORMAT_L8A8_SRGB:
|
||||
return PIPE_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_BGR_SRGB8:
|
||||
|
|
@ -191,9 +197,13 @@ st_mesa_format_to_pipe_format(struct st_context *st, mesa_format mesaFormat)
|
|||
case MESA_FORMAT_R_UNORM16:
|
||||
return PIPE_FORMAT_R16_UNORM;
|
||||
case MESA_FORMAT_R8G8_UNORM:
|
||||
return PIPE_FORMAT_R8G8_UNORM;
|
||||
return PIPE_FORMAT_RG88_UNORM;
|
||||
case MESA_FORMAT_G8R8_UNORM:
|
||||
return PIPE_FORMAT_GR88_UNORM;
|
||||
case MESA_FORMAT_R16G16_UNORM:
|
||||
return PIPE_FORMAT_R16G16_UNORM;
|
||||
return PIPE_FORMAT_RG1616_UNORM;
|
||||
case MESA_FORMAT_G16R16_UNORM:
|
||||
return PIPE_FORMAT_GR1616_UNORM;
|
||||
case MESA_FORMAT_RGBA_UNORM16:
|
||||
return PIPE_FORMAT_R16G16B16A16_UNORM;
|
||||
|
||||
|
|
@ -341,7 +351,9 @@ st_mesa_format_to_pipe_format(struct st_context *st, mesa_format mesaFormat)
|
|||
case MESA_FORMAT_R_SNORM8:
|
||||
return PIPE_FORMAT_R8_SNORM;
|
||||
case MESA_FORMAT_R8G8_SNORM:
|
||||
return PIPE_FORMAT_R8G8_SNORM;
|
||||
return PIPE_FORMAT_RG88_SNORM;
|
||||
case MESA_FORMAT_G8R8_SNORM:
|
||||
return PIPE_FORMAT_GR88_SNORM;
|
||||
case MESA_FORMAT_R8G8B8A8_SNORM:
|
||||
return PIPE_FORMAT_R8G8B8A8_SNORM;
|
||||
|
||||
|
|
@ -350,14 +362,18 @@ st_mesa_format_to_pipe_format(struct st_context *st, mesa_format mesaFormat)
|
|||
case MESA_FORMAT_L_SNORM8:
|
||||
return PIPE_FORMAT_L8_SNORM;
|
||||
case MESA_FORMAT_L8A8_SNORM:
|
||||
return PIPE_FORMAT_L8A8_SNORM;
|
||||
return PIPE_FORMAT_LA88_SNORM;
|
||||
case MESA_FORMAT_A8L8_SNORM:
|
||||
return PIPE_FORMAT_AL88_SNORM;
|
||||
case MESA_FORMAT_I_SNORM8:
|
||||
return PIPE_FORMAT_I8_SNORM;
|
||||
|
||||
case MESA_FORMAT_R_SNORM16:
|
||||
return PIPE_FORMAT_R16_SNORM;
|
||||
case MESA_FORMAT_R16G16_SNORM:
|
||||
return PIPE_FORMAT_R16G16_SNORM;
|
||||
return PIPE_FORMAT_RG1616_SNORM;
|
||||
case MESA_FORMAT_G16R16_SNORM:
|
||||
return PIPE_FORMAT_GR1616_SNORM;
|
||||
case MESA_FORMAT_RGBA_SNORM16:
|
||||
return PIPE_FORMAT_R16G16B16A16_SNORM;
|
||||
|
||||
|
|
@ -476,10 +492,14 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
|||
return MESA_FORMAT_R10G10B10A2_UNORM;
|
||||
case PIPE_FORMAT_L4A4_UNORM:
|
||||
return MESA_FORMAT_L4A4_UNORM;
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_LA88_UNORM:
|
||||
return MESA_FORMAT_L8A8_UNORM;
|
||||
case PIPE_FORMAT_L16A16_UNORM:
|
||||
case PIPE_FORMAT_AL88_UNORM:
|
||||
return MESA_FORMAT_A8L8_UNORM;
|
||||
case PIPE_FORMAT_LA1616_UNORM:
|
||||
return MESA_FORMAT_L16A16_UNORM;
|
||||
case PIPE_FORMAT_AL1616_UNORM:
|
||||
return MESA_FORMAT_A16L16_UNORM;
|
||||
case PIPE_FORMAT_A8_UNORM:
|
||||
return MESA_FORMAT_A_UNORM8;
|
||||
case PIPE_FORMAT_A16_UNORM:
|
||||
|
|
@ -536,8 +556,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_L8A8_SRGB:
|
||||
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_R8G8B8_SRGB:
|
||||
|
|
@ -583,10 +605,14 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
|||
return MESA_FORMAT_R_UNORM8;
|
||||
case PIPE_FORMAT_R16_UNORM:
|
||||
return MESA_FORMAT_R_UNORM16;
|
||||
case PIPE_FORMAT_R8G8_UNORM:
|
||||
case PIPE_FORMAT_RG88_UNORM:
|
||||
return MESA_FORMAT_R8G8_UNORM;
|
||||
case PIPE_FORMAT_R16G16_UNORM:
|
||||
case PIPE_FORMAT_GR88_UNORM:
|
||||
return MESA_FORMAT_G8R8_UNORM;
|
||||
case PIPE_FORMAT_RG1616_UNORM:
|
||||
return MESA_FORMAT_R16G16_UNORM;
|
||||
case PIPE_FORMAT_GR1616_UNORM:
|
||||
return MESA_FORMAT_G16R16_UNORM;
|
||||
|
||||
case PIPE_FORMAT_A8_UINT:
|
||||
return MESA_FORMAT_A_UINT8;
|
||||
|
|
@ -728,8 +754,10 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
|||
/* signed normalized formats */
|
||||
case PIPE_FORMAT_R8_SNORM:
|
||||
return MESA_FORMAT_R_SNORM8;
|
||||
case PIPE_FORMAT_R8G8_SNORM:
|
||||
case PIPE_FORMAT_RG88_SNORM:
|
||||
return MESA_FORMAT_R8G8_SNORM;
|
||||
case PIPE_FORMAT_GR88_SNORM:
|
||||
return MESA_FORMAT_G8R8_SNORM;
|
||||
case PIPE_FORMAT_R8G8B8A8_SNORM:
|
||||
return MESA_FORMAT_R8G8B8A8_SNORM;
|
||||
|
||||
|
|
@ -737,15 +765,19 @@ 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_L8A8_SNORM:
|
||||
case PIPE_FORMAT_LA88_SNORM:
|
||||
return MESA_FORMAT_L8A8_SNORM;
|
||||
case PIPE_FORMAT_AL88_SNORM:
|
||||
return MESA_FORMAT_A8L8_SNORM;
|
||||
case PIPE_FORMAT_I8_SNORM:
|
||||
return MESA_FORMAT_I_SNORM8;
|
||||
|
||||
case PIPE_FORMAT_R16_SNORM:
|
||||
return MESA_FORMAT_R_SNORM16;
|
||||
case PIPE_FORMAT_R16G16_SNORM:
|
||||
case PIPE_FORMAT_RG1616_SNORM:
|
||||
return MESA_FORMAT_R16G16_SNORM;
|
||||
case PIPE_FORMAT_GR1616_SNORM:
|
||||
return MESA_FORMAT_G16R16_SNORM;
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
return MESA_FORMAT_RGBA_SNORM16;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue