#ifndef GEN_RENDER_SURFACE_XML
#define GEN_RENDER_SURFACE_XML

/* Autogenerated file, DO NOT EDIT manually!

This file was generated by the rules-ng-ng headergen tool in this git repository:
https://github.com/olvaffe/envytools/
git clone https://github.com/olvaffe/envytools.git

Copyright (C) 2014-2015 by the following authors:
- Chia-I Wu <olvaffe@gmail.com> (olv)

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, sublicense, 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 NONINFRINGEMENT.
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) 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.
*/


enum gen_surface_format {
    GEN6_FORMAT_R32G32B32A32_FLOAT			      = 0x0,
    GEN6_FORMAT_R32G32B32A32_SINT			      = 0x1,
    GEN6_FORMAT_R32G32B32A32_UINT			      = 0x2,
    GEN6_FORMAT_R32G32B32A32_UNORM			      = 0x3,
    GEN6_FORMAT_R32G32B32A32_SNORM			      = 0x4,
    GEN6_FORMAT_R64G64_FLOAT				      = 0x5,
    GEN6_FORMAT_R32G32B32X32_FLOAT			      = 0x6,
    GEN6_FORMAT_R32G32B32A32_SSCALED			      = 0x7,
    GEN6_FORMAT_R32G32B32A32_USCALED			      = 0x8,
    GEN6_FORMAT_R32G32B32A32_SFIXED			      = 0x20,
    GEN6_FORMAT_R64G64_PASSTHRU				      = 0x21,
    GEN6_FORMAT_R32G32B32_FLOAT				      = 0x40,
    GEN6_FORMAT_R32G32B32_SINT				      = 0x41,
    GEN6_FORMAT_R32G32B32_UINT				      = 0x42,
    GEN6_FORMAT_R32G32B32_UNORM				      = 0x43,
    GEN6_FORMAT_R32G32B32_SNORM				      = 0x44,
    GEN6_FORMAT_R32G32B32_SSCALED			      = 0x45,
    GEN6_FORMAT_R32G32B32_USCALED			      = 0x46,
    GEN6_FORMAT_R32G32B32_SFIXED			      = 0x50,
    GEN6_FORMAT_R16G16B16A16_UNORM			      = 0x80,
    GEN6_FORMAT_R16G16B16A16_SNORM			      = 0x81,
    GEN6_FORMAT_R16G16B16A16_SINT			      = 0x82,
    GEN6_FORMAT_R16G16B16A16_UINT			      = 0x83,
    GEN6_FORMAT_R16G16B16A16_FLOAT			      = 0x84,
    GEN6_FORMAT_R32G32_FLOAT				      = 0x85,
    GEN6_FORMAT_R32G32_SINT				      = 0x86,
    GEN6_FORMAT_R32G32_UINT				      = 0x87,
    GEN6_FORMAT_R32_FLOAT_X8X24_TYPELESS		      = 0x88,
    GEN6_FORMAT_X32_TYPELESS_G8X24_UINT			      = 0x89,
    GEN6_FORMAT_L32A32_FLOAT				      = 0x8a,
    GEN6_FORMAT_R32G32_UNORM				      = 0x8b,
    GEN6_FORMAT_R32G32_SNORM				      = 0x8c,
    GEN6_FORMAT_R64_FLOAT				      = 0x8d,
    GEN6_FORMAT_R16G16B16X16_UNORM			      = 0x8e,
    GEN6_FORMAT_R16G16B16X16_FLOAT			      = 0x8f,
    GEN6_FORMAT_A32X32_FLOAT				      = 0x90,
    GEN6_FORMAT_L32X32_FLOAT				      = 0x91,
    GEN6_FORMAT_I32X32_FLOAT				      = 0x92,
    GEN6_FORMAT_R16G16B16A16_SSCALED			      = 0x93,
    GEN6_FORMAT_R16G16B16A16_USCALED			      = 0x94,
    GEN6_FORMAT_R32G32_SSCALED				      = 0x95,
    GEN6_FORMAT_R32G32_USCALED				      = 0x96,
    GEN6_FORMAT_R32G32_SFIXED				      = 0xa0,
    GEN6_FORMAT_R64_PASSTHRU				      = 0xa1,
    GEN6_FORMAT_B8G8R8A8_UNORM				      = 0xc0,
    GEN6_FORMAT_B8G8R8A8_UNORM_SRGB			      = 0xc1,
    GEN6_FORMAT_R10G10B10A2_UNORM			      = 0xc2,
    GEN6_FORMAT_R10G10B10A2_UNORM_SRGB			      = 0xc3,
    GEN6_FORMAT_R10G10B10A2_UINT			      = 0xc4,
    GEN6_FORMAT_R10G10B10_SNORM_A2_UNORM		      = 0xc5,
    GEN6_FORMAT_R8G8B8A8_UNORM				      = 0xc7,
    GEN6_FORMAT_R8G8B8A8_UNORM_SRGB			      = 0xc8,
    GEN6_FORMAT_R8G8B8A8_SNORM				      = 0xc9,
    GEN6_FORMAT_R8G8B8A8_SINT				      = 0xca,
    GEN6_FORMAT_R8G8B8A8_UINT				      = 0xcb,
    GEN6_FORMAT_R16G16_UNORM				      = 0xcc,
    GEN6_FORMAT_R16G16_SNORM				      = 0xcd,
    GEN6_FORMAT_R16G16_SINT				      = 0xce,
    GEN6_FORMAT_R16G16_UINT				      = 0xcf,
    GEN6_FORMAT_R16G16_FLOAT				      = 0xd0,
    GEN6_FORMAT_B10G10R10A2_UNORM			      = 0xd1,
    GEN6_FORMAT_B10G10R10A2_UNORM_SRGB			      = 0xd2,
    GEN6_FORMAT_R11G11B10_FLOAT				      = 0xd3,
    GEN6_FORMAT_R32_SINT				      = 0xd6,
    GEN6_FORMAT_R32_UINT				      = 0xd7,
    GEN6_FORMAT_R32_FLOAT				      = 0xd8,
    GEN6_FORMAT_R24_UNORM_X8_TYPELESS			      = 0xd9,
    GEN6_FORMAT_X24_TYPELESS_G8_UINT			      = 0xda,
    GEN6_FORMAT_L32_UNORM				      = 0xdd,
    GEN6_FORMAT_A32_UNORM				      = 0xde,
    GEN6_FORMAT_L16A16_UNORM				      = 0xdf,
    GEN6_FORMAT_I24X8_UNORM				      = 0xe0,
    GEN6_FORMAT_L24X8_UNORM				      = 0xe1,
    GEN6_FORMAT_A24X8_UNORM				      = 0xe2,
    GEN6_FORMAT_I32_FLOAT				      = 0xe3,
    GEN6_FORMAT_L32_FLOAT				      = 0xe4,
    GEN6_FORMAT_A32_FLOAT				      = 0xe5,
    GEN6_FORMAT_X8B8_UNORM_G8R8_SNORM			      = 0xe6,
    GEN6_FORMAT_A8X8_UNORM_G8R8_SNORM			      = 0xe7,
    GEN6_FORMAT_B8X8_UNORM_G8R8_SNORM			      = 0xe8,
    GEN6_FORMAT_B8G8R8X8_UNORM				      = 0xe9,
    GEN6_FORMAT_B8G8R8X8_UNORM_SRGB			      = 0xea,
    GEN6_FORMAT_R8G8B8X8_UNORM				      = 0xeb,
    GEN6_FORMAT_R8G8B8X8_UNORM_SRGB			      = 0xec,
    GEN6_FORMAT_R9G9B9E5_SHAREDEXP			      = 0xed,
    GEN6_FORMAT_B10G10R10X2_UNORM			      = 0xee,
    GEN6_FORMAT_L16A16_FLOAT				      = 0xf0,
    GEN6_FORMAT_R32_UNORM				      = 0xf1,
    GEN6_FORMAT_R32_SNORM				      = 0xf2,
    GEN6_FORMAT_R10G10B10X2_USCALED			      = 0xf3,
    GEN6_FORMAT_R8G8B8A8_SSCALED			      = 0xf4,
    GEN6_FORMAT_R8G8B8A8_USCALED			      = 0xf5,
    GEN6_FORMAT_R16G16_SSCALED				      = 0xf6,
    GEN6_FORMAT_R16G16_USCALED				      = 0xf7,
    GEN6_FORMAT_R32_SSCALED				      = 0xf8,
    GEN6_FORMAT_R32_USCALED				      = 0xf9,
    GEN6_FORMAT_B5G6R5_UNORM				      = 0x100,
    GEN6_FORMAT_B5G6R5_UNORM_SRGB			      = 0x101,
    GEN6_FORMAT_B5G5R5A1_UNORM				      = 0x102,
    GEN6_FORMAT_B5G5R5A1_UNORM_SRGB			      = 0x103,
    GEN6_FORMAT_B4G4R4A4_UNORM				      = 0x104,
    GEN6_FORMAT_B4G4R4A4_UNORM_SRGB			      = 0x105,
    GEN6_FORMAT_R8G8_UNORM				      = 0x106,
    GEN6_FORMAT_R8G8_SNORM				      = 0x107,
    GEN6_FORMAT_R8G8_SINT				      = 0x108,
    GEN6_FORMAT_R8G8_UINT				      = 0x109,
    GEN6_FORMAT_R16_UNORM				      = 0x10a,
    GEN6_FORMAT_R16_SNORM				      = 0x10b,
    GEN6_FORMAT_R16_SINT				      = 0x10c,
    GEN6_FORMAT_R16_UINT				      = 0x10d,
    GEN6_FORMAT_R16_FLOAT				      = 0x10e,
    GEN6_FORMAT_A8P8_UNORM_PALETTE0			      = 0x10f,
    GEN6_FORMAT_A8P8_UNORM_PALETTE1			      = 0x110,
    GEN6_FORMAT_I16_UNORM				      = 0x111,
    GEN6_FORMAT_L16_UNORM				      = 0x112,
    GEN6_FORMAT_A16_UNORM				      = 0x113,
    GEN6_FORMAT_L8A8_UNORM				      = 0x114,
    GEN6_FORMAT_I16_FLOAT				      = 0x115,
    GEN6_FORMAT_L16_FLOAT				      = 0x116,
    GEN6_FORMAT_A16_FLOAT				      = 0x117,
    GEN6_FORMAT_L8A8_UNORM_SRGB				      = 0x118,
    GEN6_FORMAT_R5G5_SNORM_B6_UNORM			      = 0x119,
    GEN6_FORMAT_B5G5R5X1_UNORM				      = 0x11a,
    GEN6_FORMAT_B5G5R5X1_UNORM_SRGB			      = 0x11b,
    GEN6_FORMAT_R8G8_SSCALED				      = 0x11c,
    GEN6_FORMAT_R8G8_USCALED				      = 0x11d,
    GEN6_FORMAT_R16_SSCALED				      = 0x11e,
    GEN6_FORMAT_R16_USCALED				      = 0x11f,
    GEN6_FORMAT_P8A8_UNORM_PALETTE0			      = 0x122,
    GEN6_FORMAT_P8A8_UNORM_PALETTE1			      = 0x123,
    GEN6_FORMAT_A1B5G5R5_UNORM				      = 0x124,
    GEN6_FORMAT_A4B4G4R4_UNORM				      = 0x125,
    GEN6_FORMAT_L8A8_UINT				      = 0x126,
    GEN6_FORMAT_L8A8_SINT				      = 0x127,
    GEN6_FORMAT_R8_UNORM				      = 0x140,
    GEN6_FORMAT_R8_SNORM				      = 0x141,
    GEN6_FORMAT_R8_SINT					      = 0x142,
    GEN6_FORMAT_R8_UINT					      = 0x143,
    GEN6_FORMAT_A8_UNORM				      = 0x144,
    GEN6_FORMAT_I8_UNORM				      = 0x145,
    GEN6_FORMAT_L8_UNORM				      = 0x146,
    GEN6_FORMAT_P4A4_UNORM_PALETTE0			      = 0x147,
    GEN6_FORMAT_A4P4_UNORM_PALETTE0			      = 0x148,
    GEN6_FORMAT_R8_SSCALED				      = 0x149,
    GEN6_FORMAT_R8_USCALED				      = 0x14a,
    GEN6_FORMAT_P8_UNORM_PALETTE0			      = 0x14b,
    GEN6_FORMAT_L8_UNORM_SRGB				      = 0x14c,
    GEN6_FORMAT_P8_UNORM_PALETTE1			      = 0x14d,
    GEN6_FORMAT_P4A4_UNORM_PALETTE1			      = 0x14e,
    GEN6_FORMAT_A4P4_UNORM_PALETTE1			      = 0x14f,
    GEN6_FORMAT_Y8_UNORM				      = 0x150,
    GEN6_FORMAT_L8_UINT					      = 0x152,
    GEN6_FORMAT_L8_SINT					      = 0x153,
    GEN6_FORMAT_I8_UINT					      = 0x154,
    GEN6_FORMAT_I8_SINT					      = 0x155,
    GEN6_FORMAT_DXT1_RGB_SRGB				      = 0x180,
    GEN6_FORMAT_R1_UNORM				      = 0x181,
    GEN6_FORMAT_YCRCB_NORMAL				      = 0x182,
    GEN6_FORMAT_YCRCB_SWAPUVY				      = 0x183,
    GEN6_FORMAT_P2_UNORM_PALETTE0			      = 0x184,
    GEN6_FORMAT_P2_UNORM_PALETTE1			      = 0x185,
    GEN6_FORMAT_BC1_UNORM				      = 0x186,
    GEN6_FORMAT_BC2_UNORM				      = 0x187,
    GEN6_FORMAT_BC3_UNORM				      = 0x188,
    GEN6_FORMAT_BC4_UNORM				      = 0x189,
    GEN6_FORMAT_BC5_UNORM				      = 0x18a,
    GEN6_FORMAT_BC1_UNORM_SRGB				      = 0x18b,
    GEN6_FORMAT_BC2_UNORM_SRGB				      = 0x18c,
    GEN6_FORMAT_BC3_UNORM_SRGB				      = 0x18d,
    GEN6_FORMAT_MONO8					      = 0x18e,
    GEN6_FORMAT_YCRCB_SWAPUV				      = 0x18f,
    GEN6_FORMAT_YCRCB_SWAPY				      = 0x190,
    GEN6_FORMAT_DXT1_RGB				      = 0x191,
    GEN6_FORMAT_FXT1					      = 0x192,
    GEN6_FORMAT_R8G8B8_UNORM				      = 0x193,
    GEN6_FORMAT_R8G8B8_SNORM				      = 0x194,
    GEN6_FORMAT_R8G8B8_SSCALED				      = 0x195,
    GEN6_FORMAT_R8G8B8_USCALED				      = 0x196,
    GEN6_FORMAT_R64G64B64A64_FLOAT			      = 0x197,
    GEN6_FORMAT_R64G64B64_FLOAT				      = 0x198,
    GEN6_FORMAT_BC4_SNORM				      = 0x199,
    GEN6_FORMAT_BC5_SNORM				      = 0x19a,
    GEN6_FORMAT_R16G16B16_FLOAT				      = 0x19b,
    GEN6_FORMAT_R16G16B16_UNORM				      = 0x19c,
    GEN6_FORMAT_R16G16B16_SNORM				      = 0x19d,
    GEN6_FORMAT_R16G16B16_SSCALED			      = 0x19e,
    GEN6_FORMAT_R16G16B16_USCALED			      = 0x19f,
    GEN6_FORMAT_BC6H_SF16				      = 0x1a1,
    GEN6_FORMAT_BC7_UNORM				      = 0x1a2,
    GEN6_FORMAT_BC7_UNORM_SRGB				      = 0x1a3,
    GEN6_FORMAT_BC6H_UF16				      = 0x1a4,
    GEN6_FORMAT_PLANAR_420_8				      = 0x1a5,
    GEN6_FORMAT_R8G8B8_UNORM_SRGB			      = 0x1a8,
    GEN6_FORMAT_ETC1_RGB8				      = 0x1a9,
    GEN6_FORMAT_ETC2_RGB8				      = 0x1aa,
    GEN6_FORMAT_EAC_R11					      = 0x1ab,
    GEN6_FORMAT_EAC_RG11				      = 0x1ac,
    GEN6_FORMAT_EAC_SIGNED_R11				      = 0x1ad,
    GEN6_FORMAT_EAC_SIGNED_RG11				      = 0x1ae,
    GEN6_FORMAT_ETC2_SRGB8				      = 0x1af,
    GEN6_FORMAT_R16G16B16_UINT				      = 0x1b0,
    GEN6_FORMAT_R16G16B16_SINT				      = 0x1b1,
    GEN6_FORMAT_R32_SFIXED				      = 0x1b2,
    GEN6_FORMAT_R10G10B10A2_SNORM			      = 0x1b3,
    GEN6_FORMAT_R10G10B10A2_USCALED			      = 0x1b4,
    GEN6_FORMAT_R10G10B10A2_SSCALED			      = 0x1b5,
    GEN6_FORMAT_R10G10B10A2_SINT			      = 0x1b6,
    GEN6_FORMAT_B10G10R10A2_SNORM			      = 0x1b7,
    GEN6_FORMAT_B10G10R10A2_USCALED			      = 0x1b8,
    GEN6_FORMAT_B10G10R10A2_SSCALED			      = 0x1b9,
    GEN6_FORMAT_B10G10R10A2_UINT			      = 0x1ba,
    GEN6_FORMAT_B10G10R10A2_SINT			      = 0x1bb,
    GEN6_FORMAT_R64G64B64A64_PASSTHRU			      = 0x1bc,
    GEN6_FORMAT_R64G64B64_PASSTHRU			      = 0x1bd,
    GEN6_FORMAT_ETC2_RGB8_PTA				      = 0x1c0,
    GEN6_FORMAT_ETC2_SRGB8_PTA				      = 0x1c1,
    GEN6_FORMAT_ETC2_EAC_RGBA8				      = 0x1c2,
    GEN6_FORMAT_ETC2_EAC_SRGB8_A8			      = 0x1c3,
    GEN6_FORMAT_R8G8B8_UINT				      = 0x1c8,
    GEN6_FORMAT_R8G8B8_SINT				      = 0x1c9,
    GEN6_FORMAT_RAW					      = 0x1ff,
};

enum gen_surface_type {
    GEN6_SURFTYPE_1D					      = 0x0,
    GEN6_SURFTYPE_2D					      = 0x1,
    GEN6_SURFTYPE_3D					      = 0x2,
    GEN6_SURFTYPE_CUBE					      = 0x3,
    GEN6_SURFTYPE_BUFFER				      = 0x4,
    GEN7_SURFTYPE_STRBUF				      = 0x5,
    GEN6_SURFTYPE_NULL					      = 0x7,
};

enum gen_surface_tiling {
    GEN6_TILING_NONE					      = 0x0,
    GEN8_TILING_W					      = 0x1,
    GEN6_TILING_X					      = 0x2,
    GEN6_TILING_Y					      = 0x3,
};

enum gen_surface_clear_color {
    GEN7_CLEAR_COLOR_ZERO				      = 0x0,
    GEN7_CLEAR_COLOR_ONE				      = 0x1,
};

enum gen_surface_scs {
    GEN75_SCS_ZERO					      = 0x0,
    GEN75_SCS_ONE					      = 0x1,
    GEN75_SCS_RED					      = 0x4,
    GEN75_SCS_GREEN					      = 0x5,
    GEN75_SCS_BLUE					      = 0x6,
    GEN75_SCS_ALPHA					      = 0x7,
};

#define GEN6_SURFACE_STATE__SIZE				16

#define GEN6_SURFACE_DW0_TYPE__MASK				0xe0000000
#define GEN6_SURFACE_DW0_TYPE__SHIFT				29
#define GEN6_SURFACE_DW0_FORMAT__MASK				0x07fc0000
#define GEN6_SURFACE_DW0_FORMAT__SHIFT				18
#define GEN6_SURFACE_DW0_VSTRIDE				(0x1 << 12)
#define GEN6_SURFACE_DW0_VSTRIDE_OFFSET				(0x1 << 11)
#define GEN6_SURFACE_DW0_MIPLAYOUT__MASK			0x00000400
#define GEN6_SURFACE_DW0_MIPLAYOUT__SHIFT			10
#define GEN6_SURFACE_DW0_MIPLAYOUT_BELOW			(0x0 << 10)
#define GEN6_SURFACE_DW0_MIPLAYOUT_RIGHT			(0x1 << 10)
#define GEN6_SURFACE_DW0_CUBE_MAP_CORNER_MODE__MASK		0x00000200
#define GEN6_SURFACE_DW0_CUBE_MAP_CORNER_MODE__SHIFT		9
#define GEN6_SURFACE_DW0_CUBE_MAP_CORNER_MODE_REPLICATE		(0x0 << 9)
#define GEN6_SURFACE_DW0_CUBE_MAP_CORNER_MODE_AVERAGE		(0x1 << 9)
#define GEN6_SURFACE_DW0_RENDER_CACHE_RW			(0x1 << 8)
#define GEN6_SURFACE_DW0_MEDIA_BOUNDARY_PIXEL_MODE__MASK	0x000000c0
#define GEN6_SURFACE_DW0_MEDIA_BOUNDARY_PIXEL_MODE__SHIFT	6
#define GEN6_SURFACE_DW0_CUBE_FACE_ENABLES__MASK		0x0000003f
#define GEN6_SURFACE_DW0_CUBE_FACE_ENABLES__SHIFT		0


#define GEN6_SURFACE_DW2_HEIGHT__MASK				0xfff80000
#define GEN6_SURFACE_DW2_HEIGHT__SHIFT				19
#define GEN6_SURFACE_DW2_WIDTH__MASK				0x0007ffc0
#define GEN6_SURFACE_DW2_WIDTH__SHIFT				6
#define GEN6_SURFACE_DW2_MIP_COUNT_LOD__MASK			0x0000003c
#define GEN6_SURFACE_DW2_MIP_COUNT_LOD__SHIFT			2
#define GEN6_SURFACE_DW2_RTROTATE__MASK				0x00000003
#define GEN6_SURFACE_DW2_RTROTATE__SHIFT			0
#define GEN6_SURFACE_DW2_RTROTATE_0DEG				0x0
#define GEN6_SURFACE_DW2_RTROTATE_90DEG				0x1
#define GEN6_SURFACE_DW2_RTROTATE_270DEG			0x3

#define GEN6_SURFACE_DW3_DEPTH__MASK				0xffe00000
#define GEN6_SURFACE_DW3_DEPTH__SHIFT				21
#define GEN6_SURFACE_DW3_PITCH__MASK				0x000ffff8
#define GEN6_SURFACE_DW3_PITCH__SHIFT				3
#define GEN6_SURFACE_DW3_TILING__MASK				0x00000003
#define GEN6_SURFACE_DW3_TILING__SHIFT				0

#define GEN6_SURFACE_DW4_MIN_LOD__MASK				0xf0000000
#define GEN6_SURFACE_DW4_MIN_LOD__SHIFT				28
#define GEN6_SURFACE_DW4_MIN_ARRAY_ELEMENT__MASK		0x0ffe0000
#define GEN6_SURFACE_DW4_MIN_ARRAY_ELEMENT__SHIFT		17
#define GEN6_SURFACE_DW4_RT_VIEW_EXTENT__MASK			0x0001ff00
#define GEN6_SURFACE_DW4_RT_VIEW_EXTENT__SHIFT			8
#define GEN6_SURFACE_DW4_MULTISAMPLECOUNT__MASK			0x00000070
#define GEN6_SURFACE_DW4_MULTISAMPLECOUNT__SHIFT		4
#define GEN6_SURFACE_DW4_MULTISAMPLECOUNT_1			(0x0 << 4)
#define GEN6_SURFACE_DW4_MULTISAMPLECOUNT_4			(0x2 << 4)
#define GEN6_SURFACE_DW4_MSPOS_INDEX__MASK			0x00000007
#define GEN6_SURFACE_DW4_MSPOS_INDEX__SHIFT			0

#define GEN6_SURFACE_DW5_X_OFFSET__MASK				0xfe000000
#define GEN6_SURFACE_DW5_X_OFFSET__SHIFT			25
#define GEN6_SURFACE_DW5_X_OFFSET__SHR				2
#define GEN6_SURFACE_DW5_VALIGN__MASK				0x01000000
#define GEN6_SURFACE_DW5_VALIGN__SHIFT				24
#define GEN6_SURFACE_DW5_VALIGN_2				(0x0 << 24)
#define GEN6_SURFACE_DW5_VALIGN_4				(0x1 << 24)
#define GEN6_SURFACE_DW5_Y_OFFSET__MASK				0x00f00000
#define GEN6_SURFACE_DW5_Y_OFFSET__SHIFT			20
#define GEN6_SURFACE_DW5_Y_OFFSET__SHR				1
#define GEN6_SURFACE_DW5_MOCS__MASK				0x000f0000
#define GEN6_SURFACE_DW5_MOCS__SHIFT				16


#define GEN7_SURFACE_DW0_TYPE__MASK				0xe0000000
#define GEN7_SURFACE_DW0_TYPE__SHIFT				29
#define GEN7_SURFACE_DW0_IS_ARRAY				(0x1 << 28)
#define GEN7_SURFACE_DW0_FORMAT__MASK				0x07fc0000
#define GEN7_SURFACE_DW0_FORMAT__SHIFT				18
#define GEN7_SURFACE_DW0_VALIGN__MASK				0x00030000
#define GEN7_SURFACE_DW0_VALIGN__SHIFT				16
#define GEN7_SURFACE_DW0_VALIGN_2				(0x0 << 16)
#define GEN7_SURFACE_DW0_VALIGN_4				(0x1 << 16)
#define GEN8_SURFACE_DW0_VALIGN_8				(0x2 << 16)
#define GEN8_SURFACE_DW0_VALIGN_16				(0x3 << 16)
#define GEN7_SURFACE_DW0_HALIGN__MASK				0x00008000
#define GEN7_SURFACE_DW0_HALIGN__SHIFT				15
#define GEN7_SURFACE_DW0_HALIGN_4				(0x0 << 15)
#define GEN7_SURFACE_DW0_HALIGN_8				(0x1 << 15)
#define GEN7_SURFACE_DW0_TILING__MASK				0x00006000
#define GEN7_SURFACE_DW0_TILING__SHIFT				13
#define GEN7_SURFACE_DW0_VSTRIDE				(0x1 << 12)
#define GEN7_SURFACE_DW0_VSTRIDE_OFFSET				(0x1 << 11)
#define GEN7_SURFACE_DW0_ARYSPC__MASK				0x00000400
#define GEN7_SURFACE_DW0_ARYSPC__SHIFT				10
#define GEN7_SURFACE_DW0_ARYSPC_FULL				(0x0 << 10)
#define GEN7_SURFACE_DW0_ARYSPC_LOD0				(0x1 << 10)
#define GEN8_SURFACE_DW0_HALIGN__MASK				0x0000c000
#define GEN8_SURFACE_DW0_HALIGN__SHIFT				14
#define GEN8_SURFACE_DW0_HALIGN_4				(0x1 << 14)
#define GEN8_SURFACE_DW0_HALIGN_8				(0x2 << 14)
#define GEN8_SURFACE_DW0_HALIGN_16				(0x3 << 14)
#define GEN8_SURFACE_DW0_TILING__MASK				0x00003000
#define GEN8_SURFACE_DW0_TILING__SHIFT				12
#define GEN8_SURFACE_DW0_VSTRIDE				(0x1 << 11)
#define GEN8_SURFACE_DW0_VSTRIDE_OFFSET				(0x1 << 10)
#define GEN8_SURFACE_DW0_SAMPLER_L2_BYPASS_DISABLE		(0x1 << 9)
#define GEN7_SURFACE_DW0_RENDER_CACHE_RW			(0x1 << 8)
#define GEN7_SURFACE_DW0_MEDIA_BOUNDARY_PIXEL_MODE__MASK	0x000000c0
#define GEN7_SURFACE_DW0_MEDIA_BOUNDARY_PIXEL_MODE__SHIFT	6
#define GEN7_SURFACE_DW0_CUBE_FACE_ENABLES__MASK		0x0000003f
#define GEN7_SURFACE_DW0_CUBE_FACE_ENABLES__SHIFT		0


#define GEN8_SURFACE_DW1_MOCS__MASK				0x7f000000
#define GEN8_SURFACE_DW1_MOCS__SHIFT				24
#define GEN8_SURFACE_DW1_BASE_LOD__MASK				0x00f80000
#define GEN8_SURFACE_DW1_BASE_LOD__SHIFT			19
#define GEN8_SURFACE_DW1_QPITCH__MASK				0x00007fff
#define GEN8_SURFACE_DW1_QPITCH__SHIFT				0
#define GEN8_SURFACE_DW1_QPITCH__SHR				2

#define GEN7_SURFACE_DW2_HEIGHT__MASK				0x3fff0000
#define GEN7_SURFACE_DW2_HEIGHT__SHIFT				16
#define GEN7_SURFACE_DW2_WIDTH__MASK				0x00003fff
#define GEN7_SURFACE_DW2_WIDTH__SHIFT				0

#define GEN7_SURFACE_DW3_DEPTH__MASK				0xffe00000
#define GEN7_SURFACE_DW3_DEPTH__SHIFT				21
#define GEN75_SURFACE_DW3_INTEGER_SURFACE_FORMAT__MASK		0x001c0000
#define GEN75_SURFACE_DW3_INTEGER_SURFACE_FORMAT__SHIFT		18
#define GEN7_SURFACE_DW3_PITCH__MASK				0x0003ffff
#define GEN7_SURFACE_DW3_PITCH__SHIFT				0

#define GEN7_SURFACE_DW4_RTROTATE__MASK				0x60000000
#define GEN7_SURFACE_DW4_RTROTATE__SHIFT			29
#define GEN7_SURFACE_DW4_RTROTATE_0DEG				(0x0 << 29)
#define GEN7_SURFACE_DW4_RTROTATE_90DEG				(0x1 << 29)
#define GEN7_SURFACE_DW4_RTROTATE_270DEG			(0x3 << 29)
#define GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT__MASK		0x1ffc0000
#define GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT__SHIFT		18
#define GEN7_SURFACE_DW4_RT_VIEW_EXTENT__MASK			0x0003ff80
#define GEN7_SURFACE_DW4_RT_VIEW_EXTENT__SHIFT			7
#define GEN7_SURFACE_DW4_MSFMT__MASK				0x00000040
#define GEN7_SURFACE_DW4_MSFMT__SHIFT				6
#define GEN7_SURFACE_DW4_MSFMT_MSS				(0x0 << 6)
#define GEN7_SURFACE_DW4_MSFMT_DEPTH_STENCIL			(0x1 << 6)
#define GEN7_SURFACE_DW4_MULTISAMPLECOUNT__MASK			0x00000038
#define GEN7_SURFACE_DW4_MULTISAMPLECOUNT__SHIFT		3
#define GEN7_SURFACE_DW4_MULTISAMPLECOUNT_1			(0x0 << 3)
#define GEN8_SURFACE_DW4_MULTISAMPLECOUNT_2			(0x1 << 3)
#define GEN7_SURFACE_DW4_MULTISAMPLECOUNT_4			(0x2 << 3)
#define GEN7_SURFACE_DW4_MULTISAMPLECOUNT_8			(0x3 << 3)
#define GEN7_SURFACE_DW4_MSPOS_INDEX__MASK			0x00000007
#define GEN7_SURFACE_DW4_MSPOS_INDEX__SHIFT			0
#define GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT_STRBUF__MASK		0x07ffffff
#define GEN7_SURFACE_DW4_MIN_ARRAY_ELEMENT_STRBUF__SHIFT	0

#define GEN7_SURFACE_DW5_X_OFFSET__MASK				0xfe000000
#define GEN7_SURFACE_DW5_X_OFFSET__SHIFT			25
#define GEN7_SURFACE_DW5_X_OFFSET__SHR				2
#define GEN7_SURFACE_DW5_Y_OFFSET__MASK				0x00f00000
#define GEN7_SURFACE_DW5_Y_OFFSET__SHIFT			20
#define GEN7_SURFACE_DW5_Y_OFFSET__SHR				1
#define GEN7_SURFACE_DW5_MOCS__MASK				0x000f0000
#define GEN7_SURFACE_DW5_MOCS__SHIFT				16
#define GEN8_SURFACE_DW5_Y_OFFSET__MASK				0x00e00000
#define GEN8_SURFACE_DW5_Y_OFFSET__SHIFT			21
#define GEN8_SURFACE_DW5_Y_OFFSET__SHR				1
#define GEN8_SURFACE_DW5_CUBE_EWA_DISABLE			(0x1 << 20)
#define GEN8_SURFACE_DW5_COHERENCY_TYPE__MASK			0x00004000
#define GEN8_SURFACE_DW5_COHERENCY_TYPE__SHIFT			14
#define GEN8_SURFACE_DW5_COHERENCY_TYPE_GPU			(0x0 << 14)
#define GEN8_SURFACE_DW5_COHERENCY_TYPE_IA			(0x1 << 14)
#define GEN7_SURFACE_DW5_MIN_LOD__MASK				0x000000f0
#define GEN7_SURFACE_DW5_MIN_LOD__SHIFT				4
#define GEN7_SURFACE_DW5_MIP_COUNT_LOD__MASK			0x0000000f
#define GEN7_SURFACE_DW5_MIP_COUNT_LOD__SHIFT			0

