ilo: add some missing formats
authorChia-I Wu <olvaffe@gmail.com>
Wed, 16 Jul 2014 05:51:49 +0000 (13:51 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Wed, 16 Jul 2014 06:31:59 +0000 (14:31 +0800)
Map more pipe formats to hardware formats.  Enable more VB formats on Haswell.

src/gallium/drivers/ilo/ilo_format.c

index 4f3c07c67b8d55d673c20402fca6be67895eb54c..953be8d802c404c5cdab27b526fad55915cdb878 100644 (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];