ilo: add some missing formats

Map more pipe formats to hardware formats.  Enable more VB formats on Haswell.
This commit is contained in:
Chia-I Wu 2014-07-16 13:51:49 +08:00
parent 69cd3ebd6f
commit 1661f7559b
1 changed files with 22 additions and 21 deletions

View File

@ -78,7 +78,7 @@ static const struct ilo_format_info ilo_format_table[] = {
FI_ENTRY( 1, 5, X, X, X, X, X, X, X, R32G32B32X32_FLOAT),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32B32A32_SSCALED),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32B32A32_USCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R32G32B32A32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R32G32B32A32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R64G64_PASSTHRU),
FI_ENTRY( 1, 5, X, X, X, X, 1, 1, X, R32G32B32_FLOAT),
FI_ENTRY( 1, X, X, X, X, X, 1, 1, X, R32G32B32_SINT),
@ -87,7 +87,7 @@ static const struct ilo_format_info ilo_format_table[] = {
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32B32_SNORM),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32B32_SSCALED),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32B32_USCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R32G32B32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R32G32B32_SFIXED),
FI_ENTRY( 1, 1, X, X, 1, 4.5, 1, X, 6, R16G16B16A16_UNORM),
FI_ENTRY( 1, 1, X, X, 1, 6, 1, X, X, R16G16B16A16_SNORM),
FI_ENTRY( 1, X, X, X, 1, X, 1, X, X, R16G16B16A16_SINT),
@ -111,7 +111,7 @@ static const struct ilo_format_info ilo_format_table[] = {
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R16G16B16A16_USCALED),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32_SSCALED),
FI_ENTRY( X, X, X, X, X, X, 1, X, X, R32G32_USCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R32G32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R32G32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R64_PASSTHRU),
FI_ENTRY( 1, 1, X, 1, 1, 1, 1, X, 6, B8G8R8A8_UNORM),
FI_ENTRY( 1, 1, X, X, 1, 1, X, X, X, B8G8R8A8_UNORM_SRGB),
@ -129,7 +129,7 @@ static const struct ilo_format_info ilo_format_table[] = {
FI_ENTRY( 1, X, X, X, 1, X, 1, X, X, R16G16_SINT),
FI_ENTRY( 1, X, X, X, 1, X, 1, X, X, R16G16_UINT),
FI_ENTRY( 1, 1, X, X, 1, 1, 1, X, X, R16G16_FLOAT),
FI_ENTRY( 1, 1, X, X, 1, 1, X, X, 6, B10G10R10A2_UNORM),
FI_ENTRY( 1, 1, X, X, 1, 1, 7.5, X, 6, B10G10R10A2_UNORM),
FI_ENTRY( 1, 1, X, X, 1, 1, X, X, 6, B10G10R10A2_UNORM_SRGB),
FI_ENTRY( 1, 1, X, X, 1, 1, 1, X, X, R11G11B10_FLOAT),
FI_ENTRY( 1, X, X, X, 1, X, 1, 1, X, R32_SINT),
@ -269,26 +269,26 @@ static const struct ilo_format_info ilo_format_table[] = {
FI_ENTRY( X, X, X, X, X, X, X, X, X, EAC_SIGNED_R11),
FI_ENTRY( X, X, X, X, X, X, X, X, X, EAC_SIGNED_RG11),
FI_ENTRY( X, X, X, X, X, X, X, X, X, ETC2_SRGB8),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R16G16B16_UINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R16G16B16_SINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R10G10B10A2_SNORM),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R10G10B10A2_USCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R10G10B10A2_SSCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R10G10B10A2_SINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, B10G10R10A2_SNORM),
FI_ENTRY( X, X, X, X, X, X, X, X, X, B10G10R10A2_USCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, B10G10R10A2_SSCALED),
FI_ENTRY( X, X, X, X, X, X, X, X, X, B10G10R10A2_UINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, B10G10R10A2_SINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R16G16B16_UINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R16G16B16_SINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R32_SFIXED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R10G10B10A2_SNORM),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R10G10B10A2_USCALED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R10G10B10A2_SSCALED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R10G10B10A2_SINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, B10G10R10A2_SNORM),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, B10G10R10A2_USCALED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, B10G10R10A2_SSCALED),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, B10G10R10A2_UINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, B10G10R10A2_SINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R64G64B64A64_PASSTHRU),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R64G64B64_PASSTHRU),
FI_ENTRY( X, X, X, X, X, X, X, X, X, ETC2_RGB8_PTA),
FI_ENTRY( X, X, X, X, X, X, X, X, X, ETC2_SRGB8_PTA),
FI_ENTRY( X, X, X, X, X, X, X, X, X, ETC2_EAC_RGBA8),
FI_ENTRY( X, X, X, X, X, X, X, X, X, ETC2_EAC_SRGB8_A8),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R8G8B8_UINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, R8G8B8_SINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R8G8B8_UINT),
FI_ENTRY( X, X, X, X, X, X, 7.5, X, X, R8G8B8_SINT),
FI_ENTRY( X, X, X, X, X, X, X, X, X, RAW),
};
@ -409,10 +409,10 @@ ilo_translate_color_format(enum pipe_format format)
[PIPE_FORMAT_A8B8G8R8_SRGB] = 0,
[PIPE_FORMAT_X8B8G8R8_SRGB] = 0,
[PIPE_FORMAT_B8G8R8A8_SRGB] = GEN6_FORMAT_B8G8R8A8_UNORM_SRGB,
[PIPE_FORMAT_B8G8R8X8_SRGB] = 0,
[PIPE_FORMAT_B8G8R8X8_SRGB] = GEN6_FORMAT_B8G8R8X8_UNORM_SRGB,
[PIPE_FORMAT_A8R8G8B8_SRGB] = 0,
[PIPE_FORMAT_X8R8G8B8_SRGB] = 0,
[PIPE_FORMAT_R8G8B8A8_SRGB] = 0,
[PIPE_FORMAT_R8G8B8A8_SRGB] = GEN6_FORMAT_R8G8B8A8_UNORM_SRGB,
[PIPE_FORMAT_DXT1_RGB] = GEN6_FORMAT_DXT1_RGB,
[PIPE_FORMAT_DXT1_RGBA] = GEN6_FORMAT_BC1_UNORM,
[PIPE_FORMAT_DXT3_RGBA] = GEN6_FORMAT_BC2_UNORM,
@ -435,7 +435,7 @@ ilo_translate_color_format(enum pipe_format format)
[PIPE_FORMAT_R11G11B10_FLOAT] = GEN6_FORMAT_R11G11B10_FLOAT,
[PIPE_FORMAT_R9G9B9E5_FLOAT] = GEN6_FORMAT_R9G9B9E5_SHAREDEXP,
[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = 0,
[PIPE_FORMAT_R1_UNORM] = 0,
[PIPE_FORMAT_R1_UNORM] = GEN6_FORMAT_R1_UNORM,
[PIPE_FORMAT_R10G10B10X2_USCALED] = GEN6_FORMAT_R10G10B10X2_USCALED,
[PIPE_FORMAT_R10G10B10X2_SNORM] = 0,
[PIPE_FORMAT_L4A4_UNORM] = 0,
@ -562,6 +562,7 @@ ilo_translate_color_format(enum pipe_format format)
[PIPE_FORMAT_R32A32_UINT] = 0,
[PIPE_FORMAT_R32A32_SINT] = 0,
[PIPE_FORMAT_R10G10B10A2_UINT] = GEN6_FORMAT_R10G10B10A2_UINT,
[PIPE_FORMAT_B5G6R5_SRGB] = GEN6_FORMAT_B5G6R5_UNORM_SRGB,
};
int sfmt = format_mapping[format];