freedreno: fix spelling
[mesa.git] / src / gallium / drivers / freedreno / a3xx / fd3_format.c
index 676084bb63fee2c2f4de29d2e1c6b1b238e1995d..03f8d042dcab98fd19177c1329596dc45aca740a 100644 (file)
@@ -84,15 +84,29 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        _T(L8_UNORM,   8_UNORM, R8_UNORM, WZYX),
        _T(I8_UNORM,   8_UNORM, NONE,     WZYX),
 
+       _T(A8_UINT,    8_UINT,  NONE,     WZYX),
+       _T(A8_SINT,    8_SINT,  NONE,     WZYX),
+       _T(L8_UINT,    8_UINT,  NONE,     WZYX),
+       _T(L8_SINT,    8_SINT,  NONE,     WZYX),
+       _T(I8_UINT,    8_UINT,  NONE,     WZYX),
+       _T(I8_SINT,    8_SINT,  NONE,     WZYX),
+
        /* 16-bit */
-       V_(R16_UNORM,   16_UNORM, NONE,     WZYX),
-       V_(R16_SNORM,   16_SNORM, NONE,     WZYX),
+       VT(R16_UNORM,   16_UNORM, NONE,     WZYX),
+       VT(R16_SNORM,   16_SNORM, NONE,     WZYX),
        VT(R16_UINT,    16_UINT,  R16_UINT, WZYX),
        VT(R16_SINT,    16_SINT,  R16_SINT, WZYX),
        V_(R16_USCALED, 16_UINT,  NONE,     WZYX),
        V_(R16_SSCALED, 16_UINT,  NONE,     WZYX),
        VT(R16_FLOAT,   16_FLOAT, NONE,     WZYX),
 
+       _T(A16_UINT,    16_UINT,  NONE,     WZYX),
+       _T(A16_SINT,    16_SINT,  NONE,     WZYX),
+       _T(L16_UINT,    16_UINT,  NONE,     WZYX),
+       _T(L16_SINT,    16_SINT,  NONE,     WZYX),
+       _T(I16_UINT,    16_UINT,  NONE,     WZYX),
+       _T(I16_SINT,    16_SINT,  NONE,     WZYX),
+
        VT(R8G8_UNORM,   8_8_UNORM, R8G8_UNORM, WZYX),
        VT(R8G8_SNORM,   8_8_SNORM, R8G8_SNORM, WZYX),
        VT(R8G8_UINT,    8_8_UINT,  NONE,       WZYX),
@@ -100,8 +114,11 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        V_(R8G8_USCALED, 8_8_UINT,  NONE,       WZYX),
        V_(R8G8_SSCALED, 8_8_SINT,  NONE,       WZYX),
 
+       _T(L8A8_UINT,    8_8_UINT,  NONE,       WZYX),
+       _T(L8A8_SINT,    8_8_SINT,  NONE,       WZYX),
+
        _T(Z16_UNORM,      Z16_UNORM,     R8G8_UNORM,     WZYX),
-       /*_T(B5G6R5_UNORM,   5_6_5_UNORM,   R5G6B5_UNORM,   WXYZ),*/
+       _T(B5G6R5_UNORM,   5_6_5_UNORM,   R5G6B5_UNORM,   WXYZ),
        _T(B5G5R5A1_UNORM, 5_5_5_1_UNORM, R5G5B5A1_UNORM, WXYZ),
        _T(B5G5R5X1_UNORM, 5_5_5_1_UNORM, R5G5B5A1_UNORM, WXYZ),
        _T(B4G4R4A4_UNORM, 4_4_4_4_UNORM, R4G4B4A4_UNORM, WXYZ),
@@ -122,18 +139,28 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        VT(R32_FLOAT,   32_FLOAT, NONE,     WZYX),
        V_(R32_FIXED,   32_FIXED, NONE,     WZYX),
 
