summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_defines.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_defines.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_defines.h1677
1 files changed, 0 insertions, 1677 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h
deleted file mode 100644
index 82cc88b2d66..00000000000
--- a/src/mesa/drivers/dri/i965/brw_defines.h
+++ /dev/null
@@ -1,1677 +0,0 @@
-/*
- Copyright (C) Intel Corp. 2006. All Rights Reserved.
- Intel funded Tungsten Graphics to
- develop this 3D driver.
-
- 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.
-
- **********************************************************************/
- /*
- * Authors:
- * Keith Whitwell <keithw@vmware.com>
- */
-
-#ifndef BRW_DEFINES_H
-#define BRW_DEFINES_H
-
-#include "util/macros.h"
-
-#define INTEL_MASK(high, low) (((1u<<((high)-(low)+1))-1)<<(low))
-/* Using the GNU statement expression extension */
-#define SET_FIELD(value, field) \
- ({ \
- uint32_t fieldval = (uint32_t)(value) << field ## _SHIFT; \
- assert((fieldval & ~ field ## _MASK) == 0); \
- fieldval & field ## _MASK; \
- })
-
-#define GET_BITS(data, high, low) ((data & INTEL_MASK((high), (low))) >> (low))
-#define GET_FIELD(word, field) (((word) & field ## _MASK) >> field ## _SHIFT)
-
-/**
- * For use with masked MMIO registers where the upper 16 bits control which
- * of the lower bits are committed to the register.
- */
-#define REG_MASK(value) ((value) << 16)
-
-/* 3D state:
- */
-#define CMD_3D_PRIM 0x7b00 /* 3DPRIMITIVE */
-/* DW0 */
-# define GFX4_3DPRIM_TOPOLOGY_TYPE_SHIFT 10
-# define GFX4_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 15)
-# define GFX4_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 15)
-# define GFX7_3DPRIM_INDIRECT_PARAMETER_ENABLE (1 << 10)
-# define GFX7_3DPRIM_PREDICATE_ENABLE (1 << 8)
-/* DW1 */
-# define GFX7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8)
-# define GFX7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8)
-
-#define BRW_ANISORATIO_2 0
-#define BRW_ANISORATIO_4 1
-#define BRW_ANISORATIO_6 2
-#define BRW_ANISORATIO_8 3
-#define BRW_ANISORATIO_10 4
-#define BRW_ANISORATIO_12 5
-#define BRW_ANISORATIO_14 6
-#define BRW_ANISORATIO_16 7
-
-#define BRW_BLENDFACTOR_ONE 0x1
-#define BRW_BLENDFACTOR_SRC_COLOR 0x2
-#define BRW_BLENDFACTOR_SRC_ALPHA 0x3
-#define BRW_BLENDFACTOR_DST_ALPHA 0x4
-#define BRW_BLENDFACTOR_DST_COLOR 0x5
-#define BRW_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6
-#define BRW_BLENDFACTOR_CONST_COLOR 0x7
-#define BRW_BLENDFACTOR_CONST_ALPHA 0x8
-#define BRW_BLENDFACTOR_SRC1_COLOR 0x9
-#define BRW_BLENDFACTOR_SRC1_ALPHA 0x0A
-#define BRW_BLENDFACTOR_ZERO 0x11
-#define BRW_BLENDFACTOR_INV_SRC_COLOR 0x12
-#define BRW_BLENDFACTOR_INV_SRC_ALPHA 0x13
-#define BRW_BLENDFACTOR_INV_DST_ALPHA 0x14
-#define BRW_BLENDFACTOR_INV_DST_COLOR 0x15
-#define BRW_BLENDFACTOR_INV_CONST_COLOR 0x17
-#define BRW_BLENDFACTOR_INV_CONST_ALPHA 0x18
-#define BRW_BLENDFACTOR_INV_SRC1_COLOR 0x19
-#define BRW_BLENDFACTOR_INV_SRC1_ALPHA 0x1A
-
-#define BRW_BLENDFUNCTION_ADD 0
-#define BRW_BLENDFUNCTION_SUBTRACT 1
-#define BRW_BLENDFUNCTION_REVERSE_SUBTRACT 2
-#define BRW_BLENDFUNCTION_MIN 3
-#define BRW_BLENDFUNCTION_MAX 4
-
-#define BRW_ALPHATEST_FORMAT_UNORM8 0
-#define BRW_ALPHATEST_FORMAT_FLOAT32 1
-
-#define BRW_CHROMAKEY_KILL_ON_ANY_MATCH 0
-#define BRW_CHROMAKEY_REPLACE_BLACK 1
-
-#define BRW_CLIP_API_OGL 0
-#define BRW_CLIP_API_DX 1
-
-#define BRW_CLIP_NDCSPACE 0
-#define BRW_CLIP_SCREENSPACE 1
-
-#define BRW_COMPAREFUNCTION_ALWAYS 0
-#define BRW_COMPAREFUNCTION_NEVER 1
-#define BRW_COMPAREFUNCTION_LESS 2
-#define BRW_COMPAREFUNCTION_EQUAL 3
-#define BRW_COMPAREFUNCTION_LEQUAL 4
-#define BRW_COMPAREFUNCTION_GREATER 5
-#define BRW_COMPAREFUNCTION_NOTEQUAL 6
-#define BRW_COMPAREFUNCTION_GEQUAL 7
-
-#define BRW_COVERAGE_PIXELS_HALF 0
-#define BRW_COVERAGE_PIXELS_1 1
-#define BRW_COVERAGE_PIXELS_2 2
-#define BRW_COVERAGE_PIXELS_4 3
-
-#define BRW_CULLMODE_BOTH 0
-#define BRW_CULLMODE_NONE 1
-#define BRW_CULLMODE_FRONT 2
-#define BRW_CULLMODE_BACK 3
-
-#define BRW_DEFAULTCOLOR_R8G8B8A8_UNORM 0
-#define BRW_DEFAULTCOLOR_R32G32B32A32_FLOAT 1
-
-#define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT 0
-#define BRW_DEPTHFORMAT_D32_FLOAT 1
-#define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT 2
-#define BRW_DEPTHFORMAT_D24_UNORM_X8_UINT 3 /* GFX5 */
-#define BRW_DEPTHFORMAT_D16_UNORM 5
-
-#define BRW_FLOATING_POINT_IEEE_754 0
-#define BRW_FLOATING_POINT_NON_IEEE_754 1
-
-#define BRW_FRONTWINDING_CW 0
-#define BRW_FRONTWINDING_CCW 1
-
-#define BRW_CUT_INDEX_ENABLE (1 << 10)
-
-#define BRW_INDEX_BYTE 0
-#define BRW_INDEX_WORD 1
-#define BRW_INDEX_DWORD 2
-
-#define BRW_LOGICOPFUNCTION_CLEAR 0
-#define BRW_LOGICOPFUNCTION_NOR 1
-#define BRW_LOGICOPFUNCTION_AND_INVERTED 2
-#define BRW_LOGICOPFUNCTION_COPY_INVERTED 3
-#define BRW_LOGICOPFUNCTION_AND_REVERSE 4
-#define BRW_LOGICOPFUNCTION_INVERT 5
-#define BRW_LOGICOPFUNCTION_XOR 6
-#define BRW_LOGICOPFUNCTION_NAND 7
-#define BRW_LOGICOPFUNCTION_AND 8
-#define BRW_LOGICOPFUNCTION_EQUIV 9
-#define BRW_LOGICOPFUNCTION_NOOP 10
-#define BRW_LOGICOPFUNCTION_OR_INVERTED 11
-#define BRW_LOGICOPFUNCTION_COPY 12
-#define BRW_LOGICOPFUNCTION_OR_REVERSE 13
-#define BRW_LOGICOPFUNCTION_OR 14
-#define BRW_LOGICOPFUNCTION_SET 15
-
-#define BRW_MAPFILTER_NEAREST 0x0
-#define BRW_MAPFILTER_LINEAR 0x1
-#define BRW_MAPFILTER_ANISOTROPIC 0x2
-
-#define BRW_MIPFILTER_NONE 0
-#define BRW_MIPFILTER_NEAREST 1
-#define BRW_MIPFILTER_LINEAR 3
-
-#define BRW_ADDRESS_ROUNDING_ENABLE_U_MAG 0x20
-#define BRW_ADDRESS_ROUNDING_ENABLE_U_MIN 0x10
-#define BRW_ADDRESS_ROUNDING_ENABLE_V_MAG 0x08
-#define BRW_ADDRESS_ROUNDING_ENABLE_V_MIN 0x04
-#define BRW_ADDRESS_ROUNDING_ENABLE_R_MAG 0x02
-#define BRW_ADDRESS_ROUNDING_ENABLE_R_MIN 0x01
-
-#define BRW_PREFILTER_ALWAYS 0x0
-#define BRW_PREFILTER_NEVER 0x1
-#define BRW_PREFILTER_LESS 0x2
-#define BRW_PREFILTER_EQUAL 0x3
-#define BRW_PREFILTER_LEQUAL 0x4
-#define BRW_PREFILTER_GREATER 0x5
-#define BRW_PREFILTER_NOTEQUAL 0x6
-#define BRW_PREFILTER_GEQUAL 0x7
-
-#define BRW_PROVOKING_VERTEX_0 0
-#define BRW_PROVOKING_VERTEX_1 1
-#define BRW_PROVOKING_VERTEX_2 2
-
-#define BRW_RASTRULE_UPPER_LEFT 0
-#define BRW_RASTRULE_UPPER_RIGHT 1
-/* These are listed as "Reserved, but not seen as useful"
- * in Intel documentation (page 212, "Point Rasterization Rule",
- * section 7.4 "SF Pipeline State Summary", of document
- * "IntelĀ® 965 Express Chipset Family and IntelĀ® G35 Express
- * Chipset Graphics Controller Programmer's Reference Manual,
- * Volume 2: 3D/Media", Revision 1.0b as of January 2008,
- * available at
- * https://01.org/linuxgraphics/documentation/hardware-specification-prms
- * at the time of this writing).
- *
- * These appear to be supported on at least some
- * i965-family devices, and the BRW_RASTRULE_LOWER_RIGHT
- * is useful when using OpenGL to render to a FBO
- * (which has the pixel coordinate Y orientation inverted
- * with respect to the normal OpenGL pixel coordinate system).
- */
-#define BRW_RASTRULE_LOWER_LEFT 2
-#define BRW_RASTRULE_LOWER_RIGHT 3
-
-#define BRW_RENDERTARGET_CLAMPRANGE_UNORM 0
-#define BRW_RENDERTARGET_CLAMPRANGE_SNORM 1
-#define BRW_RENDERTARGET_CLAMPRANGE_FORMAT 2
-
-#define BRW_STENCILOP_KEEP 0
-#define BRW_STENCILOP_ZERO 1
-#define BRW_STENCILOP_REPLACE 2
-#define BRW_STENCILOP_INCRSAT 3
-#define BRW_STENCILOP_DECRSAT 4
-#define BRW_STENCILOP_INCR 5
-#define BRW_STENCILOP_DECR 6
-#define BRW_STENCILOP_INVERT 7
-
-/* Surface state DW0 */
-#define GFX8_SURFACE_IS_ARRAY (1 << 28)
-#define GFX8_SURFACE_VALIGN_4 (1 << 16)
-#define GFX8_SURFACE_VALIGN_8 (2 << 16)
-#define GFX8_SURFACE_VALIGN_16 (3 << 16)
-#define GFX8_SURFACE_HALIGN_4 (1 << 14)
-#define GFX8_SURFACE_HALIGN_8 (2 << 14)
-#define GFX8_SURFACE_HALIGN_16 (3 << 14)
-#define GFX8_SURFACE_TILING_NONE (0 << 12)
-#define GFX8_SURFACE_TILING_W (1 << 12)
-#define GFX8_SURFACE_TILING_X (2 << 12)
-#define GFX8_SURFACE_TILING_Y (3 << 12)
-#define GFX8_SURFACE_SAMPLER_L2_BYPASS_DISABLE (1 << 9)
-#define BRW_SURFACE_RC_READ_WRITE (1 << 8)
-#define BRW_SURFACE_MIPLAYOUT_SHIFT 10
-#define BRW_SURFACE_MIPMAPLAYOUT_BELOW 0
-#define BRW_SURFACE_MIPMAPLAYOUT_RIGHT 1
-#define BRW_SURFACE_CUBEFACE_ENABLES 0x3f
-#define BRW_SURFACE_BLEND_ENABLED (1 << 13)
-#define BRW_SURFACE_WRITEDISABLE_B_SHIFT 14
-#define BRW_SURFACE_WRITEDISABLE_G_SHIFT 15
-#define BRW_SURFACE_WRITEDISABLE_R_SHIFT 16
-#define BRW_SURFACE_WRITEDISABLE_A_SHIFT 17
-
-#define GFX9_SURFACE_ASTC_HDR_FORMAT_BIT 0x100
-
-#define BRW_SURFACE_FORMAT_SHIFT 18
-#define BRW_SURFACE_FORMAT_MASK INTEL_MASK(26, 18)
-
-#define BRW_SURFACERETURNFORMAT_FLOAT32 0
-#define BRW_SURFACERETURNFORMAT_S1 1
-
-#define BRW_SURFACE_TYPE_SHIFT 29
-#define BRW_SURFACE_TYPE_MASK INTEL_MASK(31, 29)
-#define BRW_SURFACE_1D 0
-#define BRW_SURFACE_2D 1
-#define BRW_SURFACE_3D 2
-#define BRW_SURFACE_CUBE 3
-#define BRW_SURFACE_BUFFER 4
-#define BRW_SURFACE_NULL 7
-
-#define GFX7_SURFACE_IS_ARRAY (1 << 28)
-#define GFX7_SURFACE_VALIGN_2 (0 << 16)
-#define GFX7_SURFACE_VALIGN_4 (1 << 16)
-#define GFX7_SURFACE_HALIGN_4 (0 << 15)
-#define GFX7_SURFACE_HALIGN_8 (1 << 15)
-#define GFX7_SURFACE_TILING_NONE (0 << 13)
-#define GFX7_SURFACE_TILING_X (2 << 13)
-#define GFX7_SURFACE_TILING_Y (3 << 13)
-#define GFX7_SURFACE_ARYSPC_FULL (0 << 10)
-#define GFX7_SURFACE_ARYSPC_LOD0 (1 << 10)
-
-/* Surface state DW1 */
-#define GFX8_SURFACE_MOCS_SHIFT 24
-#define GFX8_SURFACE_MOCS_MASK INTEL_MASK(30, 24)
-#define GFX8_SURFACE_QPITCH_SHIFT 0
-#define GFX8_SURFACE_QPITCH_MASK INTEL_MASK(14, 0)
-
-/* Surface state DW2 */
-#define BRW_SURFACE_HEIGHT_SHIFT 19
-#define BRW_SURFACE_HEIGHT_MASK INTEL_MASK(31, 19)
-#define BRW_SURFACE_WIDTH_SHIFT 6
-#define BRW_SURFACE_WIDTH_MASK INTEL_MASK(18, 6)
-#define BRW_SURFACE_LOD_SHIFT 2
-#define BRW_SURFACE_LOD_MASK INTEL_MASK(5, 2)
-#define GFX7_SURFACE_HEIGHT_SHIFT 16
-#define GFX7_SURFACE_HEIGHT_MASK INTEL_MASK(29, 16)
-#define GFX7_SURFACE_WIDTH_SHIFT 0
-#define GFX7_SURFACE_WIDTH_MASK INTEL_MASK(13, 0)
-
-/* Surface state DW3 */
-#define BRW_SURFACE_DEPTH_SHIFT 21
-#define BRW_SURFACE_DEPTH_MASK INTEL_MASK(31, 21)
-#define BRW_SURFACE_PITCH_SHIFT 3
-#define BRW_SURFACE_PITCH_MASK INTEL_MASK(19, 3)
-#define BRW_SURFACE_TILED (1 << 1)
-#define BRW_SURFACE_TILED_Y (1 << 0)
-#define HSW_SURFACE_IS_INTEGER_FORMAT (1 << 18)
-
-/* Surface state DW4 */
-#define BRW_SURFACE_MIN_LOD_SHIFT 28
-#define BRW_SURFACE_MIN_LOD_MASK INTEL_MASK(31, 28)
-#define BRW_SURFACE_MIN_ARRAY_ELEMENT_SHIFT 17
-#define BRW_SURFACE_MIN_ARRAY_ELEMENT_MASK INTEL_MASK(27, 17)
-#define BRW_SURFACE_RENDER_TARGET_VIEW_EXTENT_SHIFT 8
-#define BRW_SURFACE_RENDER_TARGET_VIEW_EXTENT_MASK INTEL_MASK(16, 8)
-#define BRW_SURFACE_MULTISAMPLECOUNT_1 (0 << 4)
-#define BRW_SURFACE_MULTISAMPLECOUNT_4 (2 << 4)
-#define GFX7_SURFACE_MULTISAMPLECOUNT_1 (0 << 3)
-#define GFX8_SURFACE_MULTISAMPLECOUNT_2 (1 << 3)
-#define GFX7_SURFACE_MULTISAMPLECOUNT_4 (2 << 3)
-#define GFX7_SURFACE_MULTISAMPLECOUNT_8 (3 << 3)
-#define GFX8_SURFACE_MULTISAMPLECOUNT_16 (4 << 3)
-#define GFX7_SURFACE_MSFMT_MSS (0 << 6)
-#define GFX7_SURFACE_MSFMT_DEPTH_STENCIL (1 << 6)
-#define GFX7_SURFACE_MIN_ARRAY_ELEMENT_SHIFT 18
-#define GFX7_SURFACE_MIN_ARRAY_ELEMENT_MASK INTEL_MASK(28, 18)
-#define GFX7_SURFACE_RENDER_TARGET_VIEW_EXTENT_SHIFT 7
-#define GFX7_SURFACE_RENDER_TARGET_VIEW_EXTENT_MASK INTEL_MASK(17, 7)
-
-/* Surface state DW5 */
-#define BRW_SURFACE_X_OFFSET_SHIFT 25
-#define BRW_SURFACE_X_OFFSET_MASK INTEL_MASK(31, 25)
-#define BRW_SURFACE_VERTICAL_ALIGN_ENABLE (1 << 24)
-#define BRW_SURFACE_Y_OFFSET_SHIFT 20
-#define BRW_SURFACE_Y_OFFSET_MASK INTEL_MASK(23, 20)
-#define GFX7_SURFACE_MIN_LOD_SHIFT 4
-#define GFX7_SURFACE_MIN_LOD_MASK INTEL_MASK(7, 4)
-#define GFX8_SURFACE_Y_OFFSET_SHIFT 21
-#define GFX8_SURFACE_Y_OFFSET_MASK INTEL_MASK(23, 21)
-
-#define GFX7_SURFACE_MOCS_SHIFT 16
-#define GFX7_SURFACE_MOCS_MASK INTEL_MASK(19, 16)
-
-#define GFX9_SURFACE_MIP_TAIL_START_LOD_SHIFT 8
-#define GFX9_SURFACE_MIP_TAIL_START_LOD_MASK INTEL_MASK(11, 8)
-
-/* Surface state DW6 */
-#define GFX7_SURFACE_MCS_ENABLE (1 << 0)
-#define GFX7_SURFACE_MCS_PITCH_SHIFT 3
-#define GFX7_SURFACE_MCS_PITCH_MASK INTEL_MASK(11, 3)
-#define GFX8_SURFACE_AUX_QPITCH_SHIFT 16
-#define GFX8_SURFACE_AUX_QPITCH_MASK INTEL_MASK(30, 16)
-#define GFX8_SURFACE_AUX_PITCH_SHIFT 3
-#define GFX8_SURFACE_AUX_PITCH_MASK INTEL_MASK(11, 3)
-#define GFX8_SURFACE_AUX_MODE_MASK INTEL_MASK(2, 0)
-
-#define GFX8_SURFACE_AUX_MODE_NONE 0
-#define GFX8_SURFACE_AUX_MODE_MCS 1
-#define GFX8_SURFACE_AUX_MODE_APPEND 2
-#define GFX8_SURFACE_AUX_MODE_HIZ 3
-#define GFX9_SURFACE_AUX_MODE_CCS_E 5
-
-/* Surface state DW7 */
-#define GFX9_SURFACE_RT_COMPRESSION_SHIFT 30
-#define GFX9_SURFACE_RT_COMPRESSION_MASK INTEL_MASK(30, 30)
-#define GFX7_SURFACE_CLEAR_COLOR_SHIFT 28
-#define GFX7_SURFACE_SCS_R_SHIFT 25
-#define GFX7_SURFACE_SCS_R_MASK INTEL_MASK(27, 25)
-#define GFX7_SURFACE_SCS_G_SHIFT 22
-#define GFX7_SURFACE_SCS_G_MASK INTEL_MASK(24, 22)
-#define GFX7_SURFACE_SCS_B_SHIFT 19
-#define GFX7_SURFACE_SCS_B_MASK INTEL_MASK(21, 19)
-#define GFX7_SURFACE_SCS_A_SHIFT 16
-#define GFX7_SURFACE_SCS_A_MASK INTEL_MASK(18, 16)
-
-/* The actual swizzle values/what channel to use */
-#define HSW_SCS_ZERO 0
-#define HSW_SCS_ONE 1
-#define HSW_SCS_RED 4
-#define HSW_SCS_GREEN 5
-#define HSW_SCS_BLUE 6
-#define HSW_SCS_ALPHA 7
-
-/* SAMPLER_STATE DW0 */
-#define BRW_SAMPLER_DISABLE (1 << 31)
-#define BRW_SAMPLER_LOD_PRECLAMP_ENABLE (1 << 28)
-#define GFX6_SAMPLER_MIN_MAG_NOT_EQUAL (1 << 27) /* Gfx6 only */
-#define BRW_SAMPLER_BASE_MIPLEVEL_MASK INTEL_MASK(26, 22)
-#define BRW_SAMPLER_BASE_MIPLEVEL_SHIFT 22
-#define BRW_SAMPLER_MIP_FILTER_MASK INTEL_MASK(21, 20)
-#define BRW_SAMPLER_MIP_FILTER_SHIFT 20
-#define BRW_SAMPLER_MAG_FILTER_MASK INTEL_MASK(19, 17)
-#define BRW_SAMPLER_MAG_FILTER_SHIFT 17
-#define BRW_SAMPLER_MIN_FILTER_MASK INTEL_MASK(16, 14)
-#define BRW_SAMPLER_MIN_FILTER_SHIFT 14
-#define GFX4_SAMPLER_LOD_BIAS_MASK INTEL_MASK(13, 3)
-#define GFX4_SAMPLER_LOD_BIAS_SHIFT 3
-#define GFX4_SAMPLER_SHADOW_FUNCTION_MASK INTEL_MASK(2, 0)
-#define GFX4_SAMPLER_SHADOW_FUNCTION_SHIFT 0
-
-#define GFX7_SAMPLER_LOD_BIAS_MASK INTEL_MASK(13, 1)
-#define GFX7_SAMPLER_LOD_BIAS_SHIFT 1
-#define GFX7_SAMPLER_EWA_ANISOTROPIC_ALGORITHM (1 << 0)
-
-/* SAMPLER_STATE DW1 */
-#define GFX4_SAMPLER_MIN_LOD_MASK INTEL_MASK(31, 22)
-#define GFX4_SAMPLER_MIN_LOD_SHIFT 22
-#define GFX4_SAMPLER_MAX_LOD_MASK INTEL_MASK(21, 12)
-#define GFX4_SAMPLER_MAX_LOD_SHIFT 12
-#define GFX4_SAMPLER_CUBE_CONTROL_OVERRIDE (1 << 9)
-/* Wrap modes are in DW1 on Gfx4-6 and DW3 on Gfx7+ */
-#define BRW_SAMPLER_TCX_WRAP_MODE_MASK INTEL_MASK(8, 6)
-#define BRW_SAMPLER_TCX_WRAP_MODE_SHIFT 6
-#define BRW_SAMPLER_TCY_WRAP_MODE_MASK INTEL_MASK(5, 3)
-#define BRW_SAMPLER_TCY_WRAP_MODE_SHIFT 3
-#define BRW_SAMPLER_TCZ_WRAP_MODE_MASK INTEL_MASK(2, 0)
-#define BRW_SAMPLER_TCZ_WRAP_MODE_SHIFT 0
-
-#define GFX7_SAMPLER_MIN_LOD_MASK INTEL_MASK(31, 20)
-#define GFX7_SAMPLER_MIN_LOD_SHIFT 20
-#define GFX7_SAMPLER_MAX_LOD_MASK INTEL_MASK(19, 8)
-#define GFX7_SAMPLER_MAX_LOD_SHIFT 8
-#define GFX7_SAMPLER_SHADOW_FUNCTION_MASK INTEL_MASK(3, 1)
-#define GFX7_SAMPLER_SHADOW_FUNCTION_SHIFT 1
-#define GFX7_SAMPLER_CUBE_CONTROL_OVERRIDE (1 << 0)
-
-/* SAMPLER_STATE DW2 - border color pointer */
-
-/* SAMPLER_STATE DW3 */
-#define BRW_SAMPLER_MAX_ANISOTROPY_MASK INTEL_MASK(21, 19)
-#define BRW_SAMPLER_MAX_ANISOTROPY_SHIFT 19
-#define BRW_SAMPLER_ADDRESS_ROUNDING_MASK INTEL_MASK(18, 13)
-#define BRW_SAMPLER_ADDRESS_ROUNDING_SHIFT 13
-#define GFX7_SAMPLER_NON_NORMALIZED_COORDINATES (1 << 10)
-/* Gfx7+ wrap modes reuse the same BRW_SAMPLER_TC*_WRAP_MODE enums. */
-#define GFX6_SAMPLER_NON_NORMALIZED_COORDINATES (1 << 0)
-
-enum brw_wrap_mode {
- BRW_TEXCOORDMODE_WRAP = 0,
- BRW_TEXCOORDMODE_MIRROR = 1,
- BRW_TEXCOORDMODE_CLAMP = 2,
- BRW_TEXCOORDMODE_CUBE = 3,
- BRW_TEXCOORDMODE_CLAMP_BORDER = 4,
- BRW_TEXCOORDMODE_MIRROR_ONCE = 5,
- GFX8_TEXCOORDMODE_HALF_BORDER = 6,
-};
-
-#define BRW_THREAD_PRIORITY_NORMAL 0
-#define BRW_THREAD_PRIORITY_HIGH 1
-
-#define BRW_TILEWALK_XMAJOR 0
-#define BRW_TILEWALK_YMAJOR 1
-
-#define BRW_VERTEX_SUBPIXEL_PRECISION_8BITS 0
-#define BRW_VERTEX_SUBPIXEL_PRECISION_4BITS 1
-
-
-#define CMD_URB_FENCE 0x6000
-#define CMD_CS_URB_STATE 0x6001
-#define CMD_CONST_BUFFER 0x6002
-
-#define CMD_STATE_BASE_ADDRESS 0x6101
-#define CMD_STATE_SIP 0x6102
-#define CMD_PIPELINE_SELECT_965 0x6104
-#define CMD_PIPELINE_SELECT_GM45 0x6904
-
-#define _3DSTATE_PIPELINED_POINTERS 0x7800
-#define _3DSTATE_BINDING_TABLE_POINTERS 0x7801
-# define GFX6_BINDING_TABLE_MODIFY_VS (1 << 8)
-# define GFX6_BINDING_TABLE_MODIFY_GS (1 << 9)
-# define GFX6_BINDING_TABLE_MODIFY_PS (1 << 12)
-
-#define _3DSTATE_BINDING_TABLE_POINTERS_VS 0x7826 /* GFX7+ */
-#define _3DSTATE_BINDING_TABLE_POINTERS_HS 0x7827 /* GFX7+ */
-#define _3DSTATE_BINDING_TABLE_POINTERS_DS 0x7828 /* GFX7+ */
-#define _3DSTATE_BINDING_TABLE_POINTERS_GS 0x7829 /* GFX7+ */
-#define _3DSTATE_BINDING_TABLE_POINTERS_PS 0x782A /* GFX7+ */
-
-#define _3DSTATE_SAMPLER_STATE_POINTERS 0x7802 /* GFX6+ */
-# define PS_SAMPLER_STATE_CHANGE (1 << 12)
-# define GS_SAMPLER_STATE_CHANGE (1 << 9)
-# define VS_SAMPLER_STATE_CHANGE (1 << 8)
-/* DW1: VS */
-/* DW2: GS */
-/* DW3: PS */
-
-#define _3DSTATE_SAMPLER_STATE_POINTERS_VS 0x782B /* GFX7+ */
-#define _3DSTATE_SAMPLER_STATE_POINTERS_HS 0x782C /* GFX7+ */
-#define _3DSTATE_SAMPLER_STATE_POINTERS_DS 0x782D /* GFX7+ */
-#define _3DSTATE_SAMPLER_STATE_POINTERS_GS 0x782E /* GFX7+ */
-#define _3DSTATE_SAMPLER_STATE_POINTERS_PS 0x782F /* GFX7+ */
-
-#define _3DSTATE_VERTEX_BUFFERS 0x7808
-# define BRW_VB0_INDEX_SHIFT 27
-# define GFX6_VB0_INDEX_SHIFT 26
-# define BRW_VB0_ACCESS_VERTEXDATA (0 << 26)
-# define BRW_VB0_ACCESS_INSTANCEDATA (1 << 26)
-# define GFX6_VB0_ACCESS_VERTEXDATA (0 << 20)
-# define GFX6_VB0_ACCESS_INSTANCEDATA (1 << 20)
-# define GFX7_VB0_ADDRESS_MODIFYENABLE (1 << 14)
-# define BRW_VB0_PITCH_SHIFT 0
-
-#define _3DSTATE_VERTEX_ELEMENTS 0x7809
-# define BRW_VE0_INDEX_SHIFT 27
-# define GFX6_VE0_INDEX_SHIFT 26
-# define BRW_VE0_FORMAT_SHIFT 16
-# define BRW_VE0_VALID (1 << 26)
-# define GFX6_VE0_VALID (1 << 25)
-# define GFX6_VE0_EDGE_FLAG_ENABLE (1 << 15)
-# define BRW_VE0_SRC_OFFSET_SHIFT 0
-# define BRW_VE1_COMPONENT_NOSTORE 0
-# define BRW_VE1_COMPONENT_STORE_SRC 1
-# define BRW_VE1_COMPONENT_STORE_0 2
-# define BRW_VE1_COMPONENT_STORE_1_FLT 3
-# define BRW_VE1_COMPONENT_STORE_1_INT 4
-# define BRW_VE1_COMPONENT_STORE_VID 5
-# define BRW_VE1_COMPONENT_STORE_IID 6
-# define BRW_VE1_COMPONENT_STORE_PID 7
-# define BRW_VE1_COMPONENT_0_SHIFT 28
-# define BRW_VE1_COMPONENT_1_SHIFT 24
-# define BRW_VE1_COMPONENT_2_SHIFT 20
-# define BRW_VE1_COMPONENT_3_SHIFT 16
-# define BRW_VE1_DST_OFFSET_SHIFT 0
-
-#define CMD_INDEX_BUFFER 0x780a
-#define GFX4_3DSTATE_VF_STATISTICS 0x780b
-#define GM45_3DSTATE_VF_STATISTICS 0x680b
-#define _3DSTATE_CC_STATE_POINTERS 0x780e /* GFX6+ */
-#define _3DSTATE_BLEND_STATE_POINTERS 0x7824 /* GFX7+ */
-#define _3DSTATE_DEPTH_STENCIL_STATE_POINTERS 0x7825 /* GFX7+ */
-
-#define _3DSTATE_URB 0x7805 /* GFX6 */
-# define GFX6_URB_VS_SIZE_SHIFT 16
-# define GFX6_URB_VS_ENTRIES_SHIFT 0
-# define GFX6_URB_GS_ENTRIES_SHIFT 8
-# define GFX6_URB_GS_SIZE_SHIFT 0
-
-#define _3DSTATE_VF 0x780c /* GFX7.5+ */
-#define HSW_CUT_INDEX_ENABLE (1 << 8)
-
-#define _3DSTATE_VF_INSTANCING 0x7849 /* GFX8+ */
-# define GFX8_VF_INSTANCING_ENABLE (1 << 8)
-
-#define _3DSTATE_VF_SGVS 0x784a /* GFX8+ */
-# define GFX8_SGVS_ENABLE_INSTANCE_ID (1 << 31)
-# define GFX8_SGVS_INSTANCE_ID_COMPONENT_SHIFT 29
-# define GFX8_SGVS_INSTANCE_ID_ELEMENT_OFFSET_SHIFT 16
-# define GFX8_SGVS_ENABLE_VERTEX_ID (1 << 15)
-# define GFX8_SGVS_VERTEX_ID_COMPONENT_SHIFT 13
-# define GFX8_SGVS_VERTEX_ID_ELEMENT_OFFSET_SHIFT 0
-
-#define _3DSTATE_VF_TOPOLOGY 0x784b /* GFX8+ */
-
-#define _3DSTATE_WM_CHROMAKEY 0x784c /* GFX8+ */
-
-#define _3DSTATE_URB_VS 0x7830 /* GFX7+ */
-#define _3DSTATE_URB_HS 0x7831 /* GFX7+ */
-#define _3DSTATE_URB_DS 0x7832 /* GFX7+ */
-#define _3DSTATE_URB_GS 0x7833 /* GFX7+ */
-# define GFX7_URB_ENTRY_SIZE_SHIFT 16
-# define GFX7_URB_STARTING_ADDRESS_SHIFT 25
-
-#define _3DSTATE_PUSH_CONSTANT_ALLOC_VS 0x7912 /* GFX7+ */
-#define _3DSTATE_PUSH_CONSTANT_ALLOC_HS 0x7913 /* GFX7+ */
-#define _3DSTATE_PUSH_CONSTANT_ALLOC_DS 0x7914 /* GFX7+ */
-#define _3DSTATE_PUSH_CONSTANT_ALLOC_GS 0x7915 /* GFX7+ */
-#define _3DSTATE_PUSH_CONSTANT_ALLOC_PS 0x7916 /* GFX7+ */
-# define GFX7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16
-
-#define _3DSTATE_VIEWPORT_STATE_POINTERS 0x780d /* GFX6+ */
-# define GFX6_CC_VIEWPORT_MODIFY (1 << 12)
-# define GFX6_SF_VIEWPORT_MODIFY (1 << 11)
-# define GFX6_CLIP_VIEWPORT_MODIFY (1 << 10)
-# define GFX6_NUM_VIEWPORTS 16
-
-#define _3DSTATE_VIEWPORT_STATE_POINTERS_CC 0x7823 /* GFX7+ */
-#define _3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL 0x7821 /* GFX7+ */
-
-#define _3DSTATE_SCISSOR_STATE_POINTERS 0x780f /* GFX6+ */
-
-#define _3DSTATE_VS 0x7810 /* GFX6+ */
-/* DW2 */
-# define GFX6_VS_SPF_MODE (1 << 31)
-# define GFX6_VS_VECTOR_MASK_ENABLE (1 << 30)
-# define GFX6_VS_SAMPLER_COUNT_SHIFT 27
-# define GFX6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX6_VS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX6_VS_FLOATING_POINT_MODE_ALT (1 << 16)
-# define HSW_VS_UAV_ACCESS_ENABLE (1 << 12)
-/* DW4 */
-# define GFX6_VS_DISPATCH_START_GRF_SHIFT 20
-# define GFX6_VS_URB_READ_LENGTH_SHIFT 11
-# define GFX6_VS_URB_ENTRY_READ_OFFSET_SHIFT 4
-/* DW5 */
-# define GFX6_VS_MAX_THREADS_SHIFT 25
-# define HSW_VS_MAX_THREADS_SHIFT 23
-# define GFX6_VS_STATISTICS_ENABLE (1 << 10)
-# define GFX6_VS_CACHE_DISABLE (1 << 1)
-# define GFX6_VS_ENABLE (1 << 0)
-/* Gfx8+ DW7 */
-# define GFX8_VS_SIMD8_ENABLE (1 << 2)
-/* Gfx8+ DW8 */
-# define GFX8_VS_URB_ENTRY_OUTPUT_OFFSET_SHIFT 21
-# define GFX8_VS_URB_OUTPUT_LENGTH_SHIFT 16
-# define GFX8_VS_USER_CLIP_DISTANCE_SHIFT 8
-
-#define _3DSTATE_GS 0x7811 /* GFX6+ */
-/* DW2 */
-# define GFX6_GS_SPF_MODE (1 << 31)
-# define GFX6_GS_VECTOR_MASK_ENABLE (1 << 30)
-# define GFX6_GS_SAMPLER_COUNT_SHIFT 27
-# define GFX6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX6_GS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX6_GS_FLOATING_POINT_MODE_ALT (1 << 16)
-# define HSW_GS_UAV_ACCESS_ENABLE (1 << 12)
-/* DW4 */
-# define GFX7_GS_OUTPUT_VERTEX_SIZE_SHIFT 23
-# define GFX7_GS_OUTPUT_TOPOLOGY_SHIFT 17
-# define GFX6_GS_URB_READ_LENGTH_SHIFT 11
-# define GFX7_GS_INCLUDE_VERTEX_HANDLES (1 << 10)
-# define GFX6_GS_URB_ENTRY_READ_OFFSET_SHIFT 4
-# define GFX6_GS_DISPATCH_START_GRF_SHIFT 0
-/* DW5 */
-# define GFX6_GS_MAX_THREADS_SHIFT 25
-# define HSW_GS_MAX_THREADS_SHIFT 24
-# define IVB_GS_CONTROL_DATA_FORMAT_SHIFT 24
-# define GFX7_GS_CONTROL_DATA_FORMAT_GSCTL_CUT 0
-# define GFX7_GS_CONTROL_DATA_FORMAT_GSCTL_SID 1
-# define GFX7_GS_CONTROL_DATA_HEADER_SIZE_SHIFT 20
-# define GFX7_GS_INSTANCE_CONTROL_SHIFT 15
-# define GFX7_GS_DISPATCH_MODE_SHIFT 11
-# define GFX7_GS_DISPATCH_MODE_MASK INTEL_MASK(12, 11)
-# define GFX6_GS_STATISTICS_ENABLE (1 << 10)
-# define GFX6_GS_SO_STATISTICS_ENABLE (1 << 9)
-# define GFX6_GS_RENDERING_ENABLE (1 << 8)
-# define GFX7_GS_INCLUDE_PRIMITIVE_ID (1 << 4)
-# define GFX7_GS_REORDER_TRAILING (1 << 2)
-# define GFX7_GS_ENABLE (1 << 0)
-/* DW6 */
-# define HSW_GS_CONTROL_DATA_FORMAT_SHIFT 31
-# define GFX6_GS_REORDER (1 << 30)
-# define GFX6_GS_DISCARD_ADJACENCY (1 << 29)
-# define GFX6_GS_SVBI_PAYLOAD_ENABLE (1 << 28)
-# define GFX6_GS_SVBI_POSTINCREMENT_ENABLE (1 << 27)
-# define GFX6_GS_SVBI_POSTINCREMENT_VALUE_SHIFT 16
-# define GFX6_GS_SVBI_POSTINCREMENT_VALUE_MASK INTEL_MASK(25, 16)
-# define GFX6_GS_ENABLE (1 << 15)
-
-/* Gfx8+ DW8 */
-# define GFX8_GS_STATIC_OUTPUT (1 << 30)
-# define GFX8_GS_STATIC_VERTEX_COUNT_SHIFT 16
-# define GFX8_GS_STATIC_VERTEX_COUNT_MASK INTEL_MASK(26, 16)
-
-/* Gfx8+ DW9 */
-# define GFX8_GS_URB_ENTRY_OUTPUT_OFFSET_SHIFT 21
-# define GFX8_GS_URB_OUTPUT_LENGTH_SHIFT 16
-# define GFX8_GS_USER_CLIP_DISTANCE_SHIFT 8
-
-# define BRW_GS_EDGE_INDICATOR_0 (1 << 8)
-# define BRW_GS_EDGE_INDICATOR_1 (1 << 9)
-
-#define _3DSTATE_HS 0x781B /* GFX7+ */
-/* DW1 */
-# define GFX7_HS_SAMPLER_COUNT_MASK INTEL_MASK(29, 27)
-# define GFX7_HS_SAMPLER_COUNT_SHIFT 27
-# define GFX7_HS_BINDING_TABLE_ENTRY_COUNT_MASK INTEL_MASK(25, 18)
-# define GFX7_HS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX7_HS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX7_HS_FLOATING_POINT_MODE_ALT (1 << 16)
-# define GFX7_HS_MAX_THREADS_SHIFT 0
-/* DW2 */
-# define GFX7_HS_ENABLE (1 << 31)
-# define GFX7_HS_STATISTICS_ENABLE (1 << 29)
-# define GFX8_HS_MAX_THREADS_SHIFT 8
-# define GFX7_HS_INSTANCE_COUNT_MASK INTEL_MASK(3, 0)
-# define GFX7_HS_INSTANCE_COUNT_SHIFT 0
-/* DW5 */
-# define GFX7_HS_SINGLE_PROGRAM_FLOW (1 << 27)
-# define GFX7_HS_VECTOR_MASK_ENABLE (1 << 26)
-# define HSW_HS_ACCESSES_UAV (1 << 25)
-# define GFX7_HS_INCLUDE_VERTEX_HANDLES (1 << 24)
-# define GFX7_HS_DISPATCH_START_GRF_MASK INTEL_MASK(23, 19)
-# define GFX7_HS_DISPATCH_START_GRF_SHIFT 19
-# define GFX7_HS_URB_READ_LENGTH_MASK INTEL_MASK(16, 11)
-# define GFX7_HS_URB_READ_LENGTH_SHIFT 11
-# define GFX7_HS_URB_ENTRY_READ_OFFSET_MASK INTEL_MASK(9, 4)
-# define GFX7_HS_URB_ENTRY_READ_OFFSET_SHIFT 4
-
-#define _3DSTATE_TE 0x781C /* GFX7+ */
-/* DW1 */
-# define GFX7_TE_PARTITIONING_SHIFT 12
-# define GFX7_TE_OUTPUT_TOPOLOGY_SHIFT 8
-# define GFX7_TE_DOMAIN_SHIFT 4
-//# define GFX7_TE_MODE_SW (1 << 1)
-# define GFX7_TE_ENABLE (1 << 0)
-
-#define _3DSTATE_DS 0x781D /* GFX7+ */
-/* DW2 */
-# define GFX7_DS_SINGLE_DOMAIN_POINT_DISPATCH (1 << 31)
-# define GFX7_DS_VECTOR_MASK_ENABLE (1 << 30)
-# define GFX7_DS_SAMPLER_COUNT_MASK INTEL_MASK(29, 27)
-# define GFX7_DS_SAMPLER_COUNT_SHIFT 27
-# define GFX7_DS_BINDING_TABLE_ENTRY_COUNT_MASK INTEL_MASK(25, 18)
-# define GFX7_DS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX7_DS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX7_DS_FLOATING_POINT_MODE_ALT (1 << 16)
-# define HSW_DS_ACCESSES_UAV (1 << 14)
-/* DW4 */
-# define GFX7_DS_DISPATCH_START_GRF_MASK INTEL_MASK(24, 20)
-# define GFX7_DS_DISPATCH_START_GRF_SHIFT 20
-# define GFX7_DS_URB_READ_LENGTH_MASK INTEL_MASK(17, 11)
-# define GFX7_DS_URB_READ_LENGTH_SHIFT 11
-# define GFX7_DS_URB_ENTRY_READ_OFFSET_MASK INTEL_MASK(9, 4)
-# define GFX7_DS_URB_ENTRY_READ_OFFSET_SHIFT 4
-/* DW5 */
-# define GFX7_DS_MAX_THREADS_SHIFT 25
-# define HSW_DS_MAX_THREADS_SHIFT 21
-# define GFX7_DS_STATISTICS_ENABLE (1 << 10)
-# define GFX7_DS_SIMD8_DISPATCH_ENABLE (1 << 3)
-# define GFX7_DS_COMPUTE_W_COORDINATE_ENABLE (1 << 2)
-# define GFX7_DS_CACHE_DISABLE (1 << 1)
-# define GFX7_DS_ENABLE (1 << 0)
-/* Gfx8+ DW8 */
-# define GFX8_DS_URB_ENTRY_OUTPUT_OFFSET_MASK INTEL_MASK(26, 21)
-# define GFX8_DS_URB_ENTRY_OUTPUT_OFFSET_SHIFT 21
-# define GFX8_DS_URB_OUTPUT_LENGTH_MASK INTEL_MASK(20, 16)
-# define GFX8_DS_URB_OUTPUT_LENGTH_SHIFT 16
-# define GFX8_DS_USER_CLIP_DISTANCE_MASK INTEL_MASK(15, 8)
-# define GFX8_DS_USER_CLIP_DISTANCE_SHIFT 8
-# define GFX8_DS_USER_CULL_DISTANCE_MASK INTEL_MASK(7, 0)
-# define GFX8_DS_USER_CULL_DISTANCE_SHIFT 0
-
-
-#define _3DSTATE_CLIP 0x7812 /* GFX6+ */
-/* DW1 */
-# define GFX7_CLIP_WINDING_CW (0 << 20)
-# define GFX7_CLIP_WINDING_CCW (1 << 20)
-# define GFX7_CLIP_VERTEX_SUBPIXEL_PRECISION_8 (0 << 19)
-# define GFX7_CLIP_VERTEX_SUBPIXEL_PRECISION_4 (1 << 19)
-# define GFX7_CLIP_EARLY_CULL (1 << 18)
-# define GFX8_CLIP_FORCE_USER_CLIP_DISTANCE_BITMASK (1 << 17)
-# define GFX7_CLIP_CULLMODE_BOTH (0 << 16)
-# define GFX7_CLIP_CULLMODE_NONE (1 << 16)
-# define GFX7_CLIP_CULLMODE_FRONT (2 << 16)
-# define GFX7_CLIP_CULLMODE_BACK (3 << 16)
-# define GFX6_CLIP_STATISTICS_ENABLE (1 << 10)
-/**
- * Just does cheap culling based on the clip distance. Bits must be
- * disjoint with USER_CLIP_CLIP_DISTANCE bits.
- */
-# define GFX6_USER_CLIP_CULL_DISTANCES_SHIFT 0
-/* DW2 */
-# define GFX6_CLIP_ENABLE (1 << 31)
-# define GFX6_CLIP_API_OGL (0 << 30)
-# define GFX6_CLIP_API_D3D (1 << 30)
-# define GFX6_CLIP_XY_TEST (1 << 28)
-# define GFX6_CLIP_Z_TEST (1 << 27)
-# define GFX6_CLIP_GB_TEST (1 << 26)
-/** 8-bit field of which user clip distances to clip aganist. */
-# define GFX6_USER_CLIP_CLIP_DISTANCES_SHIFT 16
-# define GFX6_CLIP_MODE_NORMAL (0 << 13)
-# define GFX6_CLIP_MODE_REJECT_ALL (3 << 13)
-# define GFX6_CLIP_MODE_ACCEPT_ALL (4 << 13)
-# define GFX6_CLIP_PERSPECTIVE_DIVIDE_DISABLE (1 << 9)
-# define GFX6_CLIP_NON_PERSPECTIVE_BARYCENTRIC_ENABLE (1 << 8)
-# define GFX6_CLIP_TRI_PROVOKE_SHIFT 4
-# define GFX6_CLIP_LINE_PROVOKE_SHIFT 2
-# define GFX6_CLIP_TRIFAN_PROVOKE_SHIFT 0
-/* DW3 */
-# define GFX6_CLIP_MIN_POINT_WIDTH_SHIFT 17
-# define GFX6_CLIP_MAX_POINT_WIDTH_SHIFT 6
-# define GFX6_CLIP_FORCE_ZERO_RTAINDEX (1 << 5)
-# define GFX6_CLIP_MAX_VP_INDEX_MASK INTEL_MASK(3, 0)
-
-#define _3DSTATE_SF 0x7813 /* GFX6+ */
-/* DW1 (for gfx6) */
-# define GFX6_SF_NUM_OUTPUTS_SHIFT 22
-# define GFX6_SF_SWIZZLE_ENABLE (1 << 21)
-# define GFX6_SF_POINT_SPRITE_UPPERLEFT (0 << 20)
-# define GFX6_SF_POINT_SPRITE_LOWERLEFT (1 << 20)
-# define GFX9_SF_LINE_WIDTH_SHIFT 12 /* U11.7 */
-# define GFX6_SF_URB_ENTRY_READ_LENGTH_SHIFT 11
-# define GFX6_SF_URB_ENTRY_READ_OFFSET_SHIFT 4
-/* DW2 */
-# define GFX6_SF_LEGACY_GLOBAL_DEPTH_BIAS (1 << 11)
-# define GFX6_SF_STATISTICS_ENABLE (1 << 10)
-# define GFX6_SF_GLOBAL_DEPTH_OFFSET_SOLID (1 << 9)
-# define GFX6_SF_GLOBAL_DEPTH_OFFSET_WIREFRAME (1 << 8)
-# define GFX6_SF_GLOBAL_DEPTH_OFFSET_POINT (1 << 7)
-# define GFX6_SF_FRONT_SOLID (0 << 5)
-# define GFX6_SF_FRONT_WIREFRAME (1 << 5)
-# define GFX6_SF_FRONT_POINT (2 << 5)
-# define GFX6_SF_BACK_SOLID (0 << 3)
-# define GFX6_SF_BACK_WIREFRAME (1 << 3)
-# define GFX6_SF_BACK_POINT (2 << 3)
-# define GFX6_SF_VIEWPORT_TRANSFORM_ENABLE (1 << 1)
-# define GFX6_SF_WINDING_CCW (1 << 0)
-/* DW3 */
-# define GFX6_SF_LINE_AA_ENABLE (1 << 31)
-# define GFX6_SF_CULL_BOTH (0 << 29)
-# define GFX6_SF_CULL_NONE (1 << 29)
-# define GFX6_SF_CULL_FRONT (2 << 29)
-# define GFX6_SF_CULL_BACK (3 << 29)
-# define GFX6_SF_LINE_WIDTH_SHIFT 18 /* U3.7 */
-# define GFX6_SF_LINE_END_CAP_WIDTH_0_5 (0 << 16)
-# define GFX6_SF_LINE_END_CAP_WIDTH_1_0 (1 << 16)
-# define GFX6_SF_LINE_END_CAP_WIDTH_2_0 (2 << 16)
-# define GFX6_SF_LINE_END_CAP_WIDTH_4_0 (3 << 16)
-# define GFX6_SF_SCISSOR_ENABLE (1 << 11)
-# define GFX6_SF_MSRAST_OFF_PIXEL (0 << 8)
-# define GFX6_SF_MSRAST_OFF_PATTERN (1 << 8)
-# define GFX6_SF_MSRAST_ON_PIXEL (2 << 8)
-# define GFX6_SF_MSRAST_ON_PATTERN (3 << 8)
-/* DW4 */
-# define GFX6_SF_TRI_PROVOKE_SHIFT 29
-# define GFX6_SF_LINE_PROVOKE_SHIFT 27
-# define GFX6_SF_TRIFAN_PROVOKE_SHIFT 25
-# define GFX6_SF_LINE_AA_MODE_MANHATTAN (0 << 14)
-# define GFX6_SF_LINE_AA_MODE_TRUE (1 << 14)
-# define GFX6_SF_VERTEX_SUBPIXEL_8BITS (0 << 12)
-# define GFX6_SF_VERTEX_SUBPIXEL_4BITS (1 << 12)
-# define GFX6_SF_USE_STATE_POINT_WIDTH (1 << 11)
-# define GFX6_SF_POINT_WIDTH_SHIFT 0 /* U8.3 */
-/* DW5: depth offset constant */
-/* DW6: depth offset scale */
-/* DW7: depth offset clamp */
-/* DW8 */
-# define ATTRIBUTE_1_OVERRIDE_W (1 << 31)
-# define ATTRIBUTE_1_OVERRIDE_Z (1 << 30)
-# define ATTRIBUTE_1_OVERRIDE_Y (1 << 29)
-# define ATTRIBUTE_1_OVERRIDE_X (1 << 28)
-# define ATTRIBUTE_1_CONST_SOURCE_SHIFT 25
-# define ATTRIBUTE_1_SWIZZLE_SHIFT 22
-# define ATTRIBUTE_1_SOURCE_SHIFT 16
-# define ATTRIBUTE_0_OVERRIDE_W (1 << 15)
-# define ATTRIBUTE_0_OVERRIDE_Z (1 << 14)
-# define ATTRIBUTE_0_OVERRIDE_Y (1 << 13)
-# define ATTRIBUTE_0_OVERRIDE_X (1 << 12)
-# define ATTRIBUTE_0_CONST_SOURCE_SHIFT 9
-# define ATTRIBUTE_CONST_0000 0
-# define ATTRIBUTE_CONST_0001_FLOAT 1
-# define ATTRIBUTE_CONST_1111_FLOAT 2
-# define ATTRIBUTE_CONST_PRIM_ID 3
-# define ATTRIBUTE_0_SWIZZLE_SHIFT 6
-# define ATTRIBUTE_0_SOURCE_SHIFT 0
-
-# define ATTRIBUTE_SWIZZLE_INPUTATTR 0
-# define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING 1
-# define ATTRIBUTE_SWIZZLE_INPUTATTR_W 2
-# define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING_W 3
-# define ATTRIBUTE_SWIZZLE_SHIFT 6
-
-/* DW16: Point sprite texture coordinate enables */
-/* DW17: Constant interpolation enables */
-/* DW18: attr 0-7 wrap shortest enables */
-/* DW19: attr 8-16 wrap shortest enables */
-
-/* On GFX7, many fields of 3DSTATE_SF were split out into a new command:
- * 3DSTATE_SBE. The remaining fields live in different DWords, but retain
- * the same bit-offset. The only new field:
- */
-/* GFX7/DW1: */
-# define GFX7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT 12
-/* GFX7/DW2: */
-# define HSW_SF_LINE_STIPPLE_ENABLE (1 << 14)
-
-# define GFX8_SF_SMOOTH_POINT_ENABLE (1 << 13)
-
-#define _3DSTATE_SBE 0x781F /* GFX7+ */
-/* DW1 */
-# define GFX8_SBE_FORCE_URB_ENTRY_READ_LENGTH (1 << 29)
-# define GFX8_SBE_FORCE_URB_ENTRY_READ_OFFSET (1 << 28)
-# define GFX7_SBE_SWIZZLE_CONTROL_MODE (1 << 28)
-# define GFX7_SBE_NUM_OUTPUTS_SHIFT 22
-# define GFX7_SBE_SWIZZLE_ENABLE (1 << 21)
-# define GFX7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20)
-# define GFX7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11
-# define GFX7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4
-# define GFX8_SBE_URB_ENTRY_READ_OFFSET_SHIFT 5
-/* DW2-9: Attribute setup (same as DW8-15 of gfx6 _3DSTATE_SF) */
-/* DW10: Point sprite texture coordinate enables */
-/* DW11: Constant interpolation enables */
-/* DW12: attr 0-7 wrap shortest enables */
-/* DW13: attr 8-16 wrap shortest enables */
-
-/* DW4-5: Attribute active components (gfx9) */
-#define GFX9_SBE_ACTIVE_COMPONENT_NONE 0
-#define GFX9_SBE_ACTIVE_COMPONENT_XY 1
-#define GFX9_SBE_ACTIVE_COMPONENT_XYZ 2
-#define GFX9_SBE_ACTIVE_COMPONENT_XYZW 3
-
-#define _3DSTATE_SBE_SWIZ 0x7851 /* GFX8+ */
-
-#define _3DSTATE_RASTER 0x7850 /* GFX8+ */
-/* DW1 */
-# define GFX9_RASTER_VIEWPORT_Z_FAR_CLIP_TEST_ENABLE (1 << 26)
-# define GFX9_RASTER_CONSERVATIVE_RASTERIZATION_ENABLE (1 << 24)
-# define GFX8_RASTER_FRONT_WINDING_CCW (1 << 21)
-# define GFX8_RASTER_CULL_BOTH (0 << 16)
-# define GFX8_RASTER_CULL_NONE (1 << 16)
-# define GFX8_RASTER_CULL_FRONT (2 << 16)
-# define GFX8_RASTER_CULL_BACK (3 << 16)
-# define GFX8_RASTER_SMOOTH_POINT_ENABLE (1 << 13)
-# define GFX8_RASTER_API_MULTISAMPLE_ENABLE (1 << 12)
-# define GFX8_RASTER_LINE_AA_ENABLE (1 << 2)
-# define GFX8_RASTER_SCISSOR_ENABLE (1 << 1)
-# define GFX8_RASTER_VIEWPORT_Z_CLIP_TEST_ENABLE (1 << 0)
-# define GFX9_RASTER_VIEWPORT_Z_NEAR_CLIP_TEST_ENABLE (1 << 0)
-
-/* Gfx8 BLEND_STATE */
-/* DW0 */
-#define GFX8_BLEND_ALPHA_TO_COVERAGE_ENABLE (1 << 31)
-#define GFX8_BLEND_INDEPENDENT_ALPHA_BLEND_ENABLE (1 << 30)
-#define GFX8_BLEND_ALPHA_TO_ONE_ENABLE (1 << 29)
-#define GFX8_BLEND_ALPHA_TO_COVERAGE_DITHER_ENABLE (1 << 28)
-#define GFX8_BLEND_ALPHA_TEST_ENABLE (1 << 27)
-#define GFX8_BLEND_ALPHA_TEST_FUNCTION_MASK INTEL_MASK(26, 24)
-#define GFX8_BLEND_ALPHA_TEST_FUNCTION_SHIFT 24
-#define GFX8_BLEND_COLOR_DITHER_ENABLE (1 << 23)
-#define GFX8_BLEND_X_DITHER_OFFSET_MASK INTEL_MASK(22, 21)
-#define GFX8_BLEND_X_DITHER_OFFSET_SHIFT 21
-#define GFX8_BLEND_Y_DITHER_OFFSET_MASK INTEL_MASK(20, 19)
-#define GFX8_BLEND_Y_DITHER_OFFSET_SHIFT 19
-/* DW1 + 2n */
-#define GFX8_BLEND_COLOR_BUFFER_BLEND_ENABLE (1 << 31)
-#define GFX8_BLEND_SRC_BLEND_FACTOR_MASK INTEL_MASK(30, 26)
-#define GFX8_BLEND_SRC_BLEND_FACTOR_SHIFT 26
-#define GFX8_BLEND_DST_BLEND_FACTOR_MASK INTEL_MASK(25, 21)
-#define GFX8_BLEND_DST_BLEND_FACTOR_SHIFT 21
-#define GFX8_BLEND_COLOR_BLEND_FUNCTION_MASK INTEL_MASK(20, 18)
-#define GFX8_BLEND_COLOR_BLEND_FUNCTION_SHIFT 18
-#define GFX8_BLEND_SRC_ALPHA_BLEND_FACTOR_MASK INTEL_MASK(17, 13)
-#define GFX8_BLEND_SRC_ALPHA_BLEND_FACTOR_SHIFT 13
-#define GFX8_BLEND_DST_ALPHA_BLEND_FACTOR_MASK INTEL_MASK(12, 8)
-#define GFX8_BLEND_DST_ALPHA_BLEND_FACTOR_SHIFT 8
-#define GFX8_BLEND_ALPHA_BLEND_FUNCTION_MASK INTEL_MASK(7, 5)
-#define GFX8_BLEND_ALPHA_BLEND_FUNCTION_SHIFT 5
-#define GFX8_BLEND_WRITE_DISABLE_ALPHA (1 << 3)
-#define GFX8_BLEND_WRITE_DISABLE_RED (1 << 2)
-#define GFX8_BLEND_WRITE_DISABLE_GREEN (1 << 1)
-#define GFX8_BLEND_WRITE_DISABLE_BLUE (1 << 0)
-/* DW1 + 2n + 1 */
-#define GFX8_BLEND_LOGIC_OP_ENABLE (1 << 31)
-#define GFX8_BLEND_LOGIC_OP_FUNCTION_MASK INTEL_MASK(30, 27)
-#define GFX8_BLEND_LOGIC_OP_FUNCTION_SHIFT 27
-#define GFX8_BLEND_PRE_BLEND_SRC_ONLY_CLAMP_ENABLE (1 << 4)
-#define GFX8_BLEND_COLOR_CLAMP_RANGE_RTFORMAT (2 << 2)
-#define GFX8_BLEND_PRE_BLEND_COLOR_CLAMP_ENABLE (1 << 1)
-#define GFX8_BLEND_POST_BLEND_COLOR_CLAMP_ENABLE (1 << 0)
-
-#define _3DSTATE_WM_HZ_OP 0x7852 /* GFX8+ */
-/* DW1 */
-# define GFX8_WM_HZ_STENCIL_CLEAR (1 << 31)
-# define GFX8_WM_HZ_DEPTH_CLEAR (1 << 30)
-# define GFX8_WM_HZ_DEPTH_RESOLVE (1 << 28)
-# define GFX8_WM_HZ_HIZ_RESOLVE (1 << 27)
-# define GFX8_WM_HZ_PIXEL_OFFSET_ENABLE (1 << 26)
-# define GFX8_WM_HZ_FULL_SURFACE_DEPTH_CLEAR (1 << 25)
-# define GFX8_WM_HZ_STENCIL_CLEAR_VALUE_MASK INTEL_MASK(23, 16)
-# define GFX8_WM_HZ_STENCIL_CLEAR_VALUE_SHIFT 16
-# define GFX8_WM_HZ_NUM_SAMPLES_MASK INTEL_MASK(15, 13)
-# define GFX8_WM_HZ_NUM_SAMPLES_SHIFT 13
-/* DW2 */
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_Y_MIN_MASK INTEL_MASK(31, 16)
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_Y_MIN_SHIFT 16
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_X_MIN_MASK INTEL_MASK(15, 0)
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_X_MIN_SHIFT 0
-/* DW3 */
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_Y_MAX_MASK INTEL_MASK(31, 16)
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_Y_MAX_SHIFT 16
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_X_MAX_MASK INTEL_MASK(15, 0)
-# define GFX8_WM_HZ_CLEAR_RECTANGLE_X_MAX_SHIFT 0
-/* DW4 */
-# define GFX8_WM_HZ_SAMPLE_MASK_MASK INTEL_MASK(15, 0)
-# define GFX8_WM_HZ_SAMPLE_MASK_SHIFT 0
-
-
-#define _3DSTATE_PS_BLEND 0x784D /* GFX8+ */
-/* DW1 */
-# define GFX8_PS_BLEND_ALPHA_TO_COVERAGE_ENABLE (1 << 31)
-# define GFX8_PS_BLEND_HAS_WRITEABLE_RT (1 << 30)
-# define GFX8_PS_BLEND_COLOR_BUFFER_BLEND_ENABLE (1 << 29)
-# define GFX8_PS_BLEND_SRC_ALPHA_BLEND_FACTOR_MASK INTEL_MASK(28, 24)
-# define GFX8_PS_BLEND_SRC_ALPHA_BLEND_FACTOR_SHIFT 24
-# define GFX8_PS_BLEND_DST_ALPHA_BLEND_FACTOR_MASK INTEL_MASK(23, 19)
-# define GFX8_PS_BLEND_DST_ALPHA_BLEND_FACTOR_SHIFT 19
-# define GFX8_PS_BLEND_SRC_BLEND_FACTOR_MASK INTEL_MASK(18, 14)
-# define GFX8_PS_BLEND_SRC_BLEND_FACTOR_SHIFT 14
-# define GFX8_PS_BLEND_DST_BLEND_FACTOR_MASK INTEL_MASK(13, 9)
-# define GFX8_PS_BLEND_DST_BLEND_FACTOR_SHIFT 9
-# define GFX8_PS_BLEND_ALPHA_TEST_ENABLE (1 << 8)
-# define GFX8_PS_BLEND_INDEPENDENT_ALPHA_BLEND_ENABLE (1 << 7)
-
-#define _3DSTATE_WM_DEPTH_STENCIL 0x784E /* GFX8+ */
-/* DW1 */
-# define GFX8_WM_DS_STENCIL_FAIL_OP_SHIFT 29
-# define GFX8_WM_DS_Z_FAIL_OP_SHIFT 26
-# define GFX8_WM_DS_Z_PASS_OP_SHIFT 23
-# define GFX8_WM_DS_BF_STENCIL_FUNC_SHIFT 20
-# define GFX8_WM_DS_BF_STENCIL_FAIL_OP_SHIFT 17
-# define GFX8_WM_DS_BF_Z_FAIL_OP_SHIFT 14
-# define GFX8_WM_DS_BF_Z_PASS_OP_SHIFT 11
-# define GFX8_WM_DS_STENCIL_FUNC_SHIFT 8
-# define GFX8_WM_DS_DEPTH_FUNC_SHIFT 5
-# define GFX8_WM_DS_DOUBLE_SIDED_STENCIL_ENABLE (1 << 4)
-# define GFX8_WM_DS_STENCIL_TEST_ENABLE (1 << 3)
-# define GFX8_WM_DS_STENCIL_BUFFER_WRITE_ENABLE (1 << 2)
-# define GFX8_WM_DS_DEPTH_TEST_ENABLE (1 << 1)
-# define GFX8_WM_DS_DEPTH_BUFFER_WRITE_ENABLE (1 << 0)
-/* DW2 */
-# define GFX8_WM_DS_STENCIL_TEST_MASK_MASK INTEL_MASK(31, 24)
-# define GFX8_WM_DS_STENCIL_TEST_MASK_SHIFT 24
-# define GFX8_WM_DS_STENCIL_WRITE_MASK_MASK INTEL_MASK(23, 16)
-# define GFX8_WM_DS_STENCIL_WRITE_MASK_SHIFT 16
-# define GFX8_WM_DS_BF_STENCIL_TEST_MASK_MASK INTEL_MASK(15, 8)
-# define GFX8_WM_DS_BF_STENCIL_TEST_MASK_SHIFT 8
-# define GFX8_WM_DS_BF_STENCIL_WRITE_MASK_MASK INTEL_MASK(7, 0)
-# define GFX8_WM_DS_BF_STENCIL_WRITE_MASK_SHIFT 0
-/* DW3 */
-# define GFX9_WM_DS_STENCIL_REF_MASK INTEL_MASK(15, 8)
-# define GFX9_WM_DS_STENCIL_REF_SHIFT 8
-# define GFX9_WM_DS_BF_STENCIL_REF_MASK INTEL_MASK(7, 0)
-# define GFX9_WM_DS_BF_STENCIL_REF_SHIFT 0
-
-enum brw_pixel_shader_coverage_mask_mode {
- BRW_PSICMS_OFF = 0, /* PS does not use input coverage masks. */
- BRW_PSICMS_NORMAL = 1, /* Input Coverage masks based on outer conservatism
- * and factors in SAMPLE_MASK. If Pixel is
- * conservatively covered, all samples are enabled.
- */
-
- BRW_PSICMS_INNER = 2, /* Input Coverage masks based on inner conservatism
- * and factors in SAMPLE_MASK. If Pixel is
- * conservatively *FULLY* covered, all samples are
- * enabled.
- */
- BRW_PCICMS_DEPTH = 3,
-};
-
-#define _3DSTATE_PS_EXTRA 0x784F /* GFX8+ */
-/* DW1 */
-# define GFX8_PSX_PIXEL_SHADER_VALID (1 << 31)
-# define GFX8_PSX_PIXEL_SHADER_NO_RT_WRITE (1 << 30)
-# define GFX8_PSX_OMASK_TO_RENDER_TARGET (1 << 29)
-# define GFX8_PSX_KILL_ENABLE (1 << 28)
-# define GFX8_PSX_COMPUTED_DEPTH_MODE_SHIFT 26
-# define GFX8_PSX_FORCE_COMPUTED_DEPTH (1 << 25)
-# define GFX8_PSX_USES_SOURCE_DEPTH (1 << 24)
-# define GFX8_PSX_USES_SOURCE_W (1 << 23)
-# define GFX8_PSX_ATTRIBUTE_ENABLE (1 << 8)
-# define GFX8_PSX_SHADER_DISABLES_ALPHA_TO_COVERAGE (1 << 7)
-# define GFX8_PSX_SHADER_IS_PER_SAMPLE (1 << 6)
-# define GFX9_PSX_SHADER_COMPUTES_STENCIL (1 << 5)
-# define GFX9_PSX_SHADER_PULLS_BARY (1 << 3)
-# define GFX8_PSX_SHADER_HAS_UAV (1 << 2)
-# define GFX8_PSX_SHADER_USES_INPUT_COVERAGE_MASK (1 << 1)
-# define GFX9_PSX_SHADER_NORMAL_COVERAGE_MASK_SHIFT 0
-
-#define _3DSTATE_WM 0x7814 /* GFX6+ */
-/* DW1: kernel pointer */
-/* DW2 */
-# define GFX6_WM_SPF_MODE (1 << 31)
-# define GFX6_WM_VECTOR_MASK_ENABLE (1 << 30)
-# define GFX6_WM_SAMPLER_COUNT_SHIFT 27
-# define GFX6_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX6_WM_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX6_WM_FLOATING_POINT_MODE_ALT (1 << 16)
-/* DW3: scratch space */
-/* DW4 */
-# define GFX6_WM_STATISTICS_ENABLE (1 << 31)
-# define GFX6_WM_DEPTH_CLEAR (1 << 30)
-# define GFX6_WM_DEPTH_RESOLVE (1 << 28)
-# define GFX6_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27)
-# define GFX6_WM_DISPATCH_START_GRF_SHIFT_0 16
-# define GFX6_WM_DISPATCH_START_GRF_SHIFT_1 8
-# define GFX6_WM_DISPATCH_START_GRF_SHIFT_2 0
-/* DW5 */
-# define GFX6_WM_MAX_THREADS_SHIFT 25
-# define GFX6_WM_KILL_ENABLE (1 << 22)
-# define GFX6_WM_COMPUTED_DEPTH (1 << 21)
-# define GFX6_WM_USES_SOURCE_DEPTH (1 << 20)
-# define GFX6_WM_DISPATCH_ENABLE (1 << 19)
-# define GFX6_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 16)
-# define GFX6_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 16)
-# define GFX6_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 16)
-# define GFX6_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 16)
-# define GFX6_WM_LINE_AA_WIDTH_0_5 (0 << 14)
-# define GFX6_WM_LINE_AA_WIDTH_1_0 (1 << 14)
-# define GFX6_WM_LINE_AA_WIDTH_2_0 (2 << 14)
-# define GFX6_WM_LINE_AA_WIDTH_4_0 (3 << 14)
-# define GFX6_WM_POLYGON_STIPPLE_ENABLE (1 << 13)
-# define GFX6_WM_LINE_STIPPLE_ENABLE (1 << 11)
-# define GFX6_WM_OMASK_TO_RENDER_TARGET (1 << 9)
-# define GFX6_WM_USES_SOURCE_W (1 << 8)
-# define GFX6_WM_DUAL_SOURCE_BLEND_ENABLE (1 << 7)
-# define GFX6_WM_32_DISPATCH_ENABLE (1 << 2)
-# define GFX6_WM_16_DISPATCH_ENABLE (1 << 1)
-# define GFX6_WM_8_DISPATCH_ENABLE (1 << 0)
-/* DW6 */
-# define GFX6_WM_NUM_SF_OUTPUTS_SHIFT 20
-# define GFX6_WM_POSOFFSET_NONE (0 << 18)
-# define GFX6_WM_POSOFFSET_CENTROID (2 << 18)
-# define GFX6_WM_POSOFFSET_SAMPLE (3 << 18)
-# define GFX6_WM_POSITION_ZW_PIXEL (0 << 16)
-# define GFX6_WM_POSITION_ZW_CENTROID (2 << 16)
-# define GFX6_WM_POSITION_ZW_SAMPLE (3 << 16)
-# define GFX6_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15)
-# define GFX6_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14)
-# define GFX6_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13)
-# define GFX6_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12)
-# define GFX6_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11)
-# define GFX6_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10)
-# define GFX6_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT 10
-# define GFX6_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 9)
-# define GFX6_WM_MSRAST_OFF_PIXEL (0 << 1)
-# define GFX6_WM_MSRAST_OFF_PATTERN (1 << 1)
-# define GFX6_WM_MSRAST_ON_PIXEL (2 << 1)
-# define GFX6_WM_MSRAST_ON_PATTERN (3 << 1)
-# define GFX6_WM_MSDISPMODE_PERSAMPLE (0 << 0)
-# define GFX6_WM_MSDISPMODE_PERPIXEL (1 << 0)
-/* DW7: kernel 1 pointer */
-/* DW8: kernel 2 pointer */
-
-#define _3DSTATE_CONSTANT_VS 0x7815 /* GFX6+ */
-#define _3DSTATE_CONSTANT_GS 0x7816 /* GFX6+ */
-#define _3DSTATE_CONSTANT_PS 0x7817 /* GFX6+ */
-# define GFX6_CONSTANT_BUFFER_3_ENABLE (1 << 15)
-# define GFX6_CONSTANT_BUFFER_2_ENABLE (1 << 14)
-# define GFX6_CONSTANT_BUFFER_1_ENABLE (1 << 13)
-# define GFX6_CONSTANT_BUFFER_0_ENABLE (1 << 12)
-
-#define _3DSTATE_CONSTANT_HS 0x7819 /* GFX7+ */
-#define _3DSTATE_CONSTANT_DS 0x781A /* GFX7+ */
-
-#define _3DSTATE_STREAMOUT 0x781e /* GFX7+ */
-/* DW1 */
-# define SO_FUNCTION_ENABLE (1 << 31)
-# define SO_RENDERING_DISABLE (1 << 30)
-/* This selects which incoming rendering stream goes down the pipeline. The
- * rendering stream is 0 if not defined by special cases in the GS state.
- */
-# define SO_RENDER_STREAM_SELECT_SHIFT 27
-# define SO_RENDER_STREAM_SELECT_MASK INTEL_MASK(28, 27)
-/* Controls reordering of TRISTRIP_* elements in stream output (not rendering).
- */
-# define SO_REORDER_TRAILING (1 << 26)
-/* Controls SO_NUM_PRIMS_WRITTEN_* and SO_PRIM_STORAGE_* */
-# define SO_STATISTICS_ENABLE (1 << 25)
-# define SO_BUFFER_ENABLE(n) (1 << (8 + (n)))
-/* DW2 */
-# define SO_STREAM_3_VERTEX_READ_OFFSET_SHIFT 29
-# define SO_STREAM_3_VERTEX_READ_OFFSET_MASK INTEL_MASK(29, 29)
-# define SO_STREAM_3_VERTEX_READ_LENGTH_SHIFT 24
-# define SO_STREAM_3_VERTEX_READ_LENGTH_MASK INTEL_MASK(28, 24)
-# define SO_STREAM_2_VERTEX_READ_OFFSET_SHIFT 21
-# define SO_STREAM_2_VERTEX_READ_OFFSET_MASK INTEL_MASK(21, 21)
-# define SO_STREAM_2_VERTEX_READ_LENGTH_SHIFT 16
-# define SO_STREAM_2_VERTEX_READ_LENGTH_MASK INTEL_MASK(20, 16)
-# define SO_STREAM_1_VERTEX_READ_OFFSET_SHIFT 13
-# define SO_STREAM_1_VERTEX_READ_OFFSET_MASK INTEL_MASK(13, 13)
-# define SO_STREAM_1_VERTEX_READ_LENGTH_SHIFT 8
-# define SO_STREAM_1_VERTEX_READ_LENGTH_MASK INTEL_MASK(12, 8)
-# define SO_STREAM_0_VERTEX_READ_OFFSET_SHIFT 5
-# define SO_STREAM_0_VERTEX_READ_OFFSET_MASK INTEL_MASK(5, 5)
-# define SO_STREAM_0_VERTEX_READ_LENGTH_SHIFT 0
-# define SO_STREAM_0_VERTEX_READ_LENGTH_MASK INTEL_MASK(4, 0)
-
-/* 3DSTATE_WM for Gfx7 */
-/* DW1 */
-# define GFX7_WM_STATISTICS_ENABLE (1 << 31)
-# define GFX7_WM_DEPTH_CLEAR (1 << 30)
-# define GFX7_WM_DISPATCH_ENABLE (1 << 29)
-# define GFX7_WM_DEPTH_RESOLVE (1 << 28)
-# define GFX7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27)
-# define GFX7_WM_KILL_ENABLE (1 << 25)
-# define GFX7_WM_COMPUTED_DEPTH_MODE_SHIFT 23
-# define GFX7_WM_USES_SOURCE_DEPTH (1 << 20)
-# define GFX7_WM_EARLY_DS_CONTROL_NORMAL (0 << 21)
-# define GFX7_WM_EARLY_DS_CONTROL_PSEXEC (1 << 21)
-# define GFX7_WM_EARLY_DS_CONTROL_PREPS (2 << 21)
-# define GFX7_WM_USES_SOURCE_W (1 << 19)
-# define GFX7_WM_POSITION_ZW_PIXEL (0 << 17)
-# define GFX7_WM_POSITION_ZW_CENTROID (2 << 17)
-# define GFX7_WM_POSITION_ZW_SAMPLE (3 << 17)
-# define GFX7_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT 11
-# define GFX7_WM_USES_INPUT_COVERAGE_MASK (1 << 10)
-# define GFX7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8)
-# define GFX7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8)
-# define GFX7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8)
-# define GFX7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8)
-# define GFX7_WM_LINE_AA_WIDTH_0_5 (0 << 6)
-# define GFX7_WM_LINE_AA_WIDTH_1_0 (1 << 6)
-# define GFX7_WM_LINE_AA_WIDTH_2_0 (2 << 6)
-# define GFX7_WM_LINE_AA_WIDTH_4_0 (3 << 6)
-# define GFX7_WM_POLYGON_STIPPLE_ENABLE (1 << 4)
-# define GFX7_WM_LINE_STIPPLE_ENABLE (1 << 3)
-# define GFX7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2)
-# define GFX7_WM_MSRAST_OFF_PIXEL (0 << 0)
-# define GFX7_WM_MSRAST_OFF_PATTERN (1 << 0)
-# define GFX7_WM_MSRAST_ON_PIXEL (2 << 0)
-# define GFX7_WM_MSRAST_ON_PATTERN (3 << 0)
-/* DW2 */
-# define GFX7_WM_MSDISPMODE_PERSAMPLE (0 << 31)
-# define GFX7_WM_MSDISPMODE_PERPIXEL (1 << 31)
-# define HSW_WM_UAV_ONLY (1 << 30)
-
-#define _3DSTATE_PS 0x7820 /* GFX7+ */
-/* DW1: kernel pointer */
-/* DW2 */
-# define GFX7_PS_SPF_MODE (1 << 31)
-# define GFX7_PS_VECTOR_MASK_ENABLE (1 << 30)
-# define GFX7_PS_SAMPLER_COUNT_SHIFT 27
-# define GFX7_PS_SAMPLER_COUNT_MASK INTEL_MASK(29, 27)
-# define GFX7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
-# define GFX7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
-# define GFX7_PS_FLOATING_POINT_MODE_ALT (1 << 16)
-/* DW3: scratch space */
-/* DW4 */
-# define IVB_PS_MAX_THREADS_SHIFT 24
-# define HSW_PS_MAX_THREADS_SHIFT 23
-# define HSW_PS_SAMPLE_MASK_SHIFT 12
-# define HSW_PS_SAMPLE_MASK_MASK INTEL_MASK(19, 12)
-# define GFX7_PS_PUSH_CONSTANT_ENABLE (1 << 11)
-# define GFX7_PS_ATTRIBUTE_ENABLE (1 << 10)
-# define GFX7_PS_OMASK_TO_RENDER_TARGET (1 << 9)
-# define GFX7_PS_RENDER_TARGET_FAST_CLEAR_ENABLE (1 << 8)
-# define GFX7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7)
-# define GFX7_PS_RENDER_TARGET_RESOLVE_ENABLE (1 << 6)
-# define GFX9_PS_RENDER_TARGET_RESOLVE_FULL (3 << 6)
-# define HSW_PS_UAV_ACCESS_ENABLE (1 << 5)
-# define GFX7_PS_POSOFFSET_NONE (0 << 3)
-# define GFX7_PS_POSOFFSET_CENTROID (2 << 3)
-# define GFX7_PS_POSOFFSET_SAMPLE (3 << 3)
-# define GFX7_PS_32_DISPATCH_ENABLE (1 << 2)
-# define GFX7_PS_16_DISPATCH_ENABLE (1 << 1)
-# define GFX7_PS_8_DISPATCH_ENABLE (1 << 0)
-/* DW5 */
-# define GFX7_PS_DISPATCH_START_GRF_SHIFT_0 16
-# define GFX7_PS_DISPATCH_START_GRF_SHIFT_1 8
-# define GFX7_PS_DISPATCH_START_GRF_SHIFT_2 0
-/* DW6: kernel 1 pointer */
-/* DW7: kernel 2 pointer */
-
-#define _3DSTATE_SAMPLE_MASK 0x7818 /* GFX6+ */
-
-#define _3DSTATE_DRAWING_RECTANGLE 0x7900
-#define _3DSTATE_BLEND_CONSTANT_COLOR 0x7901
-#define _3DSTATE_CHROMA_KEY 0x7904
-#define _3DSTATE_DEPTH_BUFFER 0x7905 /* GFX4-6 */
-#define _3DSTATE_POLY_STIPPLE_OFFSET 0x7906
-#define _3DSTATE_POLY_STIPPLE_PATTERN 0x7907
-#define _3DSTATE_LINE_STIPPLE_PATTERN 0x7908
-#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP 0x7909
-#define _3DSTATE_AA_LINE_PARAMETERS 0x790a /* G45+ */
-
-#define _3DSTATE_GS_SVB_INDEX 0x790b /* CTG+ */
-/* DW1 */
-# define SVB_INDEX_SHIFT 29
-# define SVB_LOAD_INTERNAL_VERTEX_COUNT (1 << 0) /* SNB+ */
-/* DW2: SVB index */
-/* DW3: SVB maximum index */
-
-#define _3DSTATE_MULTISAMPLE 0x790d /* GFX6+ */
-#define GFX8_3DSTATE_MULTISAMPLE 0x780d /* GFX8+ */
-/* DW1 */
-# define MS_PIXEL_LOCATION_CENTER (0 << 4)
-# define MS_PIXEL_LOCATION_UPPER_LEFT (1 << 4)
-# define MS_NUMSAMPLES_1 (0 << 1)
-# define MS_NUMSAMPLES_2 (1 << 1)
-# define MS_NUMSAMPLES_4 (2 << 1)
-# define MS_NUMSAMPLES_8 (3 << 1)
-# define MS_NUMSAMPLES_16 (4 << 1)
-
-#define _3DSTATE_SAMPLE_PATTERN 0x791c
-
-#define _3DSTATE_STENCIL_BUFFER 0x790e /* ILK, SNB */
-#define _3DSTATE_HIER_DEPTH_BUFFER 0x790f /* ILK, SNB */
-
-#define GFX7_3DSTATE_CLEAR_PARAMS 0x7804
-#define GFX7_3DSTATE_DEPTH_BUFFER 0x7805
-#define GFX7_3DSTATE_STENCIL_BUFFER 0x7806
-# define HSW_STENCIL_ENABLED (1 << 31)
-#define GFX7_3DSTATE_HIER_DEPTH_BUFFER 0x7807
-
-#define _3DSTATE_CLEAR_PARAMS 0x7910 /* ILK, SNB */
-# define GFX5_DEPTH_CLEAR_VALID (1 << 15)
-/* DW1: depth clear value */
-/* DW2 */
-# define GFX7_DEPTH_CLEAR_VALID (1 << 0)
-
-#define _3DSTATE_SO_DECL_LIST 0x7917 /* GFX7+ */
-/* DW1 */
-# define SO_STREAM_TO_BUFFER_SELECTS_3_SHIFT 12
-# define SO_STREAM_TO_BUFFER_SELECTS_3_MASK INTEL_MASK(15, 12)
-# define SO_STREAM_TO_BUFFER_SELECTS_2_SHIFT 8
-# define SO_STREAM_TO_BUFFER_SELECTS_2_MASK INTEL_MASK(11, 8)
-# define SO_STREAM_TO_BUFFER_SELECTS_1_SHIFT 4
-# define SO_STREAM_TO_BUFFER_SELECTS_1_MASK INTEL_MASK(7, 4)
-# define SO_STREAM_TO_BUFFER_SELECTS_0_SHIFT 0
-# define SO_STREAM_TO_BUFFER_SELECTS_0_MASK INTEL_MASK(3, 0)
-/* DW2 */
-# define SO_NUM_ENTRIES_3_SHIFT 24
-# define SO_NUM_ENTRIES_3_MASK INTEL_MASK(31, 24)
-# define SO_NUM_ENTRIES_2_SHIFT 16
-# define SO_NUM_ENTRIES_2_MASK INTEL_MASK(23, 16)
-# define SO_NUM_ENTRIES_1_SHIFT 8
-# define SO_NUM_ENTRIES_1_MASK INTEL_MASK(15, 8)
-# define SO_NUM_ENTRIES_0_SHIFT 0
-# define SO_NUM_ENTRIES_0_MASK INTEL_MASK(7, 0)
-
-/* SO_DECL DW0 */
-# define SO_DECL_OUTPUT_BUFFER_SLOT_SHIFT 12
-# define SO_DECL_OUTPUT_BUFFER_SLOT_MASK INTEL_MASK(13, 12)
-# define SO_DECL_HOLE_FLAG (1 << 11)
-# define SO_DECL_REGISTER_INDEX_SHIFT 4
-# define SO_DECL_REGISTER_INDEX_MASK INTEL_MASK(9, 4)
-# define SO_DECL_COMPONENT_MASK_SHIFT 0
-# define SO_DECL_COMPONENT_MASK_MASK INTEL_MASK(3, 0)
-
-#define _3DSTATE_SO_BUFFER 0x7918 /* GFX7+ */
-/* DW1 */
-# define GFX8_SO_BUFFER_ENABLE (1 << 31)
-# define SO_BUFFER_INDEX_SHIFT 29
-# define SO_BUFFER_INDEX_MASK INTEL_MASK(30, 29)
-# define GFX8_SO_BUFFER_OFFSET_WRITE_ENABLE (1 << 21)
-# define GFX8_SO_BUFFER_OFFSET_ADDRESS_ENABLE (1 << 20)
-# define SO_BUFFER_PITCH_SHIFT 0
-# define SO_BUFFER_PITCH_MASK INTEL_MASK(11, 0)
-/* DW2: start address */
-/* DW3: end address. */
-
-#define _3DSTATE_3D_MODE 0x791e
-# define SLICE_HASHING_TABLE_ENABLE (1 << 6)
-# define SLICE_HASHING_TABLE_ENABLE_MASK REG_MASK(1 << 6)
-
-#define _3DSTATE_SLICE_TABLE_STATE_POINTERS 0x7920
-
-#define CMD_MI_FLUSH 0x0200
-
-# define BLT_X_SHIFT 0
-# define BLT_X_MASK INTEL_MASK(15, 0)
-# define BLT_Y_SHIFT 16
-# define BLT_Y_MASK INTEL_MASK(31, 16)
-
-#define GFX5_MI_REPORT_PERF_COUNT ((0x26 << 23) | (3 - 2))
-/* DW0 */
-# define GFX5_MI_COUNTER_SET_0 (0 << 6)
-# define GFX5_MI_COUNTER_SET_1 (1 << 6)
-/* DW1 */
-# define MI_COUNTER_ADDRESS_GTT (1 << 0)
-/* DW2: a user-defined report ID (written to the buffer but can be anything) */
-
-#define GFX6_MI_REPORT_PERF_COUNT ((0x28 << 23) | (3 - 2))
-
-#define GFX8_MI_REPORT_PERF_COUNT ((0x28 << 23) | (4 - 2))
-
-/* Maximum number of entries that can be addressed using a binding table
- * pointer of type SURFTYPE_BUFFER
- */
-#define BRW_MAX_NUM_BUFFER_ENTRIES (1 << 27)
-
-#define MEDIA_VFE_STATE 0x7000
-/* GFX7 DW2, GFX8+ DW3 */
-# define MEDIA_VFE_STATE_MAX_THREADS_SHIFT 16
-# define MEDIA_VFE_STATE_MAX_THREADS_MASK INTEL_MASK(31, 16)
-# define MEDIA_VFE_STATE_URB_ENTRIES_SHIFT 8
-# define MEDIA_VFE_STATE_URB_ENTRIES_MASK INTEL_MASK(15, 8)
-# define MEDIA_VFE_STATE_RESET_GTW_TIMER_SHIFT 7
-# define MEDIA_VFE_STATE_RESET_GTW_TIMER_MASK INTEL_MASK(7, 7)
-# define MEDIA_VFE_STATE_BYPASS_GTW_SHIFT 6
-# define MEDIA_VFE_STATE_BYPASS_GTW_MASK INTEL_MASK(6, 6)
-# define GFX7_MEDIA_VFE_STATE_GPGPU_MODE_SHIFT 2
-# define GFX7_MEDIA_VFE_STATE_GPGPU_MODE_MASK INTEL_MASK(2, 2)
-/* GFX7 DW4, GFX8+ DW5 */
-# define MEDIA_VFE_STATE_URB_ALLOC_SHIFT 16
-# define MEDIA_VFE_STATE_URB_ALLOC_MASK INTEL_MASK(31, 16)
-# define MEDIA_VFE_STATE_CURBE_ALLOC_SHIFT 0
-# define MEDIA_VFE_STATE_CURBE_ALLOC_MASK INTEL_MASK(15, 0)
-
-#define MEDIA_CURBE_LOAD 0x7001
-#define MEDIA_INTERFACE_DESCRIPTOR_LOAD 0x7002
-/* GFX7 DW4, GFX8+ DW5 */
-# define MEDIA_CURBE_READ_LENGTH_SHIFT 16
-# define MEDIA_CURBE_READ_LENGTH_MASK INTEL_MASK(31, 16)
-# define MEDIA_CURBE_READ_OFFSET_SHIFT 0
-# define MEDIA_CURBE_READ_OFFSET_MASK INTEL_MASK(15, 0)
-/* GFX7 DW5, GFX8+ DW6 */
-# define MEDIA_BARRIER_ENABLE_SHIFT 21
-# define MEDIA_BARRIER_ENABLE_MASK INTEL_MASK(21, 21)
-# define MEDIA_SHARED_LOCAL_MEMORY_SIZE_SHIFT 16
-# define MEDIA_SHARED_LOCAL_MEMORY_SIZE_MASK INTEL_MASK(20, 16)
-# define MEDIA_GPGPU_THREAD_COUNT_SHIFT 0
-# define MEDIA_GPGPU_THREAD_COUNT_MASK INTEL_MASK(7, 0)
-# define GFX8_MEDIA_GPGPU_THREAD_COUNT_SHIFT 0
-# define GFX8_MEDIA_GPGPU_THREAD_COUNT_MASK INTEL_MASK(9, 0)
-/* GFX7 DW6, GFX8+ DW7 */
-# define CROSS_THREAD_READ_LENGTH_SHIFT 0
-# define CROSS_THREAD_READ_LENGTH_MASK INTEL_MASK(7, 0)
-#define MEDIA_STATE_FLUSH 0x7004
-#define GPGPU_WALKER 0x7105
-/* GFX7 DW0 */
-# define GFX7_GPGPU_INDIRECT_PARAMETER_ENABLE (1 << 10)
-# define GFX7_GPGPU_PREDICATE_ENABLE (1 << 8)
-/* GFX8+ DW2 */
-# define GPGPU_WALKER_INDIRECT_LENGTH_SHIFT 0
-# define GPGPU_WALKER_INDIRECT_LENGTH_MASK INTEL_MASK(15, 0)
-/* GFX7 DW2, GFX8+ DW4 */
-# define GPGPU_WALKER_SIMD_SIZE_SHIFT 30
-# define GPGPU_WALKER_SIMD_SIZE_MASK INTEL_MASK(31, 30)
-# define GPGPU_WALKER_THREAD_DEPTH_MAX_SHIFT 16
-# define GPGPU_WALKER_THREAD_DEPTH_MAX_MASK INTEL_MASK(21, 16)
-# define GPGPU_WALKER_THREAD_HEIGHT_MAX_SHIFT 8
-# define GPGPU_WALKER_THREAD_HEIGHT_MAX_MASK INTEL_MASK(31, 8)
-# define GPGPU_WALKER_THREAD_WIDTH_MAX_SHIFT 0
-# define GPGPU_WALKER_THREAD_WIDTH_MAX_MASK INTEL_MASK(5, 0)
-
-#define CMD_MI (0x0 << 29)
-#define CMD_2D (0x2 << 29)
-#define CMD_3D (0x3 << 29)
-
-#define MI_NOOP (CMD_MI | 0)
-
-#define MI_BATCH_BUFFER_END (CMD_MI | 0xA << 23)
-
-#define MI_FLUSH (CMD_MI | (4 << 23))
-#define FLUSH_MAP_CACHE (1 << 0)
-#define INHIBIT_FLUSH_RENDER_CACHE (1 << 2)
-
-#define MI_STORE_DATA_IMM (CMD_MI | (0x20 << 23))
-#define MI_LOAD_REGISTER_IMM (CMD_MI | (0x22 << 23))
-#define MI_LOAD_REGISTER_REG (CMD_MI | (0x2A << 23))
-
-#define MI_FLUSH_DW (CMD_MI | (0x26 << 23))
-
-#define MI_STORE_REGISTER_MEM (CMD_MI | (0x24 << 23))
-# define MI_STORE_REGISTER_MEM_USE_GGTT (1 << 22)
-# define MI_STORE_REGISTER_MEM_PREDICATE (1 << 21)
-
-/* Load a value from memory into a register. Only available on Gfx7+. */
-#define GFX7_MI_LOAD_REGISTER_MEM (CMD_MI | (0x29 << 23))
-# define MI_LOAD_REGISTER_MEM_USE_GGTT (1 << 22)
-
-/* Manipulate the predicate bit based on some register values. Only on Gfx7+ */
-#define GFX7_MI_PREDICATE (CMD_MI | (0xC << 23))
-# define MI_PREDICATE_LOADOP_KEEP (0 << 6)
-# define MI_PREDICATE_LOADOP_LOAD (2 << 6)
-# define MI_PREDICATE_LOADOP_LOADINV (3 << 6)
-# define MI_PREDICATE_COMBINEOP_SET (0 << 3)
-# define MI_PREDICATE_COMBINEOP_AND (1 << 3)
-# define MI_PREDICATE_COMBINEOP_OR (2 << 3)
-# define MI_PREDICATE_COMBINEOP_XOR (3 << 3)
-# define MI_PREDICATE_COMPAREOP_TRUE (0 << 0)
-# define MI_PREDICATE_COMPAREOP_FALSE (1 << 0)
-# define MI_PREDICATE_COMPAREOP_SRCS_EQUAL (2 << 0)
-# define MI_PREDICATE_COMPAREOP_DELTAS_EQUAL (3 << 0)
-
-#define HSW_MI_MATH (CMD_MI | (0x1a << 23))
-
-#define MI_MATH_ALU2(opcode, operand1, operand2) \
- ( ((MI_MATH_OPCODE_##opcode) << 20) | ((MI_MATH_OPERAND_##operand1) << 10) | \
- ((MI_MATH_OPERAND_##operand2) << 0) )
-
-#define MI_MATH_ALU1(opcode, operand1) \
- ( ((MI_MATH_OPCODE_##opcode) << 20) | ((MI_MATH_OPERAND_##operand1) << 10) )
-
-#define MI_MATH_ALU0(opcode) \
- ( ((MI_MATH_OPCODE_##opcode) << 20) )
-
-#define MI_MATH_OPCODE_NOOP 0x000
-#define MI_MATH_OPCODE_LOAD 0x080
-#define MI_MATH_OPCODE_LOADINV 0x480
-#define MI_MATH_OPCODE_LOAD0 0x081
-#define MI_MATH_OPCODE_LOAD1 0x481
-#define MI_MATH_OPCODE_ADD 0x100
-#define MI_MATH_OPCODE_SUB 0x101
-#define MI_MATH_OPCODE_AND 0x102
-#define MI_MATH_OPCODE_OR 0x103
-#define MI_MATH_OPCODE_XOR 0x104
-#define MI_MATH_OPCODE_STORE 0x180
-#define MI_MATH_OPCODE_STOREINV 0x580
-
-#define MI_MATH_OPERAND_R0 0x00
-#define MI_MATH_OPERAND_R1 0x01
-#define MI_MATH_OPERAND_R2 0x02
-#define MI_MATH_OPERAND_R3 0x03
-#define MI_MATH_OPERAND_R4 0x04
-#define MI_MATH_OPERAND_SRCA 0x20
-#define MI_MATH_OPERAND_SRCB 0x21
-#define MI_MATH_OPERAND_ACCU 0x31
-#define MI_MATH_OPERAND_ZF 0x32
-#define MI_MATH_OPERAND_CF 0x33
-
-#define XY_SETUP_BLT_CMD (CMD_2D | (0x01 << 22))
-
-#define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22))
-
-#define XY_SRC_COPY_BLT_CMD (CMD_2D | (0x53 << 22))
-
-#define XY_FAST_COPY_BLT_CMD (CMD_2D | (0x42 << 22))
-
-#define XY_TEXT_IMMEDIATE_BLIT_CMD (CMD_2D | (0x31 << 22))
-# define XY_TEXT_BYTE_PACKED (1 << 16)
-
-/* BR00 */
-#define XY_BLT_WRITE_ALPHA (1 << 21)
-#define XY_BLT_WRITE_RGB (1 << 20)
-#define XY_SRC_TILED (1 << 15)
-#define XY_DST_TILED (1 << 11)
-
-/* BR00 */
-#define XY_FAST_SRC_TILED_64K (3 << 20)
-#define XY_FAST_SRC_TILED_Y (2 << 20)
-#define XY_FAST_SRC_TILED_X (1 << 20)
-
-#define XY_FAST_DST_TILED_64K (3 << 13)
-#define XY_FAST_DST_TILED_Y (2 << 13)
-#define XY_FAST_DST_TILED_X (1 << 13)
-
-/* BR13 */
-#define BR13_8 (0x0 << 24)
-#define BR13_565 (0x1 << 24)
-#define BR13_8888 (0x3 << 24)
-#define BR13_16161616 (0x4 << 24)
-#define BR13_32323232 (0x5 << 24)
-
-#define GFX6_SO_PRIM_STORAGE_NEEDED 0x2280
-#define GFX7_SO_PRIM_STORAGE_NEEDED(n) (0x5240 + (n) * 8)
-
-#define GFX6_SO_NUM_PRIMS_WRITTEN 0x2288
-#define GFX7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)
-
-#define GFX7_SO_WRITE_OFFSET(n) (0x5280 + (n) * 4)
-
-#define TIMESTAMP 0x2358
-
-#define BCS_SWCTRL 0x22200
-# define BCS_SWCTRL_SRC_Y (1 << 0)
-# define BCS_SWCTRL_DST_Y (1 << 1)
-
-#define OACONTROL 0x2360
-# define OACONTROL_COUNTER_SELECT_SHIFT 2
-# define OACONTROL_ENABLE_COUNTERS (1 << 0)
-
-/* Auto-Draw / Indirect Registers */
-#define GFX7_3DPRIM_END_OFFSET 0x2420
-#define GFX7_3DPRIM_START_VERTEX 0x2430
-#define GFX7_3DPRIM_VERTEX_COUNT 0x2434
-#define GFX7_3DPRIM_INSTANCE_COUNT 0x2438
-#define GFX7_3DPRIM_START_INSTANCE 0x243C
-#define GFX7_3DPRIM_BASE_VERTEX 0x2440
-
-/* Auto-Compute / Indirect Registers */
-#define GFX7_GPGPU_DISPATCHDIMX 0x2500
-#define GFX7_GPGPU_DISPATCHDIMY 0x2504
-#define GFX7_GPGPU_DISPATCHDIMZ 0x2508
-
-#define GFX7_CACHE_MODE_0 0x7000
-#define GFX7_CACHE_MODE_1 0x7004
-# define GFX9_FLOAT_BLEND_OPTIMIZATION_ENABLE (1 << 4)
-# define GFX9_MSC_RAW_HAZARD_AVOIDANCE_BIT (1 << 9)
-# define GFX8_HIZ_NP_PMA_FIX_ENABLE (1 << 11)
-# define GFX8_HIZ_NP_EARLY_Z_FAILS_DISABLE (1 << 13)
-# define GFX9_PARTIAL_RESOLVE_DISABLE_IN_VC (1 << 1)
-# define GFX8_HIZ_PMA_MASK_BITS \
- REG_MASK(GFX8_HIZ_NP_PMA_FIX_ENABLE | GFX8_HIZ_NP_EARLY_Z_FAILS_DISABLE)
-# define GFX11_DISABLE_REPACKING_FOR_COMPRESSION (1 << 15)
-
-#define GFX7_GT_MODE 0x7008
-# define GFX9_SUBSLICE_HASHING_8x8 (0 << 8)
-# define GFX9_SUBSLICE_HASHING_16x4 (1 << 8)
-# define GFX9_SUBSLICE_HASHING_8x4 (2 << 8)
-# define GFX9_SUBSLICE_HASHING_16x16 (3 << 8)
-# define GFX9_SUBSLICE_HASHING_MASK_BITS REG_MASK(3 << 8)
-# define GFX9_SLICE_HASHING_NORMAL (0 << 11)
-# define GFX9_SLICE_HASHING_DISABLED (1 << 11)
-# define GFX9_SLICE_HASHING_32x16 (2 << 11)
-# define GFX9_SLICE_HASHING_32x32 (3 << 11)
-# define GFX9_SLICE_HASHING_MASK_BITS REG_MASK(3 << 11)
-
-/* Predicate registers */
-#define MI_PREDICATE_SRC0 0x2400
-#define MI_PREDICATE_SRC1 0x2408
-#define MI_PREDICATE_DATA 0x2410
-#define MI_PREDICATE_RESULT 0x2418
-#define MI_PREDICATE_RESULT_1 0x241C
-#define MI_PREDICATE_RESULT_2 0x2214
-
-#define HSW_CS_GPR(n) (0x2600 + (n) * 8)
-
-/* L3 cache control registers. */
-#define GFX7_L3SQCREG1 0xb010
-/* L3SQ general and high priority credit initialization. */
-# define IVB_L3SQCREG1_SQGHPCI_DEFAULT 0x00730000
-# define VLV_L3SQCREG1_SQGHPCI_DEFAULT 0x00d30000
-# define HSW_L3SQCREG1_SQGHPCI_DEFAULT 0x00610000
-# define GFX7_L3SQCREG1_CONV_DC_UC (1 << 24)
-# define GFX7_L3SQCREG1_CONV_IS_UC (1 << 25)
-# define GFX7_L3SQCREG1_CONV_C_UC (1 << 26)
-# define GFX7_L3SQCREG1_CONV_T_UC (1 << 27)
-
-#define GFX7_L3CNTLREG2 0xb020
-# define GFX7_L3CNTLREG2_SLM_ENABLE (1 << 0)
-# define GFX7_L3CNTLREG2_URB_ALLOC_SHIFT 1
-# define GFX7_L3CNTLREG2_URB_ALLOC_MASK INTEL_MASK(6, 1)
-# define GFX7_L3CNTLREG2_URB_LOW_BW (1 << 7)
-# define GFX7_L3CNTLREG2_ALL_ALLOC_SHIFT 8
-# define GFX7_L3CNTLREG2_ALL_ALLOC_MASK INTEL_MASK(13, 8)
-# define GFX7_L3CNTLREG2_RO_ALLOC_SHIFT 14
-# define GFX7_L3CNTLREG2_RO_ALLOC_MASK INTEL_MASK(19, 14)
-# define GFX7_L3CNTLREG2_RO_LOW_BW (1 << 20)
-# define GFX7_L3CNTLREG2_DC_ALLOC_SHIFT 21
-# define GFX7_L3CNTLREG2_DC_ALLOC_MASK INTEL_MASK(26, 21)
-# define GFX7_L3CNTLREG2_DC_LOW_BW (1 << 27)
-
-#define GFX7_L3CNTLREG3 0xb024
-# define GFX7_L3CNTLREG3_IS_ALLOC_SHIFT 1
-# define GFX7_L3CNTLREG3_IS_ALLOC_MASK INTEL_MASK(6, 1)
-# define GFX7_L3CNTLREG3_IS_LOW_BW (1 << 7)
-# define GFX7_L3CNTLREG3_C_ALLOC_SHIFT 8
-# define GFX7_L3CNTLREG3_C_ALLOC_MASK INTEL_MASK(13, 8)
-# define GFX7_L3CNTLREG3_C_LOW_BW (1 << 14)
-# define GFX7_L3CNTLREG3_T_ALLOC_SHIFT 15
-# define GFX7_L3CNTLREG3_T_ALLOC_MASK INTEL_MASK(20, 15)
-# define GFX7_L3CNTLREG3_T_LOW_BW (1 << 21)
-
-#define HSW_SCRATCH1 0xb038
-#define HSW_SCRATCH1_L3_ATOMIC_DISABLE (1 << 27)
-
-#define HSW_ROW_CHICKEN3 0xe49c
-#define HSW_ROW_CHICKEN3_L3_ATOMIC_DISABLE (1 << 6)
-
-#define GFX8_L3CNTLREG 0x7034
-# define GFX8_L3CNTLREG_SLM_ENABLE (1 << 0)
-# define GFX8_L3CNTLREG_URB_ALLOC_SHIFT 1
-# define GFX8_L3CNTLREG_URB_ALLOC_MASK INTEL_MASK(7, 1)
-# define GFX8_L3CNTLREG_RO_ALLOC_SHIFT 11
-# define GFX8_L3CNTLREG_RO_ALLOC_MASK INTEL_MASK(17, 11)
-# define GFX8_L3CNTLREG_DC_ALLOC_SHIFT 18
-# define GFX8_L3CNTLREG_DC_ALLOC_MASK INTEL_MASK(24, 18)
-# define GFX8_L3CNTLREG_ALL_ALLOC_SHIFT 25
-# define GFX8_L3CNTLREG_ALL_ALLOC_MASK INTEL_MASK(31, 25)
-# define GFX8_L3CNTLREG_EDBC_NO_HANG (1 << 9)
-# define GFX11_L3CNTLREG_USE_FULL_WAYS (1 << 10)
-
-#define GFX10_CACHE_MODE_SS 0x0e420
-#define GFX10_FLOAT_BLEND_OPTIMIZATION_ENABLE (1 << 4)
-
-#define INSTPM 0x20c0
-# define INSTPM_CONSTANT_BUFFER_ADDRESS_OFFSET_DISABLE (1 << 6)
-
-#define CS_DEBUG_MODE2 0x20d8 /* Gfx9+ */
-# define CSDBG2_CONSTANT_BUFFER_ADDRESS_OFFSET_DISABLE (1 << 4)
-
-#define SLICE_COMMON_ECO_CHICKEN1 0x731c /* Gfx9+ */
-# define GLK_SCEC_BARRIER_MODE_GPGPU (0 << 7)
-# define GLK_SCEC_BARRIER_MODE_3D_HULL (1 << 7)
-# define GLK_SCEC_BARRIER_MODE_MASK REG_MASK(1 << 7)
-# define GFX11_STATE_CACHE_REDIRECT_TO_CS_SECTION_ENABLE (1 << 11)
-
-#define HALF_SLICE_CHICKEN7 0xE194
-# define TEXEL_OFFSET_FIX_ENABLE (1 << 1)
-# define TEXEL_OFFSET_FIX_MASK REG_MASK(1 << 1)
-
-#define GFX11_SAMPLER_MODE 0xE18C
-# define HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS (1 << 5)
-# define HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS_MASK REG_MASK(1 << 5)
-
-#define CS_CHICKEN1 0x2580 /* Gfx9+ */
-# define GFX9_REPLAY_MODE_MIDBUFFER (0 << 0)
-# define GFX9_REPLAY_MODE_MIDOBJECT (1 << 0)
-# define GFX9_REPLAY_MODE_MASK REG_MASK(1 << 0)
-
-#endif