#define GEN8_SURFACE_DW6_SEPARATE_UV_ENABLE			(0x1 << 31)
#define GEN7_SURFACE_DW6_UV_X_OFFSET__MASK			0x3fff0000
#define GEN7_SURFACE_DW6_UV_X_OFFSET__SHIFT			16
#define GEN7_SURFACE_DW6_UV_Y_OFFSET__MASK			0x00003fff
#define GEN7_SURFACE_DW6_UV_Y_OFFSET__SHIFT			0
#define GEN7_SURFACE_DW6_APPEND_COUNTER_ADDR__MASK		0xffffffc0
#define GEN7_SURFACE_DW6_APPEND_COUNTER_ADDR__SHIFT		6
#define GEN7_SURFACE_DW6_APPEND_COUNTER_ADDR__SHR		6
#define GEN7_SURFACE_DW6_MCS_ADDR__MASK				0xfffff000
#define GEN7_SURFACE_DW6_MCS_ADDR__SHIFT			12
#define GEN7_SURFACE_DW6_MCS_ADDR__SHR				12
#define GEN8_SURFACE_DW6_AUX_QPITCH__MASK			0x7fff0000
#define GEN8_SURFACE_DW6_AUX_QPITCH__SHIFT			16
#define GEN8_SURFACE_DW6_AUX_QPITCH__SHR			2
#define GEN7_SURFACE_DW6_AUX_PITCH__MASK			0x00000ff8
#define GEN7_SURFACE_DW6_AUX_PITCH__SHIFT			3
#define GEN7_SURFACE_DW6_AUX__MASK				0x00000007
#define GEN7_SURFACE_DW6_AUX__SHIFT				0
#define GEN7_SURFACE_DW6_AUX_NONE				0x0
#define GEN7_SURFACE_DW6_AUX_MCS				0x1
#define GEN7_SURFACE_DW6_AUX_APPEND				0x2
#define GEN8_SURFACE_DW6_AUX_HIZ				0x3

#define GEN7_SURFACE_DW7_CC_R__MASK				0x80000000
#define GEN7_SURFACE_DW7_CC_R__SHIFT				31
#define GEN7_SURFACE_DW7_CC_G__MASK				0x40000000
#define GEN7_SURFACE_DW7_CC_G__SHIFT				30
#define GEN7_SURFACE_DW7_CC_B__MASK				0x20000000
#define GEN7_SURFACE_DW7_CC_B__SHIFT				29
#define GEN7_SURFACE_DW7_CC_A__MASK				0x10000000
#define GEN7_SURFACE_DW7_CC_A__SHIFT				28
#define GEN75_SURFACE_DW7_SCS__MASK				0x0fff0000
#define GEN75_SURFACE_DW7_SCS__SHIFT				16
#define GEN75_SURFACE_DW7_SCS_R__MASK				0x0e000000
#define GEN75_SURFACE_DW7_SCS_R__SHIFT				25
#define GEN75_SURFACE_DW7_SCS_G__MASK				0x01c00000
#define GEN75_SURFACE_DW7_SCS_G__SHIFT				22
#define GEN75_SURFACE_DW7_SCS_B__MASK				0x00380000
#define GEN75_SURFACE_DW7_SCS_B__SHIFT				19
#define GEN75_SURFACE_DW7_SCS_A__MASK				0x00070000
#define GEN75_SURFACE_DW7_SCS_A__SHIFT				16
#define GEN7_SURFACE_DW7_RES_MIN_LOD__MASK			0x00000fff
#define GEN7_SURFACE_DW7_RES_MIN_LOD__SHIFT			0




#define GEN8_SURFACE_DW11_V_X_OFFSET__MASK			0x3fff0000
#define GEN8_SURFACE_DW11_V_X_OFFSET__SHIFT			16
#define GEN8_SURFACE_DW11_V_Y_OFFSET__MASK			0x00003fff
#define GEN8_SURFACE_DW11_V_Y_OFFSET__SHIFT			0
#define GEN8_SURFACE_DW11_AUX_ADDR_HI__MASK			0xffffffff
#define GEN8_SURFACE_DW11_AUX_ADDR_HI__SHIFT			0





#define GEN6_BINDING_TABLE_STATE__SIZE				256

#define GEN6_BINDING_TABLE_DW_ADDR__MASK			0xffffffe0
#define GEN6_BINDING_TABLE_DW_ADDR__SHIFT			5
#define GEN6_BINDING_TABLE_DW_ADDR__SHR				5

#define GEN8_BINDING_TABLE_DW_ADDR__MASK			0xffffffc0
#define GEN8_BINDING_TABLE_DW_ADDR__SHIFT			6
#define GEN8_BINDING_TABLE_DW_ADDR__SHR				6


#endif /* GEN_RENDER_SURFACE_XML */