-       V_(R16G16_UNORM,   16_16_UNORM, NONE,        WZYX),
-       V_(R16G16_SNORM,   16_16_SNORM, NONE,        WZYX),
+       _T(A32_UINT,    32_UINT,  NONE,     WZYX),
+       _T(A32_SINT,    32_SINT,  NONE,     WZYX),
+       _T(L32_UINT,    32_UINT,  NONE,     WZYX),
+       _T(L32_SINT,    32_SINT,  NONE,     WZYX),
+       _T(I32_UINT,    32_UINT,  NONE,     WZYX),
+       _T(I32_SINT,    32_SINT,  NONE,     WZYX),
+
+       VT(R16G16_UNORM,   16_16_UNORM, NONE,        WZYX),
+       VT(R16G16_SNORM,   16_16_SNORM, NONE,        WZYX),
        VT(R16G16_UINT,    16_16_UINT,  R16G16_UINT, WZYX),
        VT(R16G16_SINT,    16_16_SINT,  R16G16_SINT, WZYX),
        V_(R16G16_USCALED, 16_16_UINT,  NONE,        WZYX),
        V_(R16G16_SSCALED, 16_16_SINT,  NONE,        WZYX),
        VT(R16G16_FLOAT,   16_16_FLOAT, NONE,        WZYX),
 
