/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */

/**************************************************************************
 *
 * Copyright 2010 VMware, Inc.
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sub license, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice (including the
 * next paragraph) shall be included in all copies or substantial portions
 * of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 **************************************************************************/

#include "pipe/p_compiler.h"
#include "u_format.h"
#include "u_half.h"
#include "u_math.h"

const struct util_format_description
util_format_none_description = {
   PIPE_FORMAT_NONE,
   "PIPE_FORMAT_NONE",
   "none",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b8g8r8a8_unorm_description = {
   PIPE_FORMAT_B8G8R8A8_UNORM,
   "PIPE_FORMAT_B8G8R8A8_UNORM",
   "b8g8r8a8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b8g8r8x8_unorm_description = {
   PIPE_FORMAT_B8G8R8X8_UNORM,
   "PIPE_FORMAT_B8G8R8X8_UNORM",
   "b8g8r8x8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8r8g8b8_unorm_description = {
   PIPE_FORMAT_A8R8G8B8_UNORM,
   "PIPE_FORMAT_A8R8G8B8_UNORM",
   "a8r8g8b8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = b */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_x8r8g8b8_unorm_description = {
   PIPE_FORMAT_X8R8G8B8_UNORM,
   "PIPE_FORMAT_X8R8G8B8_UNORM",
   "x8r8g8b8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = b */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8b8g8r8_unorm_description = {
   PIPE_FORMAT_A8B8G8R8_UNORM,
   "PIPE_FORMAT_A8B8G8R8_UNORM",
   "a8b8g8r8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_x8b8g8r8_unorm_description = {
   PIPE_FORMAT_X8B8G8R8_UNORM,
   "PIPE_FORMAT_X8B8G8R8_UNORM",
   "x8b8g8r8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8x8_unorm_description = {
   PIPE_FORMAT_R8G8B8X8_UNORM,
   "PIPE_FORMAT_R8G8B8X8_UNORM",
   "r8g8b8x8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b5g5r5x1_unorm_description = {
   PIPE_FORMAT_B5G5R5X1_UNORM,
   "PIPE_FORMAT_B5G5R5X1_UNORM",
   "b5g5r5x1_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 1, 15},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 10},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 5},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 10},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 1, 15}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b5g5r5a1_unorm_description = {
   PIPE_FORMAT_B5G5R5A1_UNORM,
   "PIPE_FORMAT_B5G5R5A1_UNORM",
   "b5g5r5a1_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 1, 15},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 10},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 5},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 10},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 1, 15}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b4g4r4a4_unorm_description = {
   PIPE_FORMAT_B4G4R4A4_UNORM,
   "PIPE_FORMAT_B4G4R4A4_UNORM",
   "b4g4r4a4_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 12},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 12}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b4g4r4x4_unorm_description = {
   PIPE_FORMAT_B4G4R4X4_UNORM,
   "PIPE_FORMAT_B4G4R4X4_UNORM",
   "b4g4r4x4_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 4, 12},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 4, 12}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a4b4g4r4_unorm_description = {
   PIPE_FORMAT_A4B4G4R4_UNORM,
   "PIPE_FORMAT_A4B4G4R4_UNORM",
   "a4b4g4r4_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 12},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 12}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b5g6r5_unorm_description = {
   PIPE_FORMAT_B5G6R5_UNORM,
   "PIPE_FORMAT_B5G6R5_UNORM",
   "b5g6r5_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 11},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 11},	/* z = r */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10a2_unorm_description = {
   PIPE_FORMAT_R10G10B10A2_UNORM,
   "PIPE_FORMAT_R10G10B10A2_UNORM",
   "r10g10b10a2_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10x2_unorm_description = {
   PIPE_FORMAT_R10G10B10X2_UNORM,
   "PIPE_FORMAT_R10G10B10X2_UNORM",
   "r10g10b10x2_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10a2_unorm_description = {
   PIPE_FORMAT_B10G10R10A2_UNORM,
   "PIPE_FORMAT_B10G10R10A2_UNORM",
   "b10g10r10a2_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b2g3r3_unorm_description = {
   PIPE_FORMAT_B2G3R3_UNORM,
   "PIPE_FORMAT_B2G3R3_UNORM",
   "b2g3r3_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 3, 5},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 3, 2},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 3, 2},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 3, 5},	/* z = r */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8_unorm_description = {
   PIPE_FORMAT_L8_UNORM,
   "PIPE_FORMAT_L8_UNORM",
   "l8_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8_unorm_description = {
   PIPE_FORMAT_A8_UNORM,
   "PIPE_FORMAT_A8_UNORM",
   "a8_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i8_unorm_description = {
   PIPE_FORMAT_I8_UNORM,
   "PIPE_FORMAT_I8_UNORM",
   "i8_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l4a4_unorm_description = {
   PIPE_FORMAT_L4A4_UNORM,
   "PIPE_FORMAT_L4A4_UNORM",
   "l4a4_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8a8_unorm_description = {
   PIPE_FORMAT_L8A8_UNORM,
   "PIPE_FORMAT_L8A8_UNORM",
   "l8a8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16_unorm_description = {
   PIPE_FORMAT_L16_UNORM,
   "PIPE_FORMAT_L16_UNORM",
   "l16_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a16_unorm_description = {
   PIPE_FORMAT_A16_UNORM,
   "PIPE_FORMAT_A16_UNORM",
   "a16_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i16_unorm_description = {
   PIPE_FORMAT_I16_UNORM,
   "PIPE_FORMAT_I16_UNORM",
   "i16_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16a16_unorm_description = {
   PIPE_FORMAT_L16A16_UNORM,
   "PIPE_FORMAT_L16A16_UNORM",
   "l16a16_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8_snorm_description = {
   PIPE_FORMAT_A8_SNORM,
   "PIPE_FORMAT_A8_SNORM",
   "a8_snorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8_snorm_description = {
   PIPE_FORMAT_L8_SNORM,
   "PIPE_FORMAT_L8_SNORM",
   "l8_snorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8a8_snorm_description = {
   PIPE_FORMAT_L8A8_SNORM,
   "PIPE_FORMAT_L8A8_SNORM",
   "l8a8_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i8_snorm_description = {
   PIPE_FORMAT_I8_SNORM,
   "PIPE_FORMAT_I8_SNORM",
   "i8_snorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a16_snorm_description = {
   PIPE_FORMAT_A16_SNORM,
   "PIPE_FORMAT_A16_SNORM",
   "a16_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16_snorm_description = {
   PIPE_FORMAT_L16_SNORM,
   "PIPE_FORMAT_L16_SNORM",
   "l16_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16a16_snorm_description = {
   PIPE_FORMAT_L16A16_SNORM,
   "PIPE_FORMAT_L16A16_SNORM",
   "l16a16_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i16_snorm_description = {
   PIPE_FORMAT_I16_SNORM,
   "PIPE_FORMAT_I16_SNORM",
   "i16_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a16_float_description = {
   PIPE_FORMAT_A16_FLOAT,
   "PIPE_FORMAT_A16_FLOAT",
   "a16_float",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16_float_description = {
   PIPE_FORMAT_L16_FLOAT,
   "PIPE_FORMAT_L16_FLOAT",
   "l16_float",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16a16_float_description = {
   PIPE_FORMAT_L16A16_FLOAT,
   "PIPE_FORMAT_L16A16_FLOAT",
   "l16a16_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* x = rgb */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i16_float_description = {
   PIPE_FORMAT_I16_FLOAT,
   "PIPE_FORMAT_I16_FLOAT",
   "i16_float",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a32_float_description = {
   PIPE_FORMAT_A32_FLOAT,
   "PIPE_FORMAT_A32_FLOAT",
   "a32_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32_float_description = {
   PIPE_FORMAT_L32_FLOAT,
   "PIPE_FORMAT_L32_FLOAT",
   "l32_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32a32_float_description = {
   PIPE_FORMAT_L32A32_FLOAT,
   "PIPE_FORMAT_L32A32_FLOAT",
   "l32a32_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* x = rgb */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i32_float_description = {
   PIPE_FORMAT_I32_FLOAT,
   "PIPE_FORMAT_I32_FLOAT",
   "i32_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8_srgb_description = {
   PIPE_FORMAT_L8_SRGB,
   "PIPE_FORMAT_L8_SRGB",
   "l8_srgb",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_X,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_r8_srgb_description = {
   PIPE_FORMAT_R8_SRGB,
   "PIPE_FORMAT_R8_SRGB",
   "r8_srgb",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_0,	/* sg */
      UTIL_FORMAT_SWIZZLE_0,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_l8a8_srgb_description = {
   PIPE_FORMAT_L8A8_SRGB,
   "PIPE_FORMAT_L8A8_SRGB",
   "l8a8_srgb",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_X,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_X,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_r8g8b8_srgb_description = {
   PIPE_FORMAT_R8G8B8_SRGB,
   "PIPE_FORMAT_R8G8B8_SRGB",
   "r8g8b8_srgb",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_r8g8b8a8_srgb_description = {
   PIPE_FORMAT_R8G8B8A8_SRGB,
   "PIPE_FORMAT_R8G8B8A8_SRGB",
   "r8g8b8a8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_a8b8g8r8_srgb_description = {
   PIPE_FORMAT_A8B8G8R8_SRGB,
   "PIPE_FORMAT_A8B8G8R8_SRGB",
   "a8b8g8r8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_x8b8g8r8_srgb_description = {
   PIPE_FORMAT_X8B8G8R8_SRGB,
   "PIPE_FORMAT_X8B8G8R8_SRGB",
   "x8b8g8r8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_b8g8r8a8_srgb_description = {
   PIPE_FORMAT_B8G8R8A8_SRGB,
   "PIPE_FORMAT_B8G8R8A8_SRGB",
   "b8g8r8a8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_b8g8r8x8_srgb_description = {
   PIPE_FORMAT_B8G8R8X8_SRGB,
   "PIPE_FORMAT_B8G8R8X8_SRGB",
   "b8g8r8x8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_a8r8g8b8_srgb_description = {
   PIPE_FORMAT_A8R8G8B8_SRGB,
   "PIPE_FORMAT_A8R8G8B8_SRGB",
   "a8r8g8b8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = b */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_W,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_W,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_x8r8g8b8_srgb_description = {
   PIPE_FORMAT_X8R8G8B8_SRGB,
   "PIPE_FORMAT_X8R8G8B8_SRGB",
   "x8r8g8b8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = b */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_W,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Z,	/* sg */
      UTIL_FORMAT_SWIZZLE_W,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_r8sg8sb8ux8u_norm_description = {
   PIPE_FORMAT_R8SG8SB8UX8U_NORM,
   "PIPE_FORMAT_R8SG8SB8UX8U_NORM",
   "r8sg8sb8ux8u_norm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10sg10sb10sa2u_norm_description = {
   PIPE_FORMAT_R10SG10SB10SA2U_NORM,
   "PIPE_FORMAT_R10SG10SB10SA2U_NORM",
   "r10sg10sb10sa2u_norm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r5sg5sb6u_norm_description = {
   PIPE_FORMAT_R5SG5SB6U_NORM,
   "PIPE_FORMAT_R5SG5SB6U_NORM",
   "r5sg5sb6u_norm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 10},	/* x = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 5, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 5, 0},	/* z = r */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 5, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 5, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 10},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_s8_uint_description = {
   PIPE_FORMAT_S8_UINT,
   "PIPE_FORMAT_S8_UINT",
   "s8_uint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = s */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_X,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z16_unorm_description = {
   PIPE_FORMAT_Z16_UNORM,
   "PIPE_FORMAT_Z16_UNORM",
   "z16_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z32_unorm_description = {
   PIPE_FORMAT_Z32_UNORM,
   "PIPE_FORMAT_Z32_UNORM",
   "z32_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* x = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z32_float_description = {
   PIPE_FORMAT_Z32_FLOAT,
   "PIPE_FORMAT_Z32_FLOAT",
   "z32_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z24_unorm_s8_uint_description = {
   PIPE_FORMAT_Z24_UNORM_S8_UINT,
   "PIPE_FORMAT_Z24_UNORM_S8_UINT",
   "z24_unorm_s8_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* x = s */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 0},	/* y = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 0},	/* x = z */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* y = s */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* z */
      UTIL_FORMAT_SWIZZLE_X,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_s8_uint_z24_unorm_description = {
   PIPE_FORMAT_S8_UINT_Z24_UNORM,
   "PIPE_FORMAT_S8_UINT_Z24_UNORM",
   "s8_uint_z24_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 8},	/* x = z */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* y = s */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = s */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 8},	/* y = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* z */
      UTIL_FORMAT_SWIZZLE_X,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_x24s8_uint_description = {
   PIPE_FORMAT_X24S8_UINT,
   "PIPE_FORMAT_X24S8_UINT",
   "x24s8_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* x = s */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 0},	/* y = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* y = s */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_X,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_s8x24_uint_description = {
   PIPE_FORMAT_S8X24_UINT,
   "PIPE_FORMAT_S8X24_UINT",
   "s8x24_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 8},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* y = s */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = s */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 8},	/* y = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_X,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z24x8_unorm_description = {
   PIPE_FORMAT_Z24X8_UNORM,
   "PIPE_FORMAT_Z24X8_UNORM",
   "z24x8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 0},	/* y = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 0},	/* x = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* y = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_x8z24_unorm_description = {
   PIPE_FORMAT_X8Z24_UNORM,
   "PIPE_FORMAT_X8Z24_UNORM",
   "x8z24_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 8},	/* x = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* y = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 24, 8},	/* y = z */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* z */
      UTIL_FORMAT_SWIZZLE_NONE,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_z32_float_s8x24_uint_description = {
   PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
   "PIPE_FORMAT_Z32_FLOAT_S8X24_UINT",
   "z32_float_s8x24_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   TRUE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* x = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 8},	/* y = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* z = s */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = z */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 32},	/* y = s */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 40},	/* z = x */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_Z,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_x32_s8x24_uint_description = {
   PIPE_FORMAT_X32_S8X24_UINT,
   "PIPE_FORMAT_X32_S8X24_UINT",
   "x32_s8x24_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 32},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 8},	/* y = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* z = s */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 32},	/* y = s */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 24, 40},	/* z = x */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_Z,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_NONE,	/* z */
      UTIL_FORMAT_SWIZZLE_Y,	/* s */
      UTIL_FORMAT_SWIZZLE_NONE,	/* ignored */
      UTIL_FORMAT_SWIZZLE_NONE	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_ZS,
};

const struct util_format_description
util_format_uyvy_description = {
   PIPE_FORMAT_UYVY,
   "PIPE_FORMAT_UYVY",
   "uyvy",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_1	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_yuyv_description = {
   PIPE_FORMAT_YUYV,
   "PIPE_FORMAT_YUYV",
   "yuyv",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_1	/* ignored */
   },
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_r8g8_b8g8_unorm_description = {
   PIPE_FORMAT_R8G8_B8G8_UNORM,
   "PIPE_FORMAT_R8G8_B8G8_UNORM",
   "r8g8_b8g8_unorm",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g8r8_g8b8_unorm_description = {
   PIPE_FORMAT_G8R8_G8B8_UNORM,
   "PIPE_FORMAT_G8R8_G8B8_UNORM",
   "g8r8_g8b8_unorm",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g8r8_b8r8_unorm_description = {
   PIPE_FORMAT_G8R8_B8R8_UNORM,
   "PIPE_FORMAT_G8R8_B8R8_UNORM",
   "g8r8_b8r8_unorm",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_r8b8_unorm_description = {
   PIPE_FORMAT_R8G8_R8B8_UNORM,
   "PIPE_FORMAT_R8G8_R8B8_UNORM",
   "r8g8_r8b8_unorm",
   {2, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_SUBSAMPLED,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r11g11b10_float_description = {
   PIPE_FORMAT_R11G11B10_FLOAT,
   "PIPE_FORMAT_R11G11B10_FLOAT",
   "r11g11b10_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r9g9b9e5_float_description = {
   PIPE_FORMAT_R9G9B9E5_FLOAT,
   "PIPE_FORMAT_R9G9B9E5_FLOAT",
   "r9g9b9e5_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r1_unorm_description = {
   PIPE_FORMAT_R1_UNORM,
   "PIPE_FORMAT_R1_UNORM",
   "r1_unorm",
   {8, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8bx_snorm_description = {
   PIPE_FORMAT_R8G8Bx_SNORM,
   "PIPE_FORMAT_R8G8Bx_SNORM",
   "r8g8bx_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = x */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = y */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = y */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_dxt1_rgb_description = {
   PIPE_FORMAT_DXT1_RGB,
   "PIPE_FORMAT_DXT1_RGB",
   "dxt1_rgb",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_dxt1_rgba_description = {
   PIPE_FORMAT_DXT1_RGBA,
   "PIPE_FORMAT_DXT1_RGBA",
   "dxt1_rgba",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_dxt3_rgba_description = {
   PIPE_FORMAT_DXT3_RGBA,
   "PIPE_FORMAT_DXT3_RGBA",
   "dxt3_rgba",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_dxt5_rgba_description = {
   PIPE_FORMAT_DXT5_RGBA,
   "PIPE_FORMAT_DXT5_RGBA",
   "dxt5_rgba",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_dxt1_srgb_description = {
   PIPE_FORMAT_DXT1_SRGB,
   "PIPE_FORMAT_DXT1_SRGB",
   "dxt1_srgb",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_dxt1_srgba_description = {
   PIPE_FORMAT_DXT1_SRGBA,
   "PIPE_FORMAT_DXT1_SRGBA",
   "dxt1_srgba",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_dxt3_srgba_description = {
   PIPE_FORMAT_DXT3_SRGBA,
   "PIPE_FORMAT_DXT3_SRGBA",
   "dxt3_srgba",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_dxt5_srgba_description = {
   PIPE_FORMAT_DXT5_SRGBA,
   "PIPE_FORMAT_DXT5_SRGBA",
   "dxt5_srgba",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_S3TC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_rgtc1_unorm_description = {
   PIPE_FORMAT_RGTC1_UNORM,
   "PIPE_FORMAT_RGTC1_UNORM",
   "rgtc1_unorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_rgtc1_snorm_description = {
   PIPE_FORMAT_RGTC1_SNORM,
   "PIPE_FORMAT_RGTC1_SNORM",
   "rgtc1_snorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_rgtc2_unorm_description = {
   PIPE_FORMAT_RGTC2_UNORM,
   "PIPE_FORMAT_RGTC2_UNORM",
   "rgtc2_unorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_rgtc2_snorm_description = {
   PIPE_FORMAT_RGTC2_SNORM,
   "PIPE_FORMAT_RGTC2_SNORM",
   "rgtc2_snorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_latc1_unorm_description = {
   PIPE_FORMAT_LATC1_UNORM,
   "PIPE_FORMAT_LATC1_UNORM",
   "latc1_unorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_latc1_snorm_description = {
   PIPE_FORMAT_LATC1_SNORM,
   "PIPE_FORMAT_LATC1_SNORM",
   "latc1_snorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_latc2_unorm_description = {
   PIPE_FORMAT_LATC2_UNORM,
   "PIPE_FORMAT_LATC2_UNORM",
   "latc2_unorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_latc2_snorm_description = {
   PIPE_FORMAT_LATC2_SNORM,
   "PIPE_FORMAT_LATC2_SNORM",
   "latc2_snorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_RGTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc1_rgb8_description = {
   PIPE_FORMAT_ETC1_RGB8,
   "PIPE_FORMAT_ETC1_RGB8",
   "etc1_rgb8",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_bptc_rgba_unorm_description = {
   PIPE_FORMAT_BPTC_RGBA_UNORM,
   "PIPE_FORMAT_BPTC_RGBA_UNORM",
   "bptc_rgba_unorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_BPTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_bptc_srgba_description = {
   PIPE_FORMAT_BPTC_SRGBA,
   "PIPE_FORMAT_BPTC_SRGBA",
   "bptc_srgba",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_BPTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_bptc_rgb_float_description = {
   PIPE_FORMAT_BPTC_RGB_FLOAT,
   "PIPE_FORMAT_BPTC_RGB_FLOAT",
   "bptc_rgb_float",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_BPTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_bptc_rgb_ufloat_description = {
   PIPE_FORMAT_BPTC_RGB_UFLOAT,
   "PIPE_FORMAT_BPTC_RGB_UFLOAT",
   "bptc_rgb_ufloat",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_BPTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r64_float_description = {
   PIPE_FORMAT_R64_FLOAT,
   "PIPE_FORMAT_R64_FLOAT",
   "r64_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r64g64_float_description = {
   PIPE_FORMAT_R64G64_FLOAT,
   "PIPE_FORMAT_R64G64_FLOAT",
   "r64g64_float",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r64g64b64_float_description = {
   PIPE_FORMAT_R64G64B64_FLOAT,
   "PIPE_FORMAT_R64G64B64_FLOAT",
   "r64g64b64_float",
   {1, 1, 192},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 128},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 128},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r64g64b64a64_float_description = {
   PIPE_FORMAT_R64G64B64A64_FLOAT,
   "PIPE_FORMAT_R64G64B64A64_FLOAT",
   "r64g64b64a64_float",
   {1, 1, 256},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 192},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 128},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 128},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 64, 192}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_float_description = {
   PIPE_FORMAT_R32_FLOAT,
   "PIPE_FORMAT_R32_FLOAT",
   "r32_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_float_description = {
   PIPE_FORMAT_R32G32_FLOAT,
   "PIPE_FORMAT_R32G32_FLOAT",
   "r32g32_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_float_description = {
   PIPE_FORMAT_R32G32B32_FLOAT,
   "PIPE_FORMAT_R32G32B32_FLOAT",
   "r32g32b32_float",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_float_description = {
   PIPE_FORMAT_R32G32B32A32_FLOAT,
   "PIPE_FORMAT_R32G32B32A32_FLOAT",
   "r32g32b32a32_float",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_unorm_description = {
   PIPE_FORMAT_R32_UNORM,
   "PIPE_FORMAT_R32_UNORM",
   "r32_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_unorm_description = {
   PIPE_FORMAT_R32G32_UNORM,
   "PIPE_FORMAT_R32G32_UNORM",
   "r32g32_unorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_unorm_description = {
   PIPE_FORMAT_R32G32B32_UNORM,
   "PIPE_FORMAT_R32G32B32_UNORM",
   "r32g32b32_unorm",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_unorm_description = {
   PIPE_FORMAT_R32G32B32A32_UNORM,
   "PIPE_FORMAT_R32G32B32A32_UNORM",
   "r32g32b32a32_unorm",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_uscaled_description = {
   PIPE_FORMAT_R32_USCALED,
   "PIPE_FORMAT_R32_USCALED",
   "r32_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_uscaled_description = {
   PIPE_FORMAT_R32G32_USCALED,
   "PIPE_FORMAT_R32G32_USCALED",
   "r32g32_uscaled",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_uscaled_description = {
   PIPE_FORMAT_R32G32B32_USCALED,
   "PIPE_FORMAT_R32G32B32_USCALED",
   "r32g32b32_uscaled",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_uscaled_description = {
   PIPE_FORMAT_R32G32B32A32_USCALED,
   "PIPE_FORMAT_R32G32B32A32_USCALED",
   "r32g32b32a32_uscaled",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_snorm_description = {
   PIPE_FORMAT_R32_SNORM,
   "PIPE_FORMAT_R32_SNORM",
   "r32_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_snorm_description = {
   PIPE_FORMAT_R32G32_SNORM,
   "PIPE_FORMAT_R32G32_SNORM",
   "r32g32_snorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_snorm_description = {
   PIPE_FORMAT_R32G32B32_SNORM,
   "PIPE_FORMAT_R32G32B32_SNORM",
   "r32g32b32_snorm",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_snorm_description = {
   PIPE_FORMAT_R32G32B32A32_SNORM,
   "PIPE_FORMAT_R32G32B32A32_SNORM",
   "r32g32b32a32_snorm",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_sscaled_description = {
   PIPE_FORMAT_R32_SSCALED,
   "PIPE_FORMAT_R32_SSCALED",
   "r32_sscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_sscaled_description = {
   PIPE_FORMAT_R32G32_SSCALED,
   "PIPE_FORMAT_R32G32_SSCALED",
   "r32g32_sscaled",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_sscaled_description = {
   PIPE_FORMAT_R32G32B32_SSCALED,
   "PIPE_FORMAT_R32G32B32_SSCALED",
   "r32g32b32_sscaled",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_sscaled_description = {
   PIPE_FORMAT_R32G32B32A32_SSCALED,
   "PIPE_FORMAT_R32G32B32A32_SSCALED",
   "r32g32b32a32_sscaled",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_float_description = {
   PIPE_FORMAT_R16_FLOAT,
   "PIPE_FORMAT_R16_FLOAT",
   "r16_float",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_float_description = {
   PIPE_FORMAT_R16G16_FLOAT,
   "PIPE_FORMAT_R16G16_FLOAT",
   "r16g16_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_float_description = {
   PIPE_FORMAT_R16G16B16_FLOAT,
   "PIPE_FORMAT_R16G16B16_FLOAT",
   "r16g16b16_float",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_float_description = {
   PIPE_FORMAT_R16G16B16A16_FLOAT,
   "PIPE_FORMAT_R16G16B16A16_FLOAT",
   "r16g16b16a16_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_unorm_description = {
   PIPE_FORMAT_R16_UNORM,
   "PIPE_FORMAT_R16_UNORM",
   "r16_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_unorm_description = {
   PIPE_FORMAT_R16G16_UNORM,
   "PIPE_FORMAT_R16G16_UNORM",
   "r16g16_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_unorm_description = {
   PIPE_FORMAT_R16G16B16_UNORM,
   "PIPE_FORMAT_R16G16B16_UNORM",
   "r16g16b16_unorm",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_unorm_description = {
   PIPE_FORMAT_R16G16B16A16_UNORM,
   "PIPE_FORMAT_R16G16B16A16_UNORM",
   "r16g16b16a16_unorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_uscaled_description = {
   PIPE_FORMAT_R16_USCALED,
   "PIPE_FORMAT_R16_USCALED",
   "r16_uscaled",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_uscaled_description = {
   PIPE_FORMAT_R16G16_USCALED,
   "PIPE_FORMAT_R16G16_USCALED",
   "r16g16_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_uscaled_description = {
   PIPE_FORMAT_R16G16B16_USCALED,
   "PIPE_FORMAT_R16G16B16_USCALED",
   "r16g16b16_uscaled",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_uscaled_description = {
   PIPE_FORMAT_R16G16B16A16_USCALED,
   "PIPE_FORMAT_R16G16B16A16_USCALED",
   "r16g16b16a16_uscaled",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_snorm_description = {
   PIPE_FORMAT_R16_SNORM,
   "PIPE_FORMAT_R16_SNORM",
   "r16_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_snorm_description = {
   PIPE_FORMAT_R16G16_SNORM,
   "PIPE_FORMAT_R16G16_SNORM",
   "r16g16_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_snorm_description = {
   PIPE_FORMAT_R16G16B16_SNORM,
   "PIPE_FORMAT_R16G16B16_SNORM",
   "r16g16b16_snorm",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_snorm_description = {
   PIPE_FORMAT_R16G16B16A16_SNORM,
   "PIPE_FORMAT_R16G16B16A16_SNORM",
   "r16g16b16a16_snorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_sscaled_description = {
   PIPE_FORMAT_R16_SSCALED,
   "PIPE_FORMAT_R16_SSCALED",
   "r16_sscaled",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_sscaled_description = {
   PIPE_FORMAT_R16G16_SSCALED,
   "PIPE_FORMAT_R16G16_SSCALED",
   "r16g16_sscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_sscaled_description = {
   PIPE_FORMAT_R16G16B16_SSCALED,
   "PIPE_FORMAT_R16G16B16_SSCALED",
   "r16g16b16_sscaled",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_sscaled_description = {
   PIPE_FORMAT_R16G16B16A16_SSCALED,
   "PIPE_FORMAT_R16G16B16A16_SSCALED",
   "r16g16b16a16_sscaled",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_unorm_description = {
   PIPE_FORMAT_R8_UNORM,
   "PIPE_FORMAT_R8_UNORM",
   "r8_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_unorm_description = {
   PIPE_FORMAT_R8G8_UNORM,
   "PIPE_FORMAT_R8G8_UNORM",
   "r8g8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_unorm_description = {
   PIPE_FORMAT_R8G8B8_UNORM,
   "PIPE_FORMAT_R8G8B8_UNORM",
   "r8g8b8_unorm",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_unorm_description = {
   PIPE_FORMAT_R8G8B8A8_UNORM,
   "PIPE_FORMAT_R8G8B8A8_UNORM",
   "r8g8b8a8_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_uscaled_description = {
   PIPE_FORMAT_R8_USCALED,
   "PIPE_FORMAT_R8_USCALED",
   "r8_uscaled",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_uscaled_description = {
   PIPE_FORMAT_R8G8_USCALED,
   "PIPE_FORMAT_R8G8_USCALED",
   "r8g8_uscaled",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_uscaled_description = {
   PIPE_FORMAT_R8G8B8_USCALED,
   "PIPE_FORMAT_R8G8B8_USCALED",
   "r8g8b8_uscaled",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_uscaled_description = {
   PIPE_FORMAT_R8G8B8A8_USCALED,
   "PIPE_FORMAT_R8G8B8A8_USCALED",
   "r8g8b8a8_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_snorm_description = {
   PIPE_FORMAT_R8_SNORM,
   "PIPE_FORMAT_R8_SNORM",
   "r8_snorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_snorm_description = {
   PIPE_FORMAT_R8G8_SNORM,
   "PIPE_FORMAT_R8G8_SNORM",
   "r8g8_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_snorm_description = {
   PIPE_FORMAT_R8G8B8_SNORM,
   "PIPE_FORMAT_R8G8B8_SNORM",
   "r8g8b8_snorm",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_snorm_description = {
   PIPE_FORMAT_R8G8B8A8_SNORM,
   "PIPE_FORMAT_R8G8B8A8_SNORM",
   "r8g8b8a8_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_sscaled_description = {
   PIPE_FORMAT_R8_SSCALED,
   "PIPE_FORMAT_R8_SSCALED",
   "r8_sscaled",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_sscaled_description = {
   PIPE_FORMAT_R8G8_SSCALED,
   "PIPE_FORMAT_R8G8_SSCALED",
   "r8g8_sscaled",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_sscaled_description = {
   PIPE_FORMAT_R8G8B8_SSCALED,
   "PIPE_FORMAT_R8G8B8_SSCALED",
   "r8g8b8_sscaled",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_sscaled_description = {
   PIPE_FORMAT_R8G8B8A8_SSCALED,
   "PIPE_FORMAT_R8G8B8A8_SSCALED",
   "r8g8b8a8_sscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_fixed_description = {
   PIPE_FORMAT_R32_FIXED,
   "PIPE_FORMAT_R32_FIXED",
   "r32_fixed",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_fixed_description = {
   PIPE_FORMAT_R32G32_FIXED,
   "PIPE_FORMAT_R32G32_FIXED",
   "r32g32_fixed",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_fixed_description = {
   PIPE_FORMAT_R32G32B32_FIXED,
   "PIPE_FORMAT_R32G32B32_FIXED",
   "r32g32b32_fixed",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_fixed_description = {
   PIPE_FORMAT_R32G32B32A32_FIXED,
   "PIPE_FORMAT_R32G32B32A32_FIXED",
   "r32g32b32a32_fixed",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_FIXED, FALSE, FALSE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10x2_uscaled_description = {
   PIPE_FORMAT_R10G10B10X2_USCALED,
   "PIPE_FORMAT_R10G10B10X2_USCALED",
   "r10g10b10x2_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10x2_snorm_description = {
   PIPE_FORMAT_R10G10B10X2_SNORM,
   "PIPE_FORMAT_R10G10B10X2_SNORM",
   "r10g10b10x2_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30},	/* x = x */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_yv12_description = {
   PIPE_FORMAT_YV12,
   "PIPE_FORMAT_YV12",
   "yv12",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = w */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = w */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_yv16_description = {
   PIPE_FORMAT_YV16,
   "PIPE_FORMAT_YV16",
   "yv16",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = w */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = w */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_iyuv_description = {
   PIPE_FORMAT_IYUV,
   "PIPE_FORMAT_IYUV",
   "iyuv",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = w */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = w */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_nv12_description = {
   PIPE_FORMAT_NV12,
   "PIPE_FORMAT_NV12",
   "nv12",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = w */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = w */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_nv21_description = {
   PIPE_FORMAT_NV21,
   "PIPE_FORMAT_NV21",
   "nv21",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_OTHER,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = w */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 8},	/* y = y */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 16},	/* z = z */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = w */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* y */
      UTIL_FORMAT_SWIZZLE_Y,	/* u */
      UTIL_FORMAT_SWIZZLE_Z,	/* v */
      UTIL_FORMAT_SWIZZLE_W	/* ignored */
   },
#endif
   UTIL_FORMAT_COLORSPACE_YUV,
};

const struct util_format_description
util_format_a4r4_unorm_description = {
   PIPE_FORMAT_A4R4_UNORM,
   "PIPE_FORMAT_A4R4_UNORM",
   "a4r4_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r4a4_unorm_description = {
   PIPE_FORMAT_R4A4_UNORM,
   "PIPE_FORMAT_R4A4_UNORM",
   "r4a4_unorm",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 4, 4},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8a8_unorm_description = {
   PIPE_FORMAT_R8A8_UNORM,
   "PIPE_FORMAT_R8A8_UNORM",
   "r8a8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8r8_unorm_description = {
   PIPE_FORMAT_A8R8_UNORM,
   "PIPE_FORMAT_A8R8_UNORM",
   "a8r8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10a2_uscaled_description = {
   PIPE_FORMAT_R10G10B10A2_USCALED,
   "PIPE_FORMAT_R10G10B10A2_USCALED",
   "r10g10b10a2_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10a2_sscaled_description = {
   PIPE_FORMAT_R10G10B10A2_SSCALED,
   "PIPE_FORMAT_R10G10B10A2_SSCALED",
   "r10g10b10a2_sscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10a2_snorm_description = {
   PIPE_FORMAT_R10G10B10A2_SNORM,
   "PIPE_FORMAT_R10G10B10A2_SNORM",
   "r10g10b10a2_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10a2_uscaled_description = {
   PIPE_FORMAT_B10G10R10A2_USCALED,
   "PIPE_FORMAT_B10G10R10A2_USCALED",
   "b10g10r10a2_uscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10a2_sscaled_description = {
   PIPE_FORMAT_B10G10R10A2_SSCALED,
   "PIPE_FORMAT_B10G10R10A2_SSCALED",
   "b10g10r10a2_sscaled",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10a2_snorm_description = {
   PIPE_FORMAT_B10G10R10A2_SNORM,
   "PIPE_FORMAT_B10G10R10A2_SNORM",
   "b10g10r10a2_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_uint_description = {
   PIPE_FORMAT_R8_UINT,
   "PIPE_FORMAT_R8_UINT",
   "r8_uint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_uint_description = {
   PIPE_FORMAT_R8G8_UINT,
   "PIPE_FORMAT_R8G8_UINT",
   "r8g8_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_uint_description = {
   PIPE_FORMAT_R8G8B8_UINT,
   "PIPE_FORMAT_R8G8B8_UINT",
   "r8g8b8_uint",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_uint_description = {
   PIPE_FORMAT_R8G8B8A8_UINT,
   "PIPE_FORMAT_R8G8B8A8_UINT",
   "r8g8b8a8_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8_sint_description = {
   PIPE_FORMAT_R8_SINT,
   "PIPE_FORMAT_R8_SINT",
   "r8_sint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8_sint_description = {
   PIPE_FORMAT_R8G8_SINT,
   "PIPE_FORMAT_R8G8_SINT",
   "r8g8_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8_sint_description = {
   PIPE_FORMAT_R8G8B8_SINT,
   "PIPE_FORMAT_R8G8B8_SINT",
   "r8g8b8_sint",
   {1, 1, 24},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8a8_sint_description = {
   PIPE_FORMAT_R8G8B8A8_SINT,
   "PIPE_FORMAT_R8G8B8A8_SINT",
   "r8g8b8a8_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 24}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_uint_description = {
   PIPE_FORMAT_R16_UINT,
   "PIPE_FORMAT_R16_UINT",
   "r16_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_uint_description = {
   PIPE_FORMAT_R16G16_UINT,
   "PIPE_FORMAT_R16G16_UINT",
   "r16g16_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_uint_description = {
   PIPE_FORMAT_R16G16B16_UINT,
   "PIPE_FORMAT_R16G16B16_UINT",
   "r16g16b16_uint",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_uint_description = {
   PIPE_FORMAT_R16G16B16A16_UINT,
   "PIPE_FORMAT_R16G16B16A16_UINT",
   "r16g16b16a16_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16_sint_description = {
   PIPE_FORMAT_R16_SINT,
   "PIPE_FORMAT_R16_SINT",
   "r16_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16_sint_description = {
   PIPE_FORMAT_R16G16_SINT,
   "PIPE_FORMAT_R16G16_SINT",
   "r16g16_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16_sint_description = {
   PIPE_FORMAT_R16G16B16_SINT,
   "PIPE_FORMAT_R16G16B16_SINT",
   "r16g16b16_sint",
   {1, 1, 48},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16a16_sint_description = {
   PIPE_FORMAT_R16G16B16A16_SINT,
   "PIPE_FORMAT_R16G16B16A16_SINT",
   "r16g16b16a16_sint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 48}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_uint_description = {
   PIPE_FORMAT_R32_UINT,
   "PIPE_FORMAT_R32_UINT",
   "r32_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_uint_description = {
   PIPE_FORMAT_R32G32_UINT,
   "PIPE_FORMAT_R32G32_UINT",
   "r32g32_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_uint_description = {
   PIPE_FORMAT_R32G32B32_UINT,
   "PIPE_FORMAT_R32G32B32_UINT",
   "r32g32b32_uint",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_uint_description = {
   PIPE_FORMAT_R32G32B32A32_UINT,
   "PIPE_FORMAT_R32G32B32A32_UINT",
   "r32g32b32a32_uint",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32_sint_description = {
   PIPE_FORMAT_R32_SINT,
   "PIPE_FORMAT_R32_SINT",
   "r32_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32_sint_description = {
   PIPE_FORMAT_R32G32_SINT,
   "PIPE_FORMAT_R32G32_SINT",
   "r32g32_sint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32_sint_description = {
   PIPE_FORMAT_R32G32B32_SINT,
   "PIPE_FORMAT_R32G32B32_SINT",
   "r32g32b32_sint",
   {1, 1, 96},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32a32_sint_description = {
   PIPE_FORMAT_R32G32B32A32_SINT,
   "PIPE_FORMAT_R32G32B32A32_SINT",
   "r32g32b32a32_sint",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0}	/* w = a */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 96}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8_uint_description = {
   PIPE_FORMAT_A8_UINT,
   "PIPE_FORMAT_A8_UINT",
   "a8_uint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i8_uint_description = {
   PIPE_FORMAT_I8_UINT,
   "PIPE_FORMAT_I8_UINT",
   "i8_uint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8_uint_description = {
   PIPE_FORMAT_L8_UINT,
   "PIPE_FORMAT_L8_UINT",
   "l8_uint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8a8_uint_description = {
   PIPE_FORMAT_L8A8_UINT,
   "PIPE_FORMAT_L8A8_UINT",
   "l8a8_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8_sint_description = {
   PIPE_FORMAT_A8_SINT,
   "PIPE_FORMAT_A8_SINT",
   "a8_sint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i8_sint_description = {
   PIPE_FORMAT_I8_SINT,
   "PIPE_FORMAT_I8_SINT",
   "i8_sint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8_sint_description = {
   PIPE_FORMAT_L8_SINT,
   "PIPE_FORMAT_L8_SINT",
   "l8_sint",
   {1, 1, 8},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l8a8_sint_description = {
   PIPE_FORMAT_L8A8_SINT,
   "PIPE_FORMAT_L8A8_SINT",
   "l8a8_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a16_uint_description = {
   PIPE_FORMAT_A16_UINT,
   "PIPE_FORMAT_A16_UINT",
   "a16_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i16_uint_description = {
   PIPE_FORMAT_I16_UINT,
   "PIPE_FORMAT_I16_UINT",
   "i16_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16_uint_description = {
   PIPE_FORMAT_L16_UINT,
   "PIPE_FORMAT_L16_UINT",
   "l16_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16a16_uint_description = {
   PIPE_FORMAT_L16A16_UINT,
   "PIPE_FORMAT_L16A16_UINT",
   "l16a16_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a16_sint_description = {
   PIPE_FORMAT_A16_SINT,
   "PIPE_FORMAT_A16_SINT",
   "a16_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i16_sint_description = {
   PIPE_FORMAT_I16_SINT,
   "PIPE_FORMAT_I16_SINT",
   "i16_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16_sint_description = {
   PIPE_FORMAT_L16_SINT,
   "PIPE_FORMAT_L16_SINT",
   "l16_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l16a16_sint_description = {
   PIPE_FORMAT_L16A16_SINT,
   "PIPE_FORMAT_L16A16_SINT",
   "l16a16_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a32_uint_description = {
   PIPE_FORMAT_A32_UINT,
   "PIPE_FORMAT_A32_UINT",
   "a32_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i32_uint_description = {
   PIPE_FORMAT_I32_UINT,
   "PIPE_FORMAT_I32_UINT",
   "i32_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32_uint_description = {
   PIPE_FORMAT_L32_UINT,
   "PIPE_FORMAT_L32_UINT",
   "l32_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32a32_uint_description = {
   PIPE_FORMAT_L32A32_UINT,
   "PIPE_FORMAT_L32A32_UINT",
   "l32a32_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a32_sint_description = {
   PIPE_FORMAT_A32_SINT,
   "PIPE_FORMAT_A32_SINT",
   "a32_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_0,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_i32_sint_description = {
   PIPE_FORMAT_I32_SINT,
   "PIPE_FORMAT_I32_SINT",
   "i32_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = rgba */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32_sint_description = {
   PIPE_FORMAT_L32_SINT,
   "PIPE_FORMAT_L32_SINT",
   "l32_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   1,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_l32a32_sint_description = {
   PIPE_FORMAT_L32A32_SINT,
   "PIPE_FORMAT_L32A32_SINT",
   "l32a32_sint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = rgb */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10a2_uint_description = {
   PIPE_FORMAT_B10G10R10A2_UINT,
   "PIPE_FORMAT_B10G10R10A2_UINT",
   "b10g10r10a2_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8x8_snorm_description = {
   PIPE_FORMAT_R8G8B8X8_SNORM,
   "PIPE_FORMAT_R8G8B8X8_SNORM",
   "r8g8b8x8_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8x8_srgb_description = {
   PIPE_FORMAT_R8G8B8X8_SRGB,
   "PIPE_FORMAT_R8G8B8X8_SRGB",
   "r8g8b8x8_srgb",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_r8g8b8x8_uint_description = {
   PIPE_FORMAT_R8G8B8X8_UINT,
   "PIPE_FORMAT_R8G8B8X8_UINT",
   "r8g8b8x8_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8g8b8x8_sint_description = {
   PIPE_FORMAT_R8G8B8X8_SINT,
   "PIPE_FORMAT_R8G8B8X8_SINT",
   "r8g8b8x8_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 24},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b10g10r10x2_unorm_description = {
   PIPE_FORMAT_B10G10R10X2_UNORM,
   "PIPE_FORMAT_B10G10R10X2_UNORM",
   "b10g10r10x2_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30},	/* x = x */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* y = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0}	/* w = b */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 10, 20},	/* z = r */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 2, 30}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_W,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_X,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16x16_unorm_description = {
   PIPE_FORMAT_R16G16B16X16_UNORM,
   "PIPE_FORMAT_R16G16B16X16_UNORM",
   "r16g16b16x16_unorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 48}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16x16_snorm_description = {
   PIPE_FORMAT_R16G16B16X16_SNORM,
   "PIPE_FORMAT_R16G16B16X16_SNORM",
   "r16g16b16x16_snorm",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 48}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16x16_float_description = {
   PIPE_FORMAT_R16G16B16X16_FLOAT,
   "PIPE_FORMAT_R16G16B16X16_FLOAT",
   "r16g16b16x16_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 48}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16x16_uint_description = {
   PIPE_FORMAT_R16G16B16X16_UINT,
   "PIPE_FORMAT_R16G16B16X16_UINT",
   "r16g16b16x16_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 48}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16g16b16x16_sint_description = {
   PIPE_FORMAT_R16G16B16X16_SINT,
   "PIPE_FORMAT_R16G16B16X16_SINT",
   "r16g16b16x16_sint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 48},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 16, 48}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32x32_float_description = {
   PIPE_FORMAT_R32G32B32X32_FLOAT,
   "PIPE_FORMAT_R32G32B32X32_FLOAT",
   "r32g32b32x32_float",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 96}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32x32_uint_description = {
   PIPE_FORMAT_R32G32B32X32_UINT,
   "PIPE_FORMAT_R32G32B32X32_UINT",
   "r32g32b32x32_uint",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 96}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32g32b32x32_sint_description = {
   PIPE_FORMAT_R32G32B32X32_SINT,
   "PIPE_FORMAT_R32G32B32X32_SINT",
   "r32g32b32x32_sint",
   {1, 1, 128},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 96},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 0}	/* w = x */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = g */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 64},	/* z = b */
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 32, 96}	/* w = x */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8a8_snorm_description = {
   PIPE_FORMAT_R8A8_SNORM,
   "PIPE_FORMAT_R8A8_SNORM",
   "r8a8_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16a16_unorm_description = {
   PIPE_FORMAT_R16A16_UNORM,
   "PIPE_FORMAT_R16A16_UNORM",
   "r16a16_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16a16_snorm_description = {
   PIPE_FORMAT_R16A16_SNORM,
   "PIPE_FORMAT_R16A16_SNORM",
   "r16a16_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16a16_float_description = {
   PIPE_FORMAT_R16A16_FLOAT,
   "PIPE_FORMAT_R16A16_FLOAT",
   "r16a16_float",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32a32_float_description = {
   PIPE_FORMAT_R32A32_FLOAT,
   "PIPE_FORMAT_R32A32_FLOAT",
   "r32a32_float",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_FLOAT, FALSE, FALSE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8a8_uint_description = {
   PIPE_FORMAT_R8A8_UINT,
   "PIPE_FORMAT_R8A8_UINT",
   "r8a8_uint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r8a8_sint_description = {
   PIPE_FORMAT_R8A8_SINT,
   "PIPE_FORMAT_R8A8_SINT",
   "r8a8_sint",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 8, 8},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16a16_uint_description = {
   PIPE_FORMAT_R16A16_UINT,
   "PIPE_FORMAT_R16A16_UINT",
   "r16a16_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r16a16_sint_description = {
   PIPE_FORMAT_R16A16_SINT,
   "PIPE_FORMAT_R16A16_SINT",
   "r16a16_sint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 16, 16},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32a32_uint_description = {
   PIPE_FORMAT_R32A32_UINT,
   "PIPE_FORMAT_R32A32_UINT",
   "r32a32_uint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r32a32_sint_description = {
   PIPE_FORMAT_R32A32_SINT,
   "PIPE_FORMAT_R32A32_SINT",
   "r32a32_sint",
   {1, 1, 64},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_SIGNED, FALSE, TRUE, 32, 32},	/* y = a */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_Y	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_r10g10b10a2_uint_description = {
   PIPE_FORMAT_R10G10B10A2_UINT,
   "PIPE_FORMAT_R10G10B10A2_UINT",
   "r10g10b10a2_uint",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 2, 30},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 20},	/* y = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 10},	/* z = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 0},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 10},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 10, 20},	/* z = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, FALSE, TRUE, 2, 30}	/* w = a */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_b5g6r5_srgb_description = {
   PIPE_FORMAT_B5G6R5_SRGB,
   "PIPE_FORMAT_B5G6R5_SRGB",
   "b5g6r5_srgb",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   3,	/* nr_channels */
   FALSE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 11},	/* x = r */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* z = b */
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 0},	/* x = b */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 6, 5},	/* y = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 5, 11},	/* z = r */
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Z,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_X,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_a8l8_unorm_description = {
   PIPE_FORMAT_A8L8_UNORM,
   "PIPE_FORMAT_A8L8_UNORM",
   "a8l8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8l8_snorm_description = {
   PIPE_FORMAT_A8L8_SNORM,
   "PIPE_FORMAT_A8L8_SNORM",
   "a8l8_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8l8_srgb_description = {
   PIPE_FORMAT_A8L8_SRGB,
   "PIPE_FORMAT_A8L8_SRGB",
   "a8l8_srgb",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Y,	/* sb */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_a16l16_unorm_description = {
   PIPE_FORMAT_A16L16_UNORM,
   "PIPE_FORMAT_A16L16_UNORM",
   "a16l16_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = rgb */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g8r8_unorm_description = {
   PIPE_FORMAT_G8R8_UNORM,
   "PIPE_FORMAT_G8R8_UNORM",
   "g8r8_unorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* x = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 0},	/* x = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g8r8_snorm_description = {
   PIPE_FORMAT_G8R8_SNORM,
   "PIPE_FORMAT_G8R8_SNORM",
   "g8r8_snorm",
   {1, 1, 16},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* x = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g16r16_unorm_description = {
   PIPE_FORMAT_G16R16_UNORM,
   "PIPE_FORMAT_G16R16_UNORM",
   "g16r16_unorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* x = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 0},	/* x = g */
      {UTIL_FORMAT_TYPE_UNSIGNED, TRUE, FALSE, 16, 16},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_g16r16_snorm_description = {
   PIPE_FORMAT_G16R16_SNORM,
   "PIPE_FORMAT_G16R16_SNORM",
   "g16r16_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   2,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* x = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 0},	/* x = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 16, 16},	/* y = r */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_Y,	/* r */
      UTIL_FORMAT_SWIZZLE_X,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_a8b8g8r8_snorm_description = {
   PIPE_FORMAT_A8B8G8R8_SNORM,
   "PIPE_FORMAT_A8B8G8R8_SNORM",
   "a8b8g8r8_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0},	/* x = a */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_X	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_x8b8g8r8_snorm_description = {
   PIPE_FORMAT_X8B8G8R8_SNORM,
   "PIPE_FORMAT_X8B8G8R8_SNORM",
   "x8b8g8r8_snorm",
   {1, 1, 32},	/* block */
   UTIL_FORMAT_LAYOUT_PLAIN,
   4,	/* nr_channels */
   TRUE,	/* is_array */
   TRUE,	/* is_bitmask */
   FALSE,	/* is_mixed */
#if UTIL_ARCH_BIG_ENDIAN
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 24},	/* x = x */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 0}	/* w = r */
   },
#else
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 8, 0},	/* x = x */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 8},	/* y = b */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 16},	/* z = g */
      {UTIL_FORMAT_TYPE_SIGNED, TRUE, FALSE, 8, 24}	/* w = r */
   },
#endif
#if UTIL_ARCH_BIG_ENDIAN
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#else
   {
      UTIL_FORMAT_SWIZZLE_W,	/* r */
      UTIL_FORMAT_SWIZZLE_Z,	/* g */
      UTIL_FORMAT_SWIZZLE_Y,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
#endif
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_rgb8_description = {
   PIPE_FORMAT_ETC2_RGB8,
   "PIPE_FORMAT_ETC2_RGB8",
   "etc2_rgb8",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_srgb8_description = {
   PIPE_FORMAT_ETC2_SRGB8,
   "PIPE_FORMAT_ETC2_SRGB8",
   "etc2_srgb8",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_etc2_rgb8a1_description = {
   PIPE_FORMAT_ETC2_RGB8A1,
   "PIPE_FORMAT_ETC2_RGB8A1",
   "etc2_rgb8a1",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_srgb8a1_description = {
   PIPE_FORMAT_ETC2_SRGB8A1,
   "PIPE_FORMAT_ETC2_SRGB8A1",
   "etc2_srgb8a1",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_etc2_rgba8_description = {
   PIPE_FORMAT_ETC2_RGBA8,
   "PIPE_FORMAT_ETC2_RGBA8",
   "etc2_rgba8",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_srgba8_description = {
   PIPE_FORMAT_ETC2_SRGBA8,
   "PIPE_FORMAT_ETC2_SRGBA8",
   "etc2_srgba8",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_etc2_r11_unorm_description = {
   PIPE_FORMAT_ETC2_R11_UNORM,
   "PIPE_FORMAT_ETC2_R11_UNORM",
   "etc2_r11_unorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_r11_snorm_description = {
   PIPE_FORMAT_ETC2_R11_SNORM,
   "PIPE_FORMAT_ETC2_R11_SNORM",
   "etc2_r11_snorm",
   {4, 4, 64},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 64, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_0,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_rg11_unorm_description = {
   PIPE_FORMAT_ETC2_RG11_UNORM,
   "PIPE_FORMAT_ETC2_RG11_UNORM",
   "etc2_rg11_unorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_etc2_rg11_snorm_description = {
   PIPE_FORMAT_ETC2_RG11_SNORM,
   "PIPE_FORMAT_ETC2_RG11_SNORM",
   "etc2_rg11_snorm",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ETC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_0,	/* b */
      UTIL_FORMAT_SWIZZLE_1	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_4x4_description = {
   PIPE_FORMAT_ASTC_4x4,
   "PIPE_FORMAT_ASTC_4x4",
   "astc_4x4",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_5x4_description = {
   PIPE_FORMAT_ASTC_5x4,
   "PIPE_FORMAT_ASTC_5x4",
   "astc_5x4",
   {5, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_5x5_description = {
   PIPE_FORMAT_ASTC_5x5,
   "PIPE_FORMAT_ASTC_5x5",
   "astc_5x5",
   {5, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_6x5_description = {
   PIPE_FORMAT_ASTC_6x5,
   "PIPE_FORMAT_ASTC_6x5",
   "astc_6x5",
   {6, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_6x6_description = {
   PIPE_FORMAT_ASTC_6x6,
   "PIPE_FORMAT_ASTC_6x6",
   "astc_6x6",
   {6, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_8x5_description = {
   PIPE_FORMAT_ASTC_8x5,
   "PIPE_FORMAT_ASTC_8x5",
   "astc_8x5",
   {8, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_8x6_description = {
   PIPE_FORMAT_ASTC_8x6,
   "PIPE_FORMAT_ASTC_8x6",
   "astc_8x6",
   {8, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_8x8_description = {
   PIPE_FORMAT_ASTC_8x8,
   "PIPE_FORMAT_ASTC_8x8",
   "astc_8x8",
   {8, 8, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_10x5_description = {
   PIPE_FORMAT_ASTC_10x5,
   "PIPE_FORMAT_ASTC_10x5",
   "astc_10x5",
   {10, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_10x6_description = {
   PIPE_FORMAT_ASTC_10x6,
   "PIPE_FORMAT_ASTC_10x6",
   "astc_10x6",
   {10, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_10x8_description = {
   PIPE_FORMAT_ASTC_10x8,
   "PIPE_FORMAT_ASTC_10x8",
   "astc_10x8",
   {10, 8, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_10x10_description = {
   PIPE_FORMAT_ASTC_10x10,
   "PIPE_FORMAT_ASTC_10x10",
   "astc_10x10",
   {10, 10, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_12x10_description = {
   PIPE_FORMAT_ASTC_12x10,
   "PIPE_FORMAT_ASTC_12x10",
   "astc_12x10",
   {12, 10, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_12x12_description = {
   PIPE_FORMAT_ASTC_12x12,
   "PIPE_FORMAT_ASTC_12x12",
   "astc_12x12",
   {12, 12, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* r */
      UTIL_FORMAT_SWIZZLE_Y,	/* g */
      UTIL_FORMAT_SWIZZLE_Z,	/* b */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_RGB,
};

const struct util_format_description
util_format_astc_4x4_srgb_description = {
   PIPE_FORMAT_ASTC_4x4_SRGB,
   "PIPE_FORMAT_ASTC_4x4_SRGB",
   "astc_4x4_srgb",
   {4, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_5x4_srgb_description = {
   PIPE_FORMAT_ASTC_5x4_SRGB,
   "PIPE_FORMAT_ASTC_5x4_SRGB",
   "astc_5x4_srgb",
   {5, 4, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_5x5_srgb_description = {
   PIPE_FORMAT_ASTC_5x5_SRGB,
   "PIPE_FORMAT_ASTC_5x5_SRGB",
   "astc_5x5_srgb",
   {5, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_6x5_srgb_description = {
   PIPE_FORMAT_ASTC_6x5_SRGB,
   "PIPE_FORMAT_ASTC_6x5_SRGB",
   "astc_6x5_srgb",
   {6, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_6x6_srgb_description = {
   PIPE_FORMAT_ASTC_6x6_SRGB,
   "PIPE_FORMAT_ASTC_6x6_SRGB",
   "astc_6x6_srgb",
   {6, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_8x5_srgb_description = {
   PIPE_FORMAT_ASTC_8x5_SRGB,
   "PIPE_FORMAT_ASTC_8x5_SRGB",
   "astc_8x5_srgb",
   {8, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_8x6_srgb_description = {
   PIPE_FORMAT_ASTC_8x6_SRGB,
   "PIPE_FORMAT_ASTC_8x6_SRGB",
   "astc_8x6_srgb",
   {8, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_8x8_srgb_description = {
   PIPE_FORMAT_ASTC_8x8_SRGB,
   "PIPE_FORMAT_ASTC_8x8_SRGB",
   "astc_8x8_srgb",
   {8, 8, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_10x5_srgb_description = {
   PIPE_FORMAT_ASTC_10x5_SRGB,
   "PIPE_FORMAT_ASTC_10x5_SRGB",
   "astc_10x5_srgb",
   {10, 5, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_10x6_srgb_description = {
   PIPE_FORMAT_ASTC_10x6_SRGB,
   "PIPE_FORMAT_ASTC_10x6_SRGB",
   "astc_10x6_srgb",
   {10, 6, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_10x8_srgb_description = {
   PIPE_FORMAT_ASTC_10x8_SRGB,
   "PIPE_FORMAT_ASTC_10x8_SRGB",
   "astc_10x8_srgb",
   {10, 8, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_10x10_srgb_description = {
   PIPE_FORMAT_ASTC_10x10_SRGB,
   "PIPE_FORMAT_ASTC_10x10_SRGB",
   "astc_10x10_srgb",
   {10, 10, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_12x10_srgb_description = {
   PIPE_FORMAT_ASTC_12x10_SRGB,
   "PIPE_FORMAT_ASTC_12x10_SRGB",
   "astc_12x10_srgb",
   {12, 10, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description
util_format_astc_12x12_srgb_description = {
   PIPE_FORMAT_ASTC_12x12_SRGB,
   "PIPE_FORMAT_ASTC_12x12_SRGB",
   "astc_12x12_srgb",
   {12, 12, 128},	/* block */
   UTIL_FORMAT_LAYOUT_ASTC,
   1,	/* nr_channels */
   FALSE,	/* is_array */
   FALSE,	/* is_bitmask */
   FALSE,	/* is_mixed */
   {
      {UTIL_FORMAT_TYPE_VOID, FALSE, FALSE, 128, 0},	/* x = x */
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0}
   },
   {
      UTIL_FORMAT_SWIZZLE_X,	/* sr */
      UTIL_FORMAT_SWIZZLE_Y,	/* sg */
      UTIL_FORMAT_SWIZZLE_Z,	/* sb */
      UTIL_FORMAT_SWIZZLE_W	/* a */
   },
   UTIL_FORMAT_COLORSPACE_SRGB,
};

const struct util_format_description *
util_format_description(enum pipe_format format)
{
   if (format >= PIPE_FORMAT_COUNT) {
      return NULL;
   }

   switch (format) {
   case PIPE_FORMAT_NONE:
      return &util_format_none_description;
   case PIPE_FORMAT_B8G8R8A8_UNORM:
      return &util_format_b8g8r8a8_unorm_description;
   case PIPE_FORMAT_B8G8R8X8_UNORM:
      return &util_format_b8g8r8x8_unorm_description;
   case PIPE_FORMAT_A8R8G8B8_UNORM:
      return &util_format_a8r8g8b8_unorm_description;
   case PIPE_FORMAT_X8R8G8B8_UNORM:
      return &util_format_x8r8g8b8_unorm_description;
   case PIPE_FORMAT_A8B8G8R8_UNORM:
      return &util_format_a8b8g8r8_unorm_description;
   case PIPE_FORMAT_X8B8G8R8_UNORM:
      return &util_format_x8b8g8r8_unorm_description;
   case PIPE_FORMAT_R8G8B8X8_UNORM:
      return &util_format_r8g8b8x8_unorm_description;
   case PIPE_FORMAT_B5G5R5X1_UNORM:
      return &util_format_b5g5r5x1_unorm_description;
   case PIPE_FORMAT_B5G5R5A1_UNORM:
      return &util_format_b5g5r5a1_unorm_description;
   case PIPE_FORMAT_B4G4R4A4_UNORM:
      return &util_format_b4g4r4a4_unorm_description;
   case PIPE_FORMAT_B4G4R4X4_UNORM:
      return &util_format_b4g4r4x4_unorm_description;
   case PIPE_FORMAT_A4B4G4R4_UNORM:
      return &util_format_a4b4g4r4_unorm_description;
   case PIPE_FORMAT_B5G6R5_UNORM:
      return &util_format_b5g6r5_unorm_description;
   case PIPE_FORMAT_R10G10B10A2_UNORM:
      return &util_format_r10g10b10a2_unorm_description;
   case PIPE_FORMAT_R10G10B10X2_UNORM:
      return &util_format_r10g10b10x2_unorm_description;
   case PIPE_FORMAT_B10G10R10A2_UNORM:
      return &util_format_b10g10r10a2_unorm_description;
   case PIPE_FORMAT_B2G3R3_UNORM:
      return &util_format_b2g3r3_unorm_description;
   case PIPE_FORMAT_L8_UNORM:
      return &util_format_l8_unorm_description;
   case PIPE_FORMAT_A8_UNORM:
      return &util_format_a8_unorm_description;
   case PIPE_FORMAT_I8_UNORM:
      return &util_format_i8_unorm_description;
   case PIPE_FORMAT_L4A4_UNORM:
      return &util_format_l4a4_unorm_description;
   case PIPE_FORMAT_L8A8_UNORM:
      return &util_format_l8a8_unorm_description;
   case PIPE_FORMAT_L16_UNORM:
      return &util_format_l16_unorm_description;
   case PIPE_FORMAT_A16_UNORM:
      return &util_format_a16_unorm_description;
   case PIPE_FORMAT_I16_UNORM:
      return &util_format_i16_unorm_description;
   case PIPE_FORMAT_L16A16_UNORM:
      return &util_format_l16a16_unorm_description;
   case PIPE_FORMAT_A8_SNORM:
      return &util_format_a8_snorm_description;
   case PIPE_FORMAT_L8_SNORM:
      return &util_format_l8_snorm_description;
   case PIPE_FORMAT_L8A8_SNORM:
      return &util_format_l8a8_snorm_description;
   case PIPE_FORMAT_I8_SNORM:
      return &util_format_i8_snorm_description;
   case PIPE_FORMAT_A16_SNORM:
      return &util_format_a16_snorm_description;
   case PIPE_FORMAT_L16_SNORM:
      return &util_format_l16_snorm_description;
   case PIPE_FORMAT_L16A16_SNORM:
      return &util_format_l16a16_snorm_description;
   case PIPE_FORMAT_I16_SNORM:
      return &util_format_i16_snorm_description;
   case PIPE_FORMAT_A16_FLOAT:
      return &util_format_a16_float_description;
   case PIPE_FORMAT_L16_FLOAT:
      return &util_format_l16_float_description;
   case PIPE_FORMAT_L16A16_FLOAT:
      return &util_format_l16a16_float_description;
   case PIPE_FORMAT_I16_FLOAT:
      return &util_format_i16_float_description;
   case PIPE_FORMAT_A32_FLOAT:
      return &util_format_a32_float_description;
   case PIPE_FORMAT_L32_FLOAT:
      return &util_format_l32_float_description;
   case PIPE_FORMAT_L32A32_FLOAT:
      return &util_format_l32a32_float_description;
   case PIPE_FORMAT_I32_FLOAT:
      return &util_format_i32_float_description;
   case PIPE_FORMAT_L8_SRGB:
      return &util_format_l8_srgb_description;
   case PIPE_FORMAT_R8_SRGB:
      return &util_format_r8_srgb_description;
   case PIPE_FORMAT_L8A8_SRGB:
      return &util_format_l8a8_srgb_description;
   case PIPE_FORMAT_R8G8B8_SRGB:
      return &util_format_r8g8b8_srgb_description;
   case PIPE_FORMAT_R8G8B8A8_SRGB:
      return &util_format_r8g8b8a8_srgb_description;
   case PIPE_FORMAT_A8B8G8R8_SRGB:
      return &util_format_a8b8g8r8_srgb_description;
   case PIPE_FORMAT_X8B8G8R8_SRGB:
      return &util_format_x8b8g8r8_srgb_description;
   case PIPE_FORMAT_B8G8R8A8_SRGB:
      return &util_format_b8g8r8a8_srgb_description;
   case PIPE_FORMAT_B8G8R8X8_SRGB:
      return &util_format_b8g8r8x8_srgb_description;
   case PIPE_FORMAT_A8R8G8B8_SRGB:
      return &util_format_a8r8g8b8_srgb_description;
   case PIPE_FORMAT_X8R8G8B8_SRGB:
      return &util_format_x8r8g8b8_srgb_description;
   case PIPE_FORMAT_R8SG8SB8UX8U_NORM:
      return &util_format_r8sg8sb8ux8u_norm_description;
   case PIPE_FORMAT_R10SG10SB10SA2U_NORM:
      return &util_format_r10sg10sb10sa2u_norm_description;
   case PIPE_FORMAT_R5SG5SB6U_NORM:
      return &util_format_r5sg5sb6u_norm_description;
   case PIPE_FORMAT_S8_UINT:
      return &util_format_s8_uint_description;
   case PIPE_FORMAT_Z16_UNORM:
      return &util_format_z16_unorm_description;
   case PIPE_FORMAT_Z32_UNORM:
      return &util_format_z32_unorm_description;
   case PIPE_FORMAT_Z32_FLOAT:
      return &util_format_z32_float_description;
   case PIPE_FORMAT_Z24_UNORM_S8_UINT:
      return &util_format_z24_unorm_s8_uint_description;
   case PIPE_FORMAT_S8_UINT_Z24_UNORM:
      return &util_format_s8_uint_z24_unorm_description;
   case PIPE_FORMAT_X24S8_UINT:
      return &util_format_x24s8_uint_description;
   case PIPE_FORMAT_S8X24_UINT:
      return &util_format_s8x24_uint_description;
   case PIPE_FORMAT_Z24X8_UNORM:
      return &util_format_z24x8_unorm_description;
   case PIPE_FORMAT_X8Z24_UNORM:
      return &util_format_x8z24_unorm_description;
   case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
      return &util_format_z32_float_s8x24_uint_description;
   case PIPE_FORMAT_X32_S8X24_UINT:
      return &util_format_x32_s8x24_uint_description;
   case PIPE_FORMAT_UYVY:
      return &util_format_uyvy_description;
   case PIPE_FORMAT_YUYV:
      return &util_format_yuyv_description;
   case PIPE_FORMAT_R8G8_B8G8_UNORM:
      return &util_format_r8g8_b8g8_unorm_description;
   case PIPE_FORMAT_G8R8_G8B8_UNORM:
      return &util_format_g8r8_g8b8_unorm_description;
   case PIPE_FORMAT_G8R8_B8R8_UNORM:
      return &util_format_g8r8_b8r8_unorm_description;
   case PIPE_FORMAT_R8G8_R8B8_UNORM:
      return &util_format_r8g8_r8b8_unorm_description;
   case PIPE_FORMAT_R11G11B10_FLOAT:
      return &util_format_r11g11b10_float_description;
   case PIPE_FORMAT_R9G9B9E5_FLOAT:
      return &util_format_r9g9b9e5_float_description;
   case PIPE_FORMAT_R1_UNORM:
      return &util_format_r1_unorm_description;
   case PIPE_FORMAT_R8G8Bx_SNORM:
      return &util_format_r8g8bx_snorm_description;
   case PIPE_FORMAT_DXT1_RGB:
      return &util_format_dxt1_rgb_description;
   case PIPE_FORMAT_DXT1_RGBA:
      return &util_format_dxt1_rgba_description;
   case PIPE_FORMAT_DXT3_RGBA:
      return &util_format_dxt3_rgba_description;
   case PIPE_FORMAT_DXT5_RGBA:
      return &util_format_dxt5_rgba_description;
   case PIPE_FORMAT_DXT1_SRGB:
      return &util_format_dxt1_srgb_description;
   case PIPE_FORMAT_DXT1_SRGBA:
      return &util_format_dxt1_srgba_description;
   case PIPE_FORMAT_DXT3_SRGBA:
      return &util_format_dxt3_srgba_description;
   case PIPE_FORMAT_DXT5_SRGBA:
      return &util_format_dxt5_srgba_description;
   case PIPE_FORMAT_RGTC1_UNORM:
      return &util_format_rgtc1_unorm_description;
   case PIPE_FORMAT_RGTC1_SNORM:
      return &util_format_rgtc1_snorm_description;
   case PIPE_FORMAT_RGTC2_UNORM:
      return &util_format_rgtc2_unorm_description;
   case PIPE_FORMAT_RGTC2_SNORM:
      return &util_format_rgtc2_snorm_description;
   case PIPE_FORMAT_LATC1_UNORM:
      return &util_format_latc1_unorm_description;
   case PIPE_FORMAT_LATC1_SNORM:
      return &util_format_latc1_snorm_description;
   case PIPE_FORMAT_LATC2_UNORM:
      return &util_format_latc2_unorm_description;
   case PIPE_FORMAT_LATC2_SNORM:
      return &util_format_latc2_snorm_description;
   case PIPE_FORMAT_ETC1_RGB8:
      return &util_format_etc1_rgb8_description;
   case PIPE_FORMAT_BPTC_RGBA_UNORM:
      return &util_format_bptc_rgba_unorm_description;
   case PIPE_FORMAT_BPTC_SRGBA:
      return &util_format_bptc_srgba_description;
   case PIPE_FORMAT_BPTC_RGB_FLOAT:
      return &util_format_bptc_rgb_float_description;
   case PIPE_FORMAT_BPTC_RGB_UFLOAT:
      return &util_format_bptc_rgb_ufloat_description;
   case PIPE_FORMAT_R64_FLOAT:
      return &util_format_r64_float_description;
   case PIPE_FORMAT_R64G64_FLOAT:
      return &util_format_r64g64_float_description;
   case PIPE_FORMAT_R64G64B64_FLOAT:
      return &util_format_r64g64b64_float_description;
   case PIPE_FORMAT_R64G64B64A64_FLOAT:
      return &util_format_r64g64b64a64_float_description;
   case PIPE_FORMAT_R32_FLOAT:
      return &util_format_r32_float_description;
   case PIPE_FORMAT_R32G32_FLOAT:
      return &util_format_r32g32_float_description;
   case PIPE_FORMAT_R32G32B32_FLOAT:
      return &util_format_r32g32b32_float_description;
   case PIPE_FORMAT_R32G32B32A32_FLOAT:
      return &util_format_r32g32b32a32_float_description;
   case PIPE_FORMAT_R32_UNORM:
      return &util_format_r32_unorm_description;
   case PIPE_FORMAT_R32G32_UNORM:
      return &util_format_r32g32_unorm_description;
   case PIPE_FORMAT_R32G32B32_UNORM:
      return &util_format_r32g32b32_unorm_description;
   case PIPE_FORMAT_R32G32B32A32_UNORM:
      return &util_format_r32g32b32a32_unorm_description;
   case PIPE_FORMAT_R32_USCALED:
      return &util_format_r32_uscaled_description;
   case PIPE_FORMAT_R32G32_USCALED:
      return &util_format_r32g32_uscaled_description;
   case PIPE_FORMAT_R32G32B32_USCALED:
      return &util_format_r32g32b32_uscaled_description;
   case PIPE_FORMAT_R32G32B32A32_USCALED:
      return &util_format_r32g32b32a32_uscaled_description;
   case PIPE_FORMAT_R32_SNORM:
      return &util_format_r32_snorm_description;
   case PIPE_FORMAT_R32G32_SNORM:
      return &util_format_r32g32_snorm_description;
   case PIPE_FORMAT_R32G32B32_SNORM:
      return &util_format_r32g32b32_snorm_description;
   case PIPE_FORMAT_R32G32B32A32_SNORM:
      return &util_format_r32g32b32a32_snorm_description;
   case PIPE_FORMAT_R32_SSCALED:
      return &util_format_r32_sscaled_description;
   case PIPE_FORMAT_R32G32_SSCALED:
      return &util_format_r32g32_sscaled_description;
   case PIPE_FORMAT_R32G32B32_SSCALED:
      return &util_format_r32g32b32_sscaled_description;
   case PIPE_FORMAT_R32G32B32A32_SSCALED:
      return &util_format_r32g32b32a32_sscaled_description;
   case PIPE_FORMAT_R16_FLOAT:
      return &util_format_r16_float_description;
   case PIPE_FORMAT_R16G16_FLOAT:
      return &util_format_r16g16_float_description;
   case PIPE_FORMAT_R16G16B16_FLOAT:
      return &util_format_r16g16b16_float_description;
   case PIPE_FORMAT_R16G16B16A16_FLOAT:
      return &util_format_r16g16b16a16_float_description;
   case PIPE_FORMAT_R16_UNORM:
      return &util_format_r16_unorm_description;
   case PIPE_FORMAT_R16G16_UNORM:
      return &util_format_r16g16_unorm_description;
   case PIPE_FORMAT_R16G16B16_UNORM:
      return &util_format_r16g16b16_unorm_description;
   case PIPE_FORMAT_R16G16B16A16_UNORM:
      return &util_format_r16g16b16a16_unorm_description;
   case PIPE_FORMAT_R16_USCALED:
      return &util_format_r16_uscaled_description;
   case PIPE_FORMAT_R16G16_USCALED:
      return &util_format_r16g16_uscaled_description;
   case PIPE_FORMAT_R16G16B16_USCALED:
      return &util_format_r16g16b16_uscaled_description;
   case PIPE_FORMAT_R16G16B16A16_USCALED:
      return &util_format_r16g16b16a16_uscaled_description;
   case PIPE_FORMAT_R16_SNORM:
      return &util_format_r16_snorm_description;
   case PIPE_FORMAT_R16G16_SNORM:
      return &util_format_r16g16_snorm_description;
   case PIPE_FORMAT_R16G16B16_SNORM:
      return &util_format_r16g16b16_snorm_description;
   case PIPE_FORMAT_R16G16B16A16_SNORM:
      return &util_format_r16g16b16a16_snorm_description;
   case PIPE_FORMAT_R16_SSCALED:
      return &util_format_r16_sscaled_description;
   case PIPE_FORMAT_R16G16_SSCALED:
      return &util_format_r16g16_sscaled_description;
   case PIPE_FORMAT_R16G16B16_SSCALED:
      return &util_format_r16g16b16_sscaled_description;
   case PIPE_FORMAT_R16G16B16A16_SSCALED:
      return &util_format_r16g16b16a16_sscaled_description;
   case PIPE_FORMAT_R8_UNORM:
      return &util_format_r8_unorm_description;
   case PIPE_FORMAT_R8G8_UNORM:
      return &util_format_r8g8_unorm_description;
   case PIPE_FORMAT_R8G8B8_UNORM:
      return &util_format_r8g8b8_unorm_description;
   case PIPE_FORMAT_R8G8B8A8_UNORM:
      return &util_format_r8g8b8a8_unorm_description;
   case PIPE_FORMAT_R8_USCALED:
      return &util_format_r8_uscaled_description;
   case PIPE_FORMAT_R8G8_USCALED:
      return &util_format_r8g8_uscaled_description;
   case PIPE_FORMAT_R8G8B8_USCALED:
      return &util_format_r8g8b8_uscaled_description;
   case PIPE_FORMAT_R8G8B8A8_USCALED:
      return &util_format_r8g8b8a8_uscaled_description;
   case PIPE_FORMAT_R8_SNORM:
      return &util_format_r8_snorm_description;
   case PIPE_FORMAT_R8G8_SNORM:
      return &util_format_r8g8_snorm_description;
   case PIPE_FORMAT_R8G8B8_SNORM:
      return &util_format_r8g8b8_snorm_description;
   case PIPE_FORMAT_R8G8B8A8_SNORM:
      return &util_format_r8g8b8a8_snorm_description;
   case PIPE_FORMAT_R8_SSCALED:
      return &util_format_r8_sscaled_description;
   case PIPE_FORMAT_R8G8_SSCALED:
      return &util_format_r8g8_sscaled_description;
   case PIPE_FORMAT_R8G8B8_SSCALED:
      return &util_format_r8g8b8_sscaled_description;
   case PIPE_FORMAT_R8G8B8A8_SSCALED:
      return &util_format_r8g8b8a8_sscaled_description;
   case PIPE_FORMAT_R32_FIXED:
      return &util_format_r32_fixed_description;
   case PIPE_FORMAT_R32G32_FIXED:
      return &util_format_r32g32_fixed_description;
   case PIPE_FORMAT_R32G32B32_FIXED:
      return &util_format_r32g32b32_fixed_description;
   case PIPE_FORMAT_R32G32B32A32_FIXED:
      return &util_format_r32g32b32a32_fixed_description;
   case PIPE_FORMAT_R10G10B10X2_USCALED:
      return &util_format_r10g10b10x2_uscaled_description;
   case PIPE_FORMAT_R10G10B10X2_SNORM:
      return &util_format_r10g10b10x2_snorm_description;
   case PIPE_FORMAT_YV12:
      return &util_format_yv12_description;
   case PIPE_FORMAT_YV16:
      return &util_format_yv16_description;
   case PIPE_FORMAT_IYUV:
      return &util_format_iyuv_description;
   case PIPE_FORMAT_NV12:
      return &util_format_nv12_description;
   case PIPE_FORMAT_NV21:
      return &util_format_nv21_description;
   case PIPE_FORMAT_A4R4_UNORM:
      return &util_format_a4r4_unorm_description;
   case PIPE_FORMAT_R4A4_UNORM:
      return &util_format_r4a4_unorm_description;
   case PIPE_FORMAT_R8A8_UNORM:
      return &util_format_r8a8_unorm_description;
   case PIPE_FORMAT_A8R8_UNORM:
      return &util_format_a8r8_unorm_description;
   case PIPE_FORMAT_R10G10B10A2_USCALED:
      return &util_format_r10g10b10a2_uscaled_description;
   case PIPE_FORMAT_R10G10B10A2_SSCALED:
      return &util_format_r10g10b10a2_sscaled_description;
   case PIPE_FORMAT_R10G10B10A2_SNORM:
      return &util_format_r10g10b10a2_snorm_description;
   case PIPE_FORMAT_B10G10R10A2_USCALED:
      return &util_format_b10g10r10a2_uscaled_description;
   case PIPE_FORMAT_B10G10R10A2_SSCALED:
      return &util_format_b10g10r10a2_sscaled_description;
   case PIPE_FORMAT_B10G10R10A2_SNORM:
      return &util_format_b10g10r10a2_snorm_description;
   case PIPE_FORMAT_R8_UINT:
      return &util_format_r8_uint_description;
   case PIPE_FORMAT_R8G8_UINT:
      return &util_format_r8g8_uint_description;
   case PIPE_FORMAT_R8G8B8_UINT:
      return &util_format_r8g8b8_uint_description;
   case PIPE_FORMAT_R8G8B8A8_UINT:
      return &util_format_r8g8b8a8_uint_description;
   case PIPE_FORMAT_R8_SINT:
      return &util_format_r8_sint_description;
   case PIPE_FORMAT_R8G8_SINT:
      return &util_format_r8g8_sint_description;
   case PIPE_FORMAT_R8G8B8_SINT:
      return &util_format_r8g8b8_sint_description;
   case PIPE_FORMAT_R8G8B8A8_SINT:
      return &util_format_r8g8b8a8_sint_description;
   case PIPE_FORMAT_R16_UINT:
      return &util_format_r16_uint_description;
   case PIPE_FORMAT_R16G16_UINT:
      return &util_format_r16g16_uint_description;
   case PIPE_FORMAT_R16G16B16_UINT:
      return &util_format_r16g16b16_uint_description;
   case PIPE_FORMAT_R16G16B16A16_UINT:
      return &util_format_r16g16b16a16_uint_description;
   case PIPE_FORMAT_R16_SINT:
      return &util_format_r16_sint_description;
   case PIPE_FORMAT_R16G16_SINT:
      return &util_format_r16g16_sint_description;
   case PIPE_FORMAT_R16G16B16_SINT:
      return &util_format_r16g16b16_sint_description;
   case PIPE_FORMAT_R16G16B16A16_SINT:
      return &util_format_r16g16b16a16_sint_description;
   case PIPE_FORMAT_R32_UINT:
      return &util_format_r32_uint_description;
   case PIPE_FORMAT_R32G32_UINT:
      return &util_format_r32g32_uint_description;
   case PIPE_FORMAT_R32G32B32_UINT:
      return &util_format_r32g32b32_uint_description;
   case PIPE_FORMAT_R32G32B32A32_UINT:
      return &util_format_r32g32b32a32_uint_description;
   case PIPE_FORMAT_R32_SINT:
      return &util_format_r32_sint_description;
   case PIPE_FORMAT_R32G32_SINT:
      return &util_format_r32g32_sint_description;
   case PIPE_FORMAT_R32G32B32_SINT:
      return &util_format_r32g32b32_sint_description;
   case PIPE_FORMAT_R32G32B32A32_SINT:
      return &util_format_r32g32b32a32_sint_description;
   case PIPE_FORMAT_A8_UINT:
      return &util_format_a8_uint_description;
   case PIPE_FORMAT_I8_UINT:
      return &util_format_i8_uint_description;
   case PIPE_FORMAT_L8_UINT:
      return &util_format_l8_uint_description;
   case PIPE_FORMAT_L8A8_UINT:
      return &util_format_l8a8_uint_description;
   case PIPE_FORMAT_A8_SINT:
      return &util_format_a8_sint_description;
   case PIPE_FORMAT_I8_SINT:
      return &util_format_i8_sint_description;
   case PIPE_FORMAT_L8_SINT:
      return &util_format_l8_sint_description;
   case PIPE_FORMAT_L8A8_SINT:
      return &util_format_l8a8_sint_description;
   case PIPE_FORMAT_A16_UINT:
      return &util_format_a16_uint_description;
   case PIPE_FORMAT_I16_UINT:
      return &util_format_i16_uint_description;
   case PIPE_FORMAT_L16_UINT:
      return &util_format_l16_uint_description;
   case PIPE_FORMAT_L16A16_UINT:
      return &util_format_l16a16_uint_description;
   case PIPE_FORMAT_A16_SINT:
      return &util_format_a16_sint_description;
   case PIPE_FORMAT_I16_SINT:
      return &util_format_i16_sint_description;
   case PIPE_FORMAT_L16_SINT:
      return &util_format_l16_sint_description;
   case PIPE_FORMAT_L16A16_SINT:
      return &util_format_l16a16_sint_description;
   case PIPE_FORMAT_A32_UINT:
      return &util_format_a32_uint_description;
   case PIPE_FORMAT_I32_UINT:
      return &util_format_i32_uint_description;
   case PIPE_FORMAT_L32_UINT:
      return &util_format_l32_uint_description;
   case PIPE_FORMAT_L32A32_UINT:
      return &util_format_l32a32_uint_description;
   case PIPE_FORMAT_A32_SINT:
      return &util_format_a32_sint_description;
   case PIPE_FORMAT_I32_SINT:
      return &util_format_i32_sint_description;
   case PIPE_FORMAT_L32_SINT:
      return &util_format_l32_sint_description;
   case PIPE_FORMAT_L32A32_SINT:
      return &util_format_l32a32_sint_description;
   case PIPE_FORMAT_B10G10R10A2_UINT:
      return &util_format_b10g10r10a2_uint_description;
   case PIPE_FORMAT_R8G8B8X8_SNORM:
      return &util_format_r8g8b8x8_snorm_description;
   case PIPE_FORMAT_R8G8B8X8_SRGB:
      return &util_format_r8g8b8x8_srgb_description;
   case PIPE_FORMAT_R8G8B8X8_UINT:
      return &util_format_r8g8b8x8_uint_description;
   case PIPE_FORMAT_R8G8B8X8_SINT:
      return &util_format_r8g8b8x8_sint_description;
   case PIPE_FORMAT_B10G10R10X2_UNORM:
      return &util_format_b10g10r10x2_unorm_description;
   case PIPE_FORMAT_R16G16B16X16_UNORM:
      return &util_format_r16g16b16x16_unorm_description;
   case PIPE_FORMAT_R16G16B16X16_SNORM:
      return &util_format_r16g16b16x16_snorm_description;
   case PIPE_FORMAT_R16G16B16X16_FLOAT:
      return &util_format_r16g16b16x16_float_description;
   case PIPE_FORMAT_R16G16B16X16_UINT:
      return &util_format_r16g16b16x16_uint_description;
   case PIPE_FORMAT_R16G16B16X16_SINT:
      return &util_format_r16g16b16x16_sint_description;
   case PIPE_FORMAT_R32G32B32X32_FLOAT:
      return &util_format_r32g32b32x32_float_description;
   case PIPE_FORMAT_R32G32B32X32_UINT:
      return &util_format_r32g32b32x32_uint_description;
   case PIPE_FORMAT_R32G32B32X32_SINT:
      return &util_format_r32g32b32x32_sint_description;
   case PIPE_FORMAT_R8A8_SNORM:
      return &util_format_r8a8_snorm_description;
   case PIPE_FORMAT_R16A16_UNORM:
      return &util_format_r16a16_unorm_description;
   case PIPE_FORMAT_R16A16_SNORM:
      return &util_format_r16a16_snorm_description;
   case PIPE_FORMAT_R16A16_FLOAT:
      return &util_format_r16a16_float_description;
   case PIPE_FORMAT_R32A32_FLOAT:
      return &util_format_r32a32_float_description;
   case PIPE_FORMAT_R8A8_UINT:
      return &util_format_r8a8_uint_description;
   case PIPE_FORMAT_R8A8_SINT:
      return &util_format_r8a8_sint_description;
   case PIPE_FORMAT_R16A16_UINT:
      return &util_format_r16a16_uint_description;
   case PIPE_FORMAT_R16A16_SINT:
      return &util_format_r16a16_sint_description;
   case PIPE_FORMAT_R32A32_UINT:
      return &util_format_r32a32_uint_description;
   case PIPE_FORMAT_R32A32_SINT:
      return &util_format_r32a32_sint_description;
   case PIPE_FORMAT_R10G10B10A2_UINT:
      return &util_format_r10g10b10a2_uint_description;
   case PIPE_FORMAT_B5G6R5_SRGB:
      return &util_format_b5g6r5_srgb_description;
   case PIPE_FORMAT_A8L8_UNORM:
      return &util_format_a8l8_unorm_description;
   case PIPE_FORMAT_A8L8_SNORM:
      return &util_format_a8l8_snorm_description;
   case PIPE_FORMAT_A8L8_SRGB:
      return &util_format_a8l8_srgb_description;
   case PIPE_FORMAT_A16L16_UNORM:
      return &util_format_a16l16_unorm_description;
   case PIPE_FORMAT_G8R8_UNORM:
      return &util_format_g8r8_unorm_description;
   case PIPE_FORMAT_G8R8_SNORM:
      return &util_format_g8r8_snorm_description;
   case PIPE_FORMAT_G16R16_UNORM:
      return &util_format_g16r16_unorm_description;
   case PIPE_FORMAT_G16R16_SNORM:
      return &util_format_g16r16_snorm_description;
   case PIPE_FORMAT_A8B8G8R8_SNORM:
      return &util_format_a8b8g8r8_snorm_description;
   case PIPE_FORMAT_X8B8G8R8_SNORM:
      return &util_format_x8b8g8r8_snorm_description;
   case PIPE_FORMAT_ETC2_RGB8:
      return &util_format_etc2_rgb8_description;
   case PIPE_FORMAT_ETC2_SRGB8:
      return &util_format_etc2_srgb8_description;
   case PIPE_FORMAT_ETC2_RGB8A1:
      return &util_format_etc2_rgb8a1_description;
   case PIPE_FORMAT_ETC2_SRGB8A1:
      return &util_format_etc2_srgb8a1_description;
   case PIPE_FORMAT_ETC2_RGBA8:
      return &util_format_etc2_rgba8_description;
   case PIPE_FORMAT_ETC2_SRGBA8:
      return &util_format_etc2_srgba8_description;
   case PIPE_FORMAT_ETC2_R11_UNORM:
      return &util_format_etc2_r11_unorm_description;
   case PIPE_FORMAT_ETC2_R11_SNORM:
      return &util_format_etc2_r11_snorm_description;
   case PIPE_FORMAT_ETC2_RG11_UNORM:
      return &util_format_etc2_rg11_unorm_description;
   case PIPE_FORMAT_ETC2_RG11_SNORM:
      return &util_format_etc2_rg11_snorm_description;
   case PIPE_FORMAT_ASTC_4x4:
      return &util_format_astc_4x4_description;
   case PIPE_FORMAT_ASTC_5x4:
      return &util_format_astc_5x4_description;
   case PIPE_FORMAT_ASTC_5x5:
      return &util_format_astc_5x5_description;
   case PIPE_FORMAT_ASTC_6x5:
      return &util_format_astc_6x5_description;
   case PIPE_FORMAT_ASTC_6x6:
      return &util_format_astc_6x6_description;
   case PIPE_FORMAT_ASTC_8x5:
      return &util_format_astc_8x5_description;
   case PIPE_FORMAT_ASTC_8x6:
      return &util_format_astc_8x6_description;
   case PIPE_FORMAT_ASTC_8x8:
      return &util_format_astc_8x8_description;
   case PIPE_FORMAT_ASTC_10x5:
      return &util_format_astc_10x5_description;
   case PIPE_FORMAT_ASTC_10x6:
      return &util_format_astc_10x6_description;
   case PIPE_FORMAT_ASTC_10x8:
      return &util_format_astc_10x8_description;
   case PIPE_FORMAT_ASTC_10x10:
      return &util_format_astc_10x10_description;
   case PIPE_FORMAT_ASTC_12x10:
      return &util_format_astc_12x10_description;
   case PIPE_FORMAT_ASTC_12x12:
      return &util_format_astc_12x12_description;
   case PIPE_FORMAT_ASTC_4x4_SRGB:
      return &util_format_astc_4x4_srgb_description;
   case PIPE_FORMAT_ASTC_5x4_SRGB:
      return &util_format_astc_5x4_srgb_description;
   case PIPE_FORMAT_ASTC_5x5_SRGB:
      return &util_format_astc_5x5_srgb_description;
   case PIPE_FORMAT_ASTC_6x5_SRGB:
      return &util_format_astc_6x5_srgb_description;
   case PIPE_FORMAT_ASTC_6x6_SRGB:
      return &util_format_astc_6x6_srgb_description;
   case PIPE_FORMAT_ASTC_8x5_SRGB:
      return &util_format_astc_8x5_srgb_description;
   case PIPE_FORMAT_ASTC_8x6_SRGB:
      return &util_format_astc_8x6_srgb_description;
   case PIPE_FORMAT_ASTC_8x8_SRGB:
      return &util_format_astc_8x8_srgb_description;
   case PIPE_FORMAT_ASTC_10x5_SRGB:
      return &util_format_astc_10x5_srgb_description;
   case PIPE_FORMAT_ASTC_10x6_SRGB:
      return &util_format_astc_10x6_srgb_description;
   case PIPE_FORMAT_ASTC_10x8_SRGB:
      return &util_format_astc_10x8_srgb_description;
   case PIPE_FORMAT_ASTC_10x10_SRGB:
      return &util_format_astc_10x10_srgb_description;
   case PIPE_FORMAT_ASTC_12x10_SRGB:
      return &util_format_astc_12x10_srgb_description;
   case PIPE_FORMAT_ASTC_12x12_SRGB:
      return &util_format_astc_12x12_srgb_description;
   default:
      return NULL;
   }
}