+       _T(L16A16_UINT,    16_16_UINT,  NONE,        WZYX),
+       _T(L16A16_SINT,    16_16_SINT,  NONE,        WZYX),
+
        VT(R8G8B8A8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
        _T(R8G8B8X8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
-       _T(R8G8B8A8_SRGB,    8_8_8_8_UNORM, NONE,           WZYX),
-       _T(R8G8B8X8_SRGB,    8_8_8_8_UNORM, NONE,           WZYX),
+       _T(R8G8B8A8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
+       _T(R8G8B8X8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
        VT(R8G8B8A8_SNORM,   8_8_8_8_SNORM, R8G8B8A8_SNORM, WZYX),
        VT(R8G8B8A8_UINT,    8_8_8_8_UINT,  R8G8B8A8_UINT,  WZYX),
        VT(R8G8B8A8_SINT,    8_8_8_8_SINT,  R8G8B8A8_SINT,  WZYX),
@@ -142,20 +169,22 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
 
        VT(B8G8R8A8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WXYZ),
        _T(B8G8R8X8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, WXYZ),
-       VT(B8G8R8A8_SRGB,    8_8_8_8_UNORM, NONE,           WXYZ),
-       _T(B8G8R8X8_SRGB,    8_8_8_8_UNORM, NONE,           WXYZ),
+       VT(B8G8R8A8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, WXYZ),
+       _T(B8G8R8X8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, WXYZ),
 
        VT(A8B8G8R8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, XYZW),
        _T(X8B8G8R8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, XYZW),
-       _T(A8B8G8R8_SRGB,    8_8_8_8_UNORM, NONE,           XYZW),
-       _T(X8B8G8R8_SRGB,    8_8_8_8_UNORM, NONE,           XYZW),
+       _T(A8B8G8R8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, XYZW),
+       _T(X8B8G8R8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, XYZW),
 
        VT(A8R8G8B8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, ZYXW),
        _T(X8R8G8B8_UNORM,   8_8_8_8_UNORM, R8G8B8A8_UNORM, ZYXW),
-       _T(A8R8G8B8_SRGB,    8_8_8_8_UNORM, NONE,           ZYXW),
-       _T(X8R8G8B8_SRGB,    8_8_8_8_UNORM, NONE,           ZYXW),
+       _T(A8R8G8B8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, ZYXW),
+       _T(X8R8G8B8_SRGB,    8_8_8_8_UNORM, R8G8B8A8_UNORM, ZYXW),
 
-       V_(R10G10B10A2_UNORM,   10_10_10_2_UNORM, NONE/*R10G10B10A2_UNORM*/, WZYX),
+       VT(R10G10B10A2_UNORM,   10_10_10_2_UNORM, R10G10B10A2_UNORM, WZYX),
+       VT(B10G10R10A2_UNORM,   10_10_10_2_UNORM, R10G10B10A2_UNORM, WXYZ),
+       _T(B10G10R10X2_UNORM,   10_10_10_2_UNORM, R10G10B10A2_UNORM, WXYZ),
        V_(R10G10B10A2_SNORM,   10_10_10_2_SNORM, NONE,              WZYX),
        V_(R10G10B10A2_UINT,    10_10_10_2_UINT,  NONE,              WZYX),
        V_(R10G10B10A2_USCALED, 10_10_10_2_UINT,  NONE,              WZYX),
@@ -178,8 +207,8 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        V_(R16G16B16_FLOAT,   16_16_16_FLOAT, NONE, WZYX),
 
        /* 64-bit */
-       V_(R16G16B16A16_UNORM,   16_16_16_16_UNORM, NONE,               WZYX),
-       V_(R16G16B16A16_SNORM,   16_16_16_16_SNORM, NONE,               WZYX),
+       VT(R16G16B16A16_UNORM,   16_16_16_16_UNORM, NONE,               WZYX),
+       VT(R16G16B16A16_SNORM,   16_16_16_16_SNORM, NONE,               WZYX),
        VT(R16G16B16A16_UINT,    16_16_16_16_UINT,  R16G16B16A16_UINT,  WZYX),
        _T(R16G16B16X16_UINT,    16_16_16_16_UINT,  R16G16B16A16_UINT,  WZYX),
        VT(R16G16B16A16_SINT,    16_16_16_16_SINT,  R16G16B16A16_SINT,  WZYX),
@@ -196,6 +225,9 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        VT(R32G32_FLOAT,   32_32_FLOAT, NONE,        WZYX),
        V_(R32G32_FIXED,   32_32_FIXED, NONE,        WZYX),
 
+       _T(L32A32_UINT,    32_32_UINT,  NONE,        WZYX),
+       _T(L32A32_SINT,    32_32_SINT,  NONE,        WZYX),
+
        /* 96-bit */
        V_(R32G32B32_UINT,    32_32_32_UINT,  NONE, WZYX),
        V_(R32G32B32_SINT,    32_32_32_SINT,  NONE, WZYX),
@@ -214,6 +246,19 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = {
        VT(R32G32B32A32_FLOAT,   32_32_32_32_FLOAT, R32G32B32A32_FLOAT, WZYX),
        _T(R32G32B32X32_FLOAT,   32_32_32_32_FLOAT, R32G32B32A32_FLOAT, WZYX),
        V_(R32G32B32A32_FIXED,   32_32_32_32_FIXED, NONE,               WZYX),
+
+       /* compressed */
+       _T(ETC1_RGB8, ETC1, NONE, WZYX),
+       _T(ETC2_RGB8, ETC2_RGB8, NONE, WZYX),
+       _T(ETC2_SRGB8, ETC2_RGB8, NONE, WZYX),
+       _T(ETC2_RGB8A1, ETC2_RGB8A1, NONE, WZYX),
+       _T(ETC2_SRGB8A1, ETC2_RGB8A1, NONE, WZYX),
+       _T(ETC2_RGBA8, ETC2_RGBA8, NONE, WZYX),
+       _T(ETC2_SRGBA8, ETC2_RGBA8, NONE, WZYX),
+       _T(ETC2_R11_UNORM, ETC2_R11_UNORM, NONE, WZYX),
+       _T(ETC2_R11_SNORM, ETC2_R11_SNORM, NONE, WZYX),
+       _T(ETC2_RG11_UNORM, ETC2_RG11_UNORM, NONE, WZYX),
+       _T(ETC2_RG11_SNORM, ETC2_RG11_SNORM, NONE, WZYX),
 };
 
 enum a3xx_vtx_fmt
@@ -237,9 +282,6 @@ fd3_pipe2color(enum pipe_format format)
 {
        if (!formats[format].present)
                return ~0;
-       /* Integer formats don't render properly yet */
-       if (util_format_is_pure_integer(format))
-               return ~0;
        return formats[format].rb;
 }
 
@@ -287,6 +329,19 @@ fd3_gmem_restore_format(enum pipe_format format)
        }
 }
 
+enum a3xx_color_fmt
+fd3_fs_output_format(enum pipe_format format)
+{
+       if (util_format_is_srgb(format))
+               return RB_R16G16B16A16_FLOAT;
+       switch (format) {
+       case PIPE_FORMAT_R11G11B10_FLOAT:
+               return RB_R16G16B16A16_FLOAT;
+       default:
+               return fd3_pipe2color(format);
+       }
+}
+
 static inline enum a3xx_tex_swiz
 tex_swiz(unsigned swiz)
 {