103b705cfSriastradh#ifndef GEN6_RENDER_H
203b705cfSriastradh#define GEN6_RENDER_H
303b705cfSriastradh
403b705cfSriastradh#define GEN6_MASK(high, low) (((1 << ((high) - (low) + 1)) - 1) << (low))
503b705cfSriastradh
603b705cfSriastradh#define GEN6_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \
703b705cfSriastradh					   ((Pipeline) << 27) | \
803b705cfSriastradh					   ((Opcode) << 24) | \
903b705cfSriastradh					   ((Subopcode) << 16))
1003b705cfSriastradh
1103b705cfSriastradh#define GEN6_STATE_BASE_ADDRESS			GEN6_3D(0, 1, 1)
1203b705cfSriastradh#define GEN6_STATE_SIP				GEN6_3D(0, 1, 2)
1303b705cfSriastradh
1403b705cfSriastradh#define GEN6_PIPELINE_SELECT			GEN6_3D(1, 1, 4)
1503b705cfSriastradh
1603b705cfSriastradh#define GEN6_MEDIA_STATE_POINTERS		GEN6_3D(2, 0, 0)
1703b705cfSriastradh#define GEN6_MEDIA_OBJECT			GEN6_3D(2, 1, 0)
1803b705cfSriastradh
1903b705cfSriastradh#define GEN6_3DSTATE_BINDING_TABLE_POINTERS	GEN6_3D(3, 0, 1)
2003b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS  (1 << 12)/* for GEN6 */
2103b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS  (1 << 9) /* for GEN6 */
2203b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS  (1 << 8) /* for GEN6 */
2303b705cfSriastradh
2403b705cfSriastradh#define GEN6_3DSTATE_VERTEX_BUFFERS		GEN6_3D(3, 0, 8)
2503b705cfSriastradh#define GEN6_3DSTATE_VERTEX_ELEMENTS		GEN6_3D(3, 0, 9)
2603b705cfSriastradh#define GEN6_3DSTATE_INDEX_BUFFER		GEN6_3D(3, 0, 0xa)
2703b705cfSriastradh#define GEN6_3DSTATE_VF_STATISTICS		GEN6_3D(3, 0, 0xb)
2803b705cfSriastradh
2903b705cfSriastradh#define GEN6_3DSTATE_DRAWING_RECTANGLE		GEN6_3D(3, 1, 0)
3003b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_COLOR		GEN6_3D(3, 1, 1)
3103b705cfSriastradh#define GEN6_3DSTATE_SAMPLER_PALETTE_LOAD	GEN6_3D(3, 1, 2)
3203b705cfSriastradh#define GEN6_3DSTATE_CHROMA_KEY			GEN6_3D(3, 1, 4)
3303b705cfSriastradh#define GEN6_3DSTATE_DEPTH_BUFFER		GEN6_3D(3, 1, 5)
3403b705cfSriastradh# define GEN6_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT	29
3503b705cfSriastradh# define GEN6_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT	18
3603b705cfSriastradh
3703b705cfSriastradh#define GEN6_3DSTATE_POLY_STIPPLE_OFFSET		GEN6_3D(3, 1, 6)
3803b705cfSriastradh#define GEN6_3DSTATE_POLY_STIPPLE_PATTERN	GEN6_3D(3, 1, 7)
3903b705cfSriastradh#define GEN6_3DSTATE_LINE_STIPPLE		GEN6_3D(3, 1, 8)
4003b705cfSriastradh#define GEN6_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP	GEN6_3D(3, 1, 9)
4103b705cfSriastradh/* These two are BLC and CTG only, not BW or CL */
4203b705cfSriastradh#define GEN6_3DSTATE_AA_LINE_PARAMS		GEN6_3D(3, 1, 0xa)
4303b705cfSriastradh#define GEN6_3DSTATE_GS_SVB_INDEX		GEN6_3D(3, 1, 0xb)
4403b705cfSriastradh
4503b705cfSriastradh#define GEN6_3DPRIMITIVE				GEN6_3D(3, 3, 0)
4603b705cfSriastradh
4703b705cfSriastradh#define GEN6_3DSTATE_CLEAR_PARAMS		GEN6_3D(3, 1, 0x10)
4803b705cfSriastradh/* DW1 */
4903b705cfSriastradh# define GEN6_3DSTATE_DEPTH_CLEAR_VALID		(1 << 15)
5003b705cfSriastradh
5103b705cfSriastradh#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS	GEN6_3D(3, 0, 0x02)
5203b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS	(1 << 12)
5303b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS	(1 << 9)
5403b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS	(1 << 8)
5503b705cfSriastradh
5603b705cfSriastradh#define GEN6_3DSTATE_URB			GEN6_3D(3, 0, 0x05)
5703b705cfSriastradh/* DW1 */
5803b705cfSriastradh# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT		16
5903b705cfSriastradh# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT	0
6003b705cfSriastradh/* DW2 */
6103b705cfSriastradh# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT	8
6203b705cfSriastradh# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT		0
6303b705cfSriastradh
6403b705cfSriastradh#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS	GEN6_3D(3, 0, 0x0d)
6503b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC		(1 << 12)
6603b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF		(1 << 11)
6703b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP	(1 << 10)
6803b705cfSriastradh
6903b705cfSriastradh#define GEN6_3DSTATE_CC_STATE_POINTERS		GEN6_3D(3, 0, 0x0e)
7003b705cfSriastradh
7103b705cfSriastradh#define GEN6_3DSTATE_VS				GEN6_3D(3, 0, 0x10)
7203b705cfSriastradh
7303b705cfSriastradh#define GEN6_3DSTATE_GS				GEN6_3D(3, 0, 0x11)
7403b705cfSriastradh/* DW4 */
7503b705cfSriastradh# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT	0
7603b705cfSriastradh
7703b705cfSriastradh#define GEN6_3DSTATE_CLIP			GEN6_3D(3, 0, 0x12)
7803b705cfSriastradh
7903b705cfSriastradh#define GEN6_3DSTATE_SF				GEN6_3D(3, 0, 0x13)
8003b705cfSriastradh/* DW1 */
8103b705cfSriastradh# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT		22
8203b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT	11
8303b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT	4
8403b705cfSriastradh/* DW2 */
8503b705cfSriastradh/* DW3 */
8603b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BOTH			(0 << 29)
8703b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_NONE			(1 << 29)
8803b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_FRONT			(2 << 29)
8903b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BACK			(3 << 29)
9003b705cfSriastradh/* DW4 */
9103b705cfSriastradh# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT		29
9203b705cfSriastradh# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT		27
9303b705cfSriastradh# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT		25
9403b705cfSriastradh
9503b705cfSriastradh#define GEN6_3DSTATE_WM				GEN6_3D(3, 0, 0x14)
9603b705cfSriastradh/* DW2 */
9703b705cfSriastradh# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHIFT			27
9803b705cfSriastradh# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
9903b705cfSriastradh/* DW4 */
10003b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_0_START_GRF_SHIFT		16
10103b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_1_START_GRF_SHIFT		8
10203b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_2_START_GRF_SHIFT		0
10303b705cfSriastradh/* DW5 */
10403b705cfSriastradh# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT			25
10503b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_ENABLE			(1 << 19)
10603b705cfSriastradh# define GEN6_3DSTATE_WM_32_DISPATCH_ENABLE			(1 << 2)
10703b705cfSriastradh# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE			(1 << 1)
10803b705cfSriastradh# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE			(1 << 0)
10903b705cfSriastradh/* DW6 */
11003b705cfSriastradh# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT			20
11103b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC	(1 << 15)
11203b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 14)
11303b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC	(1 << 13)
11403b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC		(1 << 12)
11503b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 11)
11603b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC		(1 << 10)
11703b705cfSriastradh
11803b705cfSriastradh
11903b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_VS		GEN6_3D(3, 0, 0x15)
12003b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_GS		GEN6_3D(3, 0, 0x16)
12103b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_PS		GEN6_3D(3, 0, 0x17)
12203b705cfSriastradh
12303b705cfSriastradh#define GEN6_3DSTATE_SAMPLE_MASK		GEN6_3D(3, 0, 0x18)
12403b705cfSriastradh
12503b705cfSriastradh#define GEN6_3DSTATE_MULTISAMPLE		GEN6_3D(3, 1, 0x0d)
12603b705cfSriastradh/* DW1 */
12703b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER		(0 << 4)
12803b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT	(1 << 4)
12903b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1			(0 << 1)
13003b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4			(2 << 1)
13103b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8			(3 << 1)
13203b705cfSriastradh
13303b705cfSriastradh#define PIPELINE_SELECT_3D		0
13403b705cfSriastradh#define PIPELINE_SELECT_MEDIA		1
13503b705cfSriastradh
13603b705cfSriastradh/* for GEN6_STATE_BASE_ADDRESS */
13703b705cfSriastradh#define BASE_ADDRESS_MODIFY		(1 << 0)
13803b705cfSriastradh
13903b705cfSriastradh/* VERTEX_BUFFER_STATE Structure */
14003b705cfSriastradh#define VB0_BUFFER_INDEX_SHIFT	26
14103b705cfSriastradh#define VB0_VERTEXDATA			(0 << 20)
14203b705cfSriastradh#define VB0_INSTANCEDATA		(1 << 20)
14303b705cfSriastradh#define VB0_BUFFER_PITCH_SHIFT		0
14403b705cfSriastradh
14503b705cfSriastradh/* VERTEX_ELEMENT_STATE Structure */
14603b705cfSriastradh#define VE0_VERTEX_BUFFER_INDEX_SHIFT	26 /* for GEN6 */
14703b705cfSriastradh#define VE0_VALID			(1 << 25) /* for GEN6 */
14803b705cfSriastradh#define VE0_FORMAT_SHIFT		16
14903b705cfSriastradh#define VE0_OFFSET_SHIFT		0
15003b705cfSriastradh#define VE1_VFCOMPONENT_0_SHIFT		28
15103b705cfSriastradh#define VE1_VFCOMPONENT_1_SHIFT		24
15203b705cfSriastradh#define VE1_VFCOMPONENT_2_SHIFT		20
15303b705cfSriastradh#define VE1_VFCOMPONENT_3_SHIFT		16
15403b705cfSriastradh#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT	0
15503b705cfSriastradh
15603b705cfSriastradh/* 3DPRIMITIVE bits */
15703b705cfSriastradh#define GEN6_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15)
15803b705cfSriastradh#define GEN6_3DPRIMITIVE_VERTEX_RANDOM	  (1 << 15)
15903b705cfSriastradh/* Primitive types are in gen6_defines.h */
16003b705cfSriastradh#define GEN6_3DPRIMITIVE_TOPOLOGY_SHIFT	  10
16103b705cfSriastradh
16203b705cfSriastradh#define GEN6_SVG_CTL		       0x7400
16303b705cfSriastradh
16403b705cfSriastradh#define GEN6_SVG_CTL_GS_BA	       (0 << 8)
16503b705cfSriastradh#define GEN6_SVG_CTL_SS_BA	       (1 << 8)
16603b705cfSriastradh#define GEN6_SVG_CTL_IO_BA	       (2 << 8)
16703b705cfSriastradh#define GEN6_SVG_CTL_GS_AUB	       (3 << 8)
16803b705cfSriastradh#define GEN6_SVG_CTL_IO_AUB	       (4 << 8)
16903b705cfSriastradh#define GEN6_SVG_CTL_SIP		       (5 << 8)
17003b705cfSriastradh
17103b705cfSriastradh#define GEN6_SVG_RDATA		       0x7404
17203b705cfSriastradh#define GEN6_SVG_WORK_CTL	       0x7408
17303b705cfSriastradh
17403b705cfSriastradh#define GEN6_VF_CTL		       0x7500
17503b705cfSriastradh
17603b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
17703b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID	   (0 << 8)
17803b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG	   (1 << 8)
17903b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE   (0 << 4)
18003b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX	   (1 << 4)
18103b705cfSriastradh#define GEN6_VF_CTL_SKIP_INITIAL_PRIMITIVES	   (1 << 3)
18203b705cfSriastradh#define GEN6_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE	   (1 << 2)
18303b705cfSriastradh#define GEN6_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE	   (1 << 1)
18403b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_ENABLE	     	   (1 << 0)
18503b705cfSriastradh
18603b705cfSriastradh#define GEN6_VF_STRG_VAL		       0x7504
18703b705cfSriastradh#define GEN6_VF_STR_VL_OVR	       0x7508
18803b705cfSriastradh#define GEN6_VF_VC_OVR		       0x750c
18903b705cfSriastradh#define GEN6_VF_STR_PSKIP	       0x7510
19003b705cfSriastradh#define GEN6_VF_MAX_PRIM		       0x7514
19103b705cfSriastradh#define GEN6_VF_RDATA		       0x7518
19203b705cfSriastradh
19303b705cfSriastradh#define GEN6_VS_CTL		       0x7600
19403b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
19503b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VERTEX_0	   (0 << 8)
19603b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VERTEX_1	   (1 << 8)
19703b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VALID_COUNT	   (2 << 8)
19803b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER  (3 << 8)
19903b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
20003b705cfSriastradh#define GEN6_VS_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
20103b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
20203b705cfSriastradh
20303b705cfSriastradh#define GEN6_VS_STRG_VAL		       0x7604
20403b705cfSriastradh#define GEN6_VS_RDATA		       0x7608
20503b705cfSriastradh
20603b705cfSriastradh#define GEN6_SF_CTL		       0x7b00
20703b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
20803b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID	   (0 << 8)
20903b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8)
21003b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID	   (2 << 8)
21103b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8)
21203b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID	   (4 << 8)
21303b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8)
21403b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT	   (6 << 8)
21503b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER  (7 << 8)
21603b705cfSriastradh#define GEN6_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE  (1 << 4)
21703b705cfSriastradh#define GEN6_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE	   (1 << 3)
21803b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
21903b705cfSriastradh#define GEN6_SF_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
22003b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_ENABLE		   (1 << 0)
22103b705cfSriastradh
22203b705cfSriastradh#define GEN6_SF_STRG_VAL		       0x7b04
22303b705cfSriastradh#define GEN6_SF_RDATA		       0x7b18
22403b705cfSriastradh
22503b705cfSriastradh#define GEN6_WIZ_CTL		       0x7c00
22603b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
22703b705cfSriastradh#define GEN6_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT	   16
22803b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER   (0 << 8)
22903b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE     (1 << 8)
23003b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE   (2 << 8)
23103b705cfSriastradh#define GEN6_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH	      (1 << 6)
23203b705cfSriastradh#define GEN6_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS    (1 << 5)
23303b705cfSriastradh#define GEN6_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE   (1 << 4)
23403b705cfSriastradh#define GEN6_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG	      (1 << 3)
23503b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_ALL_THREADS	      (1 << 2)
23603b705cfSriastradh#define GEN6_WIZ_CTL_THREAD_SNAPSHOT_ENABLE	      (1 << 1)
23703b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_ENABLE		      (1 << 0)
23803b705cfSriastradh
23903b705cfSriastradh#define GEN6_WIZ_STRG_VAL			      0x7c04
24003b705cfSriastradh#define GEN6_WIZ_RDATA				      0x7c18
24103b705cfSriastradh
24203b705cfSriastradh#define GEN6_TS_CTL		       0x7e00
24303b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
24403b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_MESSAGE_ERROR	   (0 << 8)
24503b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR   (3 << 8)
24603b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS	   (1 << 2)
24703b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS  	   (1 << 1)
24803b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
24903b705cfSriastradh
25003b705cfSriastradh#define GEN6_TS_STRG_VAL		       0x7e04
25103b705cfSriastradh#define GEN6_TS_RDATA		       0x7e08
25203b705cfSriastradh
25303b705cfSriastradh#define GEN6_TD_CTL		       0x8000
25403b705cfSriastradh#define GEN6_TD_CTL_MUX_SHIFT	       8
25503b705cfSriastradh#define GEN6_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH	   (1 << 7)
25603b705cfSriastradh#define GEN6_TD_CTL_FORCE_EXTERNAL_HALT		   (1 << 6)
25703b705cfSriastradh#define GEN6_TD_CTL_EXCEPTION_MASK_OVERRIDE	   (1 << 5)
25803b705cfSriastradh#define GEN6_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE  (1 << 4)
25903b705cfSriastradh#define GEN6_TD_CTL_BREAKPOINT_ENABLE		   (1 << 2)
26003b705cfSriastradh#define GEN6_TD_CTL2		       0x8004
26103b705cfSriastradh#define GEN6_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28)
26203b705cfSriastradh#define GEN6_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE      (1 << 26)
26303b705cfSriastradh#define GEN6_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE	      (1 << 25)
26403b705cfSriastradh#define GEN6_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT	      16
26503b705cfSriastradh#define GEN6_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE	      (1 << 8)
26603b705cfSriastradh#define GEN6_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7)
26703b705cfSriastradh#define GEN6_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE	      (1 << 6)
26803b705cfSriastradh#define GEN6_TD_CTL2_SF_EXECUTION_MASK_ENABLE	      (1 << 5)
26903b705cfSriastradh#define GEN6_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE     (1 << 4)
27003b705cfSriastradh#define GEN6_TD_CTL2_GS_EXECUTION_MASK_ENABLE	      (1 << 3)
27103b705cfSriastradh#define GEN6_TD_CTL2_VS_EXECUTION_MASK_ENABLE	      (1 << 0)
27203b705cfSriastradh#define GEN6_TD_VF_VS_EMSK	       0x8008
27303b705cfSriastradh#define GEN6_TD_GS_EMSK		       0x800c
27403b705cfSriastradh#define GEN6_TD_CLIP_EMSK	       0x8010
27503b705cfSriastradh#define GEN6_TD_SF_EMSK		       0x8014
27603b705cfSriastradh#define GEN6_TD_WIZ_EMSK		       0x8018
27703b705cfSriastradh#define GEN6_TD_0_6_EHTRG_VAL	       0x801c
27803b705cfSriastradh#define GEN6_TD_0_7_EHTRG_VAL	       0x8020
27903b705cfSriastradh#define GEN6_TD_0_6_EHTRG_MSK           0x8024
28003b705cfSriastradh#define GEN6_TD_0_7_EHTRG_MSK	       0x8028
28103b705cfSriastradh#define GEN6_TD_RDATA		       0x802c
28203b705cfSriastradh#define GEN6_TD_TS_EMSK		       0x8030
28303b705cfSriastradh
28403b705cfSriastradh#define GEN6_EU_CTL		       0x8800
28503b705cfSriastradh#define GEN6_EU_CTL_SELECT_SHIFT	       16
28603b705cfSriastradh#define GEN6_EU_CTL_DATA_MUX_SHIFT      8
28703b705cfSriastradh#define GEN6_EU_ATT_0		       0x8810
28803b705cfSriastradh#define GEN6_EU_ATT_1		       0x8814
28903b705cfSriastradh#define GEN6_EU_ATT_DATA_0	       0x8820
29003b705cfSriastradh#define GEN6_EU_ATT_DATA_1	       0x8824
29103b705cfSriastradh#define GEN6_EU_ATT_CLR_0	       0x8830
29203b705cfSriastradh#define GEN6_EU_ATT_CLR_1	       0x8834
29303b705cfSriastradh#define GEN6_EU_RDATA		       0x8840
29403b705cfSriastradh
29503b705cfSriastradh#define GEN6_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \
29603b705cfSriastradh					   ((Pipeline) << 27) | \
29703b705cfSriastradh					   ((Opcode) << 24) | \
29803b705cfSriastradh					   ((Subopcode) << 16))
29903b705cfSriastradh
30003b705cfSriastradh#define GEN6_STATE_BASE_ADDRESS			GEN6_3D(0, 1, 1)
30103b705cfSriastradh#define GEN6_STATE_SIP				GEN6_3D(0, 1, 2)
30203b705cfSriastradh
30303b705cfSriastradh#define GEN6_PIPELINE_SELECT			GEN6_3D(1, 1, 4)
30403b705cfSriastradh
30503b705cfSriastradh#define GEN6_MEDIA_STATE_POINTERS		GEN6_3D(2, 0, 0)
30603b705cfSriastradh#define GEN6_MEDIA_OBJECT			GEN6_3D(2, 1, 0)
30703b705cfSriastradh
30803b705cfSriastradh#define GEN6_3DSTATE_BINDING_TABLE_POINTERS	GEN6_3D(3, 0, 1)
30903b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS  (1 << 12)/* for GEN6 */
31003b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS  (1 << 9) /* for GEN6 */
31103b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS  (1 << 8) /* for GEN6 */
31203b705cfSriastradh
31303b705cfSriastradh#define GEN6_3DSTATE_VERTEX_BUFFERS		GEN6_3D(3, 0, 8)
31403b705cfSriastradh#define GEN6_3DSTATE_VERTEX_ELEMENTS		GEN6_3D(3, 0, 9)
31503b705cfSriastradh#define GEN6_3DSTATE_INDEX_BUFFER		GEN6_3D(3, 0, 0xa)
31603b705cfSriastradh#define GEN6_3DSTATE_VF_STATISTICS		GEN6_3D(3, 0, 0xb)
31703b705cfSriastradh
31803b705cfSriastradh#define GEN6_3DSTATE_DRAWING_RECTANGLE		GEN6_3D(3, 1, 0)
31903b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_COLOR		GEN6_3D(3, 1, 1)
32003b705cfSriastradh#define GEN6_3DSTATE_SAMPLER_PALETTE_LOAD	GEN6_3D(3, 1, 2)
32103b705cfSriastradh#define GEN6_3DSTATE_CHROMA_KEY			GEN6_3D(3, 1, 4)
32203b705cfSriastradh#define GEN6_3DSTATE_DEPTH_BUFFER		GEN6_3D(3, 1, 5)
32303b705cfSriastradh# define GEN6_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT	29
32403b705cfSriastradh# define GEN6_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT	18
32503b705cfSriastradh
32603b705cfSriastradh#define GEN6_3DSTATE_POLY_STIPPLE_OFFSET		GEN6_3D(3, 1, 6)
32703b705cfSriastradh#define GEN6_3DSTATE_POLY_STIPPLE_PATTERN	GEN6_3D(3, 1, 7)
32803b705cfSriastradh#define GEN6_3DSTATE_LINE_STIPPLE		GEN6_3D(3, 1, 8)
32903b705cfSriastradh#define GEN6_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP	GEN6_3D(3, 1, 9)
33003b705cfSriastradh/* These two are BLC and CTG only, not BW or CL */
33103b705cfSriastradh#define GEN6_3DSTATE_AA_LINE_PARAMS		GEN6_3D(3, 1, 0xa)
33203b705cfSriastradh#define GEN6_3DSTATE_GS_SVB_INDEX		GEN6_3D(3, 1, 0xb)
33303b705cfSriastradh
33403b705cfSriastradh#define GEN6_3DPRIMITIVE				GEN6_3D(3, 3, 0)
33503b705cfSriastradh
33603b705cfSriastradh#define GEN6_3DSTATE_CLEAR_PARAMS		GEN6_3D(3, 1, 0x10)
33703b705cfSriastradh/* DW1 */
33803b705cfSriastradh# define GEN6_3DSTATE_DEPTH_CLEAR_VALID		(1 << 15)
33903b705cfSriastradh
34003b705cfSriastradh/* for GEN6+ */
34103b705cfSriastradh#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS	GEN6_3D(3, 0, 0x02)
34203b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS	(1 << 12)
34303b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS	(1 << 9)
34403b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS	(1 << 8)
34503b705cfSriastradh
34603b705cfSriastradh#define GEN6_3DSTATE_URB			GEN6_3D(3, 0, 0x05)
34703b705cfSriastradh/* DW1 */
34803b705cfSriastradh# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT		16
34903b705cfSriastradh# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT	0
35003b705cfSriastradh/* DW2 */
35103b705cfSriastradh# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT	8
35203b705cfSriastradh# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT		0
35303b705cfSriastradh
35403b705cfSriastradh#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS	GEN6_3D(3, 0, 0x0d)
35503b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC		(1 << 12)
35603b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF		(1 << 11)
35703b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP	(1 << 10)
35803b705cfSriastradh
35903b705cfSriastradh#define GEN6_3DSTATE_CC_STATE_POINTERS		GEN6_3D(3, 0, 0x0e)
36003b705cfSriastradh
36103b705cfSriastradh#define GEN6_3DSTATE_VS				GEN6_3D(3, 0, 0x10)
36203b705cfSriastradh
36303b705cfSriastradh#define GEN6_3DSTATE_GS				GEN6_3D(3, 0, 0x11)
36403b705cfSriastradh/* DW4 */
36503b705cfSriastradh# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT	0
36603b705cfSriastradh
36703b705cfSriastradh#define GEN6_3DSTATE_CLIP			GEN6_3D(3, 0, 0x12)
36803b705cfSriastradh
36903b705cfSriastradh#define GEN6_3DSTATE_SF				GEN6_3D(3, 0, 0x13)
37003b705cfSriastradh/* DW1 */
37103b705cfSriastradh# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT		22
37203b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT	11
37303b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT	4
37403b705cfSriastradh/* DW2 */
37503b705cfSriastradh/* DW3 */
37603b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BOTH			(0 << 29)
37703b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_NONE			(1 << 29)
37803b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_FRONT			(2 << 29)
37903b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BACK			(3 << 29)
38003b705cfSriastradh/* DW4 */
38103b705cfSriastradh# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT		29
38203b705cfSriastradh# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT		27
38303b705cfSriastradh# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT		25
38403b705cfSriastradh
38503b705cfSriastradh
38603b705cfSriastradh#define GEN6_3DSTATE_WM				GEN6_3D(3, 0, 0x14)
38703b705cfSriastradh/* DW2 */
38803b705cfSriastradh# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF			27
38903b705cfSriastradh# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
39003b705cfSriastradh/* DW4 */
39103b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT		16
39203b705cfSriastradh/* DW5 */
39303b705cfSriastradh# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT			25
39403b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_ENABLE			(1 << 19)
39503b705cfSriastradh# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE			(1 << 1)
39603b705cfSriastradh# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE			(1 << 0)
39703b705cfSriastradh/* DW6 */
39803b705cfSriastradh# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT			20
39903b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC	(1 << 15)
40003b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 14)
40103b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC	(1 << 13)
40203b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC		(1 << 12)
40303b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 11)
40403b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC		(1 << 10)
40503b705cfSriastradh
40603b705cfSriastradh
40703b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_VS		GEN6_3D(3, 0, 0x15)
40803b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_GS          	GEN6_3D(3, 0, 0x16)
40903b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_PS          	GEN6_3D(3, 0, 0x17)
41003b705cfSriastradh
41103b705cfSriastradh#define GEN6_3DSTATE_SAMPLE_MASK		GEN6_3D(3, 0, 0x18)
41203b705cfSriastradh
41303b705cfSriastradh#define GEN6_3DSTATE_MULTISAMPLE		GEN6_3D(3, 1, 0x0d)
41403b705cfSriastradh/* DW1 */
41503b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER		(0 << 4)
41603b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT	(1 << 4)
41703b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1			(0 << 1)
41803b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4			(2 << 1)
41903b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8			(3 << 1)
42003b705cfSriastradh
42103b705cfSriastradh#define PIPELINE_SELECT_3D		0
42203b705cfSriastradh#define PIPELINE_SELECT_MEDIA		1
42303b705cfSriastradh
42403b705cfSriastradh#define UF0_CS_REALLOC			(1 << 13)
42503b705cfSriastradh#define UF0_VFE_REALLOC			(1 << 12)
42603b705cfSriastradh#define UF0_SF_REALLOC			(1 << 11)
42703b705cfSriastradh#define UF0_CLIP_REALLOC		(1 << 10)
42803b705cfSriastradh#define UF0_GS_REALLOC			(1 << 9)
42903b705cfSriastradh#define UF0_VS_REALLOC			(1 << 8)
43003b705cfSriastradh#define UF1_CLIP_FENCE_SHIFT		20
43103b705cfSriastradh#define UF1_GS_FENCE_SHIFT		10
43203b705cfSriastradh#define UF1_VS_FENCE_SHIFT		0
43303b705cfSriastradh#define UF2_CS_FENCE_SHIFT		20
43403b705cfSriastradh#define UF2_VFE_FENCE_SHIFT		10
43503b705cfSriastradh#define UF2_SF_FENCE_SHIFT		0
43603b705cfSriastradh
43703b705cfSriastradh/* for GEN6_STATE_BASE_ADDRESS */
43803b705cfSriastradh#define BASE_ADDRESS_MODIFY		(1 << 0)
43903b705cfSriastradh
44003b705cfSriastradh/* for GEN6_3DSTATE_PIPELINED_POINTERS */
44103b705cfSriastradh#define GEN6_GS_DISABLE		       0
44203b705cfSriastradh#define GEN6_GS_ENABLE		       1
44303b705cfSriastradh#define GEN6_CLIP_DISABLE	       0
44403b705cfSriastradh#define GEN6_CLIP_ENABLE		       1
44503b705cfSriastradh
44603b705cfSriastradh/* for GEN6_PIPE_CONTROL */
44703b705cfSriastradh#define GEN6_PIPE_CONTROL		GEN6_3D(3, 2, 0)
44803b705cfSriastradh#define GEN6_PIPE_CONTROL_CS_STALL      (1 << 20)
44903b705cfSriastradh#define GEN6_PIPE_CONTROL_NOWRITE       (0 << 14)
45003b705cfSriastradh#define GEN6_PIPE_CONTROL_WRITE_QWORD   (1 << 14)
45103b705cfSriastradh#define GEN6_PIPE_CONTROL_WRITE_DEPTH   (2 << 14)
45203b705cfSriastradh#define GEN6_PIPE_CONTROL_WRITE_TIME    (3 << 14)
45303b705cfSriastradh#define GEN6_PIPE_CONTROL_DEPTH_STALL   (1 << 13)
45403b705cfSriastradh#define GEN6_PIPE_CONTROL_WC_FLUSH      (1 << 12)
45503b705cfSriastradh#define GEN6_PIPE_CONTROL_IS_FLUSH      (1 << 11)
45603b705cfSriastradh#define GEN6_PIPE_CONTROL_TC_FLUSH      (1 << 10)
45703b705cfSriastradh#define GEN6_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
45803b705cfSriastradh#define GEN6_PIPE_CONTROL_GLOBAL_GTT    (1 << 2)
45903b705cfSriastradh#define GEN6_PIPE_CONTROL_LOCAL_PGTT    (0 << 2)
46003b705cfSriastradh#define GEN6_PIPE_CONTROL_STALL_AT_SCOREBOARD   (1 << 1)
46103b705cfSriastradh#define GEN6_PIPE_CONTROL_DEPTH_CACHE_FLUSH	(1 << 0)
46203b705cfSriastradh
46303b705cfSriastradh/* 3DPRIMITIVE bits */
46403b705cfSriastradh#define GEN6_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15)
46503b705cfSriastradh#define GEN6_3DPRIMITIVE_VERTEX_RANDOM	  (1 << 15)
46603b705cfSriastradh/* Primitive types are in gen6_defines.h */
46703b705cfSriastradh#define GEN6_3DPRIMITIVE_TOPOLOGY_SHIFT	  10
46803b705cfSriastradh
46903b705cfSriastradh#define GEN6_SVG_CTL		       0x7400
47003b705cfSriastradh
47103b705cfSriastradh#define GEN6_SVG_CTL_GS_BA	       (0 << 8)
47203b705cfSriastradh#define GEN6_SVG_CTL_SS_BA	       (1 << 8)
47303b705cfSriastradh#define GEN6_SVG_CTL_IO_BA	       (2 << 8)
47403b705cfSriastradh#define GEN6_SVG_CTL_GS_AUB	       (3 << 8)
47503b705cfSriastradh#define GEN6_SVG_CTL_IO_AUB	       (4 << 8)
47603b705cfSriastradh#define GEN6_SVG_CTL_SIP		       (5 << 8)
47703b705cfSriastradh
47803b705cfSriastradh#define GEN6_SVG_RDATA		       0x7404
47903b705cfSriastradh#define GEN6_SVG_WORK_CTL	       0x7408
48003b705cfSriastradh
48103b705cfSriastradh#define GEN6_VF_CTL		       0x7500
48203b705cfSriastradh
48303b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
48403b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID	   (0 << 8)
48503b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG	   (1 << 8)
48603b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE   (0 << 4)
48703b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX	   (1 << 4)
48803b705cfSriastradh#define GEN6_VF_CTL_SKIP_INITIAL_PRIMITIVES	   (1 << 3)
48903b705cfSriastradh#define GEN6_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE	   (1 << 2)
49003b705cfSriastradh#define GEN6_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE	   (1 << 1)
49103b705cfSriastradh#define GEN6_VF_CTL_SNAPSHOT_ENABLE	     	   (1 << 0)
49203b705cfSriastradh
49303b705cfSriastradh#define GEN6_VF_STRG_VAL		       0x7504
49403b705cfSriastradh#define GEN6_VF_STR_VL_OVR	       0x7508
49503b705cfSriastradh#define GEN6_VF_VC_OVR		       0x750c
49603b705cfSriastradh#define GEN6_VF_STR_PSKIP	       0x7510
49703b705cfSriastradh#define GEN6_VF_MAX_PRIM		       0x7514
49803b705cfSriastradh#define GEN6_VF_RDATA		       0x7518
49903b705cfSriastradh
50003b705cfSriastradh#define GEN6_VS_CTL		       0x7600
50103b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
50203b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VERTEX_0	   (0 << 8)
50303b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VERTEX_1	   (1 << 8)
50403b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VALID_COUNT	   (2 << 8)
50503b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER  (3 << 8)
50603b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
50703b705cfSriastradh#define GEN6_VS_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
50803b705cfSriastradh#define GEN6_VS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
50903b705cfSriastradh
51003b705cfSriastradh#define GEN6_VS_STRG_VAL		       0x7604
51103b705cfSriastradh#define GEN6_VS_RDATA		       0x7608
51203b705cfSriastradh
51303b705cfSriastradh#define GEN6_SF_CTL		       0x7b00
51403b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
51503b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID	   (0 << 8)
51603b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8)
51703b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID	   (2 << 8)
51803b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8)
51903b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID	   (4 << 8)
52003b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8)
52103b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT	   (6 << 8)
52203b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER  (7 << 8)
52303b705cfSriastradh#define GEN6_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE  (1 << 4)
52403b705cfSriastradh#define GEN6_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE	   (1 << 3)
52503b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
52603b705cfSriastradh#define GEN6_SF_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
52703b705cfSriastradh#define GEN6_SF_CTL_SNAPSHOT_ENABLE		   (1 << 0)
52803b705cfSriastradh
52903b705cfSriastradh#define GEN6_SF_STRG_VAL		       0x7b04
53003b705cfSriastradh#define GEN6_SF_RDATA		       0x7b18
53103b705cfSriastradh
53203b705cfSriastradh#define GEN6_WIZ_CTL		       0x7c00
53303b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
53403b705cfSriastradh#define GEN6_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT	   16
53503b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER   (0 << 8)
53603b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE     (1 << 8)
53703b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE   (2 << 8)
53803b705cfSriastradh#define GEN6_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH	      (1 << 6)
53903b705cfSriastradh#define GEN6_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS    (1 << 5)
54003b705cfSriastradh#define GEN6_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE   (1 << 4)
54103b705cfSriastradh#define GEN6_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG	      (1 << 3)
54203b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_ALL_THREADS	      (1 << 2)
54303b705cfSriastradh#define GEN6_WIZ_CTL_THREAD_SNAPSHOT_ENABLE	      (1 << 1)
54403b705cfSriastradh#define GEN6_WIZ_CTL_SNAPSHOT_ENABLE		      (1 << 0)
54503b705cfSriastradh
54603b705cfSriastradh#define GEN6_WIZ_STRG_VAL			      0x7c04
54703b705cfSriastradh#define GEN6_WIZ_RDATA				      0x7c18
54803b705cfSriastradh
54903b705cfSriastradh#define GEN6_TS_CTL		       0x7e00
55003b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
55103b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_MESSAGE_ERROR	   (0 << 8)
55203b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR   (3 << 8)
55303b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS	   (1 << 2)
55403b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS  	   (1 << 1)
55503b705cfSriastradh#define GEN6_TS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
55603b705cfSriastradh
55703b705cfSriastradh#define GEN6_TS_STRG_VAL		       0x7e04
55803b705cfSriastradh#define GEN6_TS_RDATA		       0x7e08
55903b705cfSriastradh
56003b705cfSriastradh#define GEN6_TD_CTL		       0x8000
56103b705cfSriastradh#define GEN6_TD_CTL_MUX_SHIFT	       8
56203b705cfSriastradh#define GEN6_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH	   (1 << 7)
56303b705cfSriastradh#define GEN6_TD_CTL_FORCE_EXTERNAL_HALT		   (1 << 6)
56403b705cfSriastradh#define GEN6_TD_CTL_EXCEPTION_MASK_OVERRIDE	   (1 << 5)
56503b705cfSriastradh#define GEN6_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE  (1 << 4)
56603b705cfSriastradh#define GEN6_TD_CTL_BREAKPOINT_ENABLE		   (1 << 2)
56703b705cfSriastradh#define GEN6_TD_CTL2		       0x8004
56803b705cfSriastradh#define GEN6_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28)
56903b705cfSriastradh#define GEN6_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE      (1 << 26)
57003b705cfSriastradh#define GEN6_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE	      (1 << 25)
57103b705cfSriastradh#define GEN6_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT	      16
57203b705cfSriastradh#define GEN6_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE	      (1 << 8)
57303b705cfSriastradh#define GEN6_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7)
57403b705cfSriastradh#define GEN6_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE	      (1 << 6)
57503b705cfSriastradh#define GEN6_TD_CTL2_SF_EXECUTION_MASK_ENABLE	      (1 << 5)
57603b705cfSriastradh#define GEN6_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE     (1 << 4)
57703b705cfSriastradh#define GEN6_TD_CTL2_GS_EXECUTION_MASK_ENABLE	      (1 << 3)
57803b705cfSriastradh#define GEN6_TD_CTL2_VS_EXECUTION_MASK_ENABLE	      (1 << 0)
57903b705cfSriastradh#define GEN6_TD_VF_VS_EMSK	       0x8008
58003b705cfSriastradh#define GEN6_TD_GS_EMSK		       0x800c
58103b705cfSriastradh#define GEN6_TD_CLIP_EMSK	       0x8010
58203b705cfSriastradh#define GEN6_TD_SF_EMSK		       0x8014
58303b705cfSriastradh#define GEN6_TD_WIZ_EMSK		       0x8018
58403b705cfSriastradh#define GEN6_TD_0_6_EHTRG_VAL	       0x801c
58503b705cfSriastradh#define GEN6_TD_0_7_EHTRG_VAL	       0x8020
58603b705cfSriastradh#define GEN6_TD_0_6_EHTRG_MSK           0x8024
58703b705cfSriastradh#define GEN6_TD_0_7_EHTRG_MSK	       0x8028
58803b705cfSriastradh#define GEN6_TD_RDATA		       0x802c
58903b705cfSriastradh#define GEN6_TD_TS_EMSK		       0x8030
59003b705cfSriastradh
59103b705cfSriastradh#define GEN6_EU_CTL		       0x8800
59203b705cfSriastradh#define GEN6_EU_CTL_SELECT_SHIFT	       16
59303b705cfSriastradh#define GEN6_EU_CTL_DATA_MUX_SHIFT      8
59403b705cfSriastradh#define GEN6_EU_ATT_0		       0x8810
59503b705cfSriastradh#define GEN6_EU_ATT_1		       0x8814
59603b705cfSriastradh#define GEN6_EU_ATT_DATA_0	       0x8820
59703b705cfSriastradh#define GEN6_EU_ATT_DATA_1	       0x8824
59803b705cfSriastradh#define GEN6_EU_ATT_CLR_0	       0x8830
59903b705cfSriastradh#define GEN6_EU_ATT_CLR_1	       0x8834
60003b705cfSriastradh#define GEN6_EU_RDATA		       0x8840
60103b705cfSriastradh
60203b705cfSriastradh/* 3D state:
60303b705cfSriastradh */
60403b705cfSriastradh#define _3DOP_3DSTATE_PIPELINED       0x0
60503b705cfSriastradh#define _3DOP_3DSTATE_NONPIPELINED    0x1
60603b705cfSriastradh#define _3DOP_3DCONTROL               0x2
60703b705cfSriastradh#define _3DOP_3DPRIMITIVE             0x3
60803b705cfSriastradh
60903b705cfSriastradh#define _3DSTATE_PIPELINED_POINTERS       0x00
61003b705cfSriastradh#define _3DSTATE_BINDING_TABLE_POINTERS   0x01
61103b705cfSriastradh#define _3DSTATE_VERTEX_BUFFERS           0x08
61203b705cfSriastradh#define _3DSTATE_VERTEX_ELEMENTS          0x09
61303b705cfSriastradh#define _3DSTATE_INDEX_BUFFER             0x0A
61403b705cfSriastradh#define _3DSTATE_VF_STATISTICS            0x0B
61503b705cfSriastradh#define _3DSTATE_DRAWING_RECTANGLE            0x00
61603b705cfSriastradh#define _3DSTATE_CONSTANT_COLOR               0x01
61703b705cfSriastradh#define _3DSTATE_SAMPLER_PALETTE_LOAD         0x02
61803b705cfSriastradh#define _3DSTATE_CHROMA_KEY                   0x04
61903b705cfSriastradh#define _3DSTATE_DEPTH_BUFFER                 0x05
62003b705cfSriastradh#define _3DSTATE_POLY_STIPPLE_OFFSET          0x06
62103b705cfSriastradh#define _3DSTATE_POLY_STIPPLE_PATTERN         0x07
62203b705cfSriastradh#define _3DSTATE_LINE_STIPPLE                 0x08
62303b705cfSriastradh#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP    0x09
62403b705cfSriastradh#define _3DCONTROL    0x00
62503b705cfSriastradh#define _3DPRIMITIVE  0x00
62603b705cfSriastradh
62703b705cfSriastradh#define _3DPRIM_POINTLIST         0x01
62803b705cfSriastradh#define _3DPRIM_LINELIST          0x02
62903b705cfSriastradh#define _3DPRIM_LINESTRIP         0x03
63003b705cfSriastradh#define _3DPRIM_TRILIST           0x04
63103b705cfSriastradh#define _3DPRIM_TRISTRIP          0x05
63203b705cfSriastradh#define _3DPRIM_TRIFAN            0x06
63303b705cfSriastradh#define _3DPRIM_QUADLIST          0x07
63403b705cfSriastradh#define _3DPRIM_QUADSTRIP         0x08
63503b705cfSriastradh#define _3DPRIM_LINELIST_ADJ      0x09
63603b705cfSriastradh#define _3DPRIM_LINESTRIP_ADJ     0x0A
63703b705cfSriastradh#define _3DPRIM_TRILIST_ADJ       0x0B
63803b705cfSriastradh#define _3DPRIM_TRISTRIP_ADJ      0x0C
63903b705cfSriastradh#define _3DPRIM_TRISTRIP_REVERSE  0x0D
64003b705cfSriastradh#define _3DPRIM_POLYGON           0x0E
64103b705cfSriastradh#define _3DPRIM_RECTLIST          0x0F
64203b705cfSriastradh#define _3DPRIM_LINELOOP          0x10
64303b705cfSriastradh#define _3DPRIM_POINTLIST_BF      0x11
64403b705cfSriastradh#define _3DPRIM_LINESTRIP_CONT    0x12
64503b705cfSriastradh#define _3DPRIM_LINESTRIP_BF      0x13
64603b705cfSriastradh#define _3DPRIM_LINESTRIP_CONT_BF 0x14
64703b705cfSriastradh#define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
64803b705cfSriastradh
64903b705cfSriastradh#define _3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL 0
65003b705cfSriastradh#define _3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     1
65103b705cfSriastradh
65203b705cfSriastradh#define GEN6_ANISORATIO_2     0
65303b705cfSriastradh#define GEN6_ANISORATIO_4     1
65403b705cfSriastradh#define GEN6_ANISORATIO_6     2
65503b705cfSriastradh#define GEN6_ANISORATIO_8     3
65603b705cfSriastradh#define GEN6_ANISORATIO_10    4
65703b705cfSriastradh#define GEN6_ANISORATIO_12    5
65803b705cfSriastradh#define GEN6_ANISORATIO_14    6
65903b705cfSriastradh#define GEN6_ANISORATIO_16    7
66003b705cfSriastradh
66103b705cfSriastradh#define GEN6_BLENDFACTOR_ONE                 0x1
66203b705cfSriastradh#define GEN6_BLENDFACTOR_SRC_COLOR           0x2
66303b705cfSriastradh#define GEN6_BLENDFACTOR_SRC_ALPHA           0x3
66403b705cfSriastradh#define GEN6_BLENDFACTOR_DST_ALPHA           0x4
66503b705cfSriastradh#define GEN6_BLENDFACTOR_DST_COLOR           0x5
66603b705cfSriastradh#define GEN6_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
66703b705cfSriastradh#define GEN6_BLENDFACTOR_CONST_COLOR         0x7
66803b705cfSriastradh#define GEN6_BLENDFACTOR_CONST_ALPHA         0x8
66903b705cfSriastradh#define GEN6_BLENDFACTOR_SRC1_COLOR          0x9
67003b705cfSriastradh#define GEN6_BLENDFACTOR_SRC1_ALPHA          0x0A
67103b705cfSriastradh#define GEN6_BLENDFACTOR_ZERO                0x11
67203b705cfSriastradh#define GEN6_BLENDFACTOR_INV_SRC_COLOR       0x12
67303b705cfSriastradh#define GEN6_BLENDFACTOR_INV_SRC_ALPHA       0x13
67403b705cfSriastradh#define GEN6_BLENDFACTOR_INV_DST_ALPHA       0x14
67503b705cfSriastradh#define GEN6_BLENDFACTOR_INV_DST_COLOR       0x15
67603b705cfSriastradh#define GEN6_BLENDFACTOR_INV_CONST_COLOR     0x17
67703b705cfSriastradh#define GEN6_BLENDFACTOR_INV_CONST_ALPHA     0x18
67803b705cfSriastradh#define GEN6_BLENDFACTOR_INV_SRC1_COLOR      0x19
67903b705cfSriastradh#define GEN6_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
68003b705cfSriastradh
68103b705cfSriastradh#define GEN6_BLENDFUNCTION_ADD               0
68203b705cfSriastradh#define GEN6_BLENDFUNCTION_SUBTRACT          1
68303b705cfSriastradh#define GEN6_BLENDFUNCTION_REVERSE_SUBTRACT  2
68403b705cfSriastradh#define GEN6_BLENDFUNCTION_MIN               3
68503b705cfSriastradh#define GEN6_BLENDFUNCTION_MAX               4
68603b705cfSriastradh
68703b705cfSriastradh#define GEN6_ALPHATEST_FORMAT_UNORM8         0
68803b705cfSriastradh#define GEN6_ALPHATEST_FORMAT_FLOAT32        1
68903b705cfSriastradh
69003b705cfSriastradh#define GEN6_CHROMAKEY_KILL_ON_ANY_MATCH  0
69103b705cfSriastradh#define GEN6_CHROMAKEY_REPLACE_BLACK      1
69203b705cfSriastradh
69303b705cfSriastradh#define GEN6_CLIP_API_OGL     0
69403b705cfSriastradh#define GEN6_CLIP_API_DX      1
69503b705cfSriastradh
69603b705cfSriastradh#define GEN6_CLIPMODE_NORMAL              0
69703b705cfSriastradh#define GEN6_CLIPMODE_CLIP_ALL            1
69803b705cfSriastradh#define GEN6_CLIPMODE_CLIP_NON_REJECTED   2
69903b705cfSriastradh#define GEN6_CLIPMODE_REJECT_ALL          3
70003b705cfSriastradh#define GEN6_CLIPMODE_ACCEPT_ALL          4
70103b705cfSriastradh
70203b705cfSriastradh#define GEN6_CLIP_NDCSPACE     0
70303b705cfSriastradh#define GEN6_CLIP_SCREENSPACE  1
70403b705cfSriastradh
70503b705cfSriastradh#define GEN6_COMPAREFUNCTION_ALWAYS       0
70603b705cfSriastradh#define GEN6_COMPAREFUNCTION_NEVER        1
70703b705cfSriastradh#define GEN6_COMPAREFUNCTION_LESS         2
70803b705cfSriastradh#define GEN6_COMPAREFUNCTION_EQUAL        3
70903b705cfSriastradh#define GEN6_COMPAREFUNCTION_LEQUAL       4
71003b705cfSriastradh#define GEN6_COMPAREFUNCTION_GREATER      5
71103b705cfSriastradh#define GEN6_COMPAREFUNCTION_NOTEQUAL     6
71203b705cfSriastradh#define GEN6_COMPAREFUNCTION_GEQUAL       7
71303b705cfSriastradh
71403b705cfSriastradh#define GEN6_COVERAGE_PIXELS_HALF     0
71503b705cfSriastradh#define GEN6_COVERAGE_PIXELS_1        1
71603b705cfSriastradh#define GEN6_COVERAGE_PIXELS_2        2
71703b705cfSriastradh#define GEN6_COVERAGE_PIXELS_4        3
71803b705cfSriastradh
71903b705cfSriastradh#define GEN6_CULLMODE_BOTH        0
72003b705cfSriastradh#define GEN6_CULLMODE_NONE        1
72103b705cfSriastradh#define GEN6_CULLMODE_FRONT       2
72203b705cfSriastradh#define GEN6_CULLMODE_BACK        3
72303b705cfSriastradh
72403b705cfSriastradh#define GEN6_DEFAULTCOLOR_R8G8B8A8_UNORM      0
72503b705cfSriastradh#define GEN6_DEFAULTCOLOR_R32G32B32A32_FLOAT  1
72603b705cfSriastradh
72703b705cfSriastradh#define GEN6_DEPTHFORMAT_D32_FLOAT_S8X24_UINT     0
72803b705cfSriastradh#define GEN6_DEPTHFORMAT_D32_FLOAT                1
72903b705cfSriastradh#define GEN6_DEPTHFORMAT_D24_UNORM_S8_UINT        2
73003b705cfSriastradh#define GEN6_DEPTHFORMAT_D16_UNORM                5
73103b705cfSriastradh
73203b705cfSriastradh#define GEN6_FLOATING_POINT_IEEE_754        0
73303b705cfSriastradh#define GEN6_FLOATING_POINT_NON_IEEE_754    1
73403b705cfSriastradh
73503b705cfSriastradh#define GEN6_FRONTWINDING_CW      0
73603b705cfSriastradh#define GEN6_FRONTWINDING_CCW     1
73703b705cfSriastradh
73803b705cfSriastradh#define GEN6_INDEX_BYTE     0
73903b705cfSriastradh#define GEN6_INDEX_WORD     1
74003b705cfSriastradh#define GEN6_INDEX_DWORD    2
74103b705cfSriastradh
74203b705cfSriastradh#define GEN6_LOGICOPFUNCTION_CLEAR            0
74303b705cfSriastradh#define GEN6_LOGICOPFUNCTION_NOR              1
74403b705cfSriastradh#define GEN6_LOGICOPFUNCTION_AND_INVERTED     2
74503b705cfSriastradh#define GEN6_LOGICOPFUNCTION_COPY_INVERTED    3
74603b705cfSriastradh#define GEN6_LOGICOPFUNCTION_AND_REVERSE      4
74703b705cfSriastradh#define GEN6_LOGICOPFUNCTION_INVERT           5
74803b705cfSriastradh#define GEN6_LOGICOPFUNCTION_XOR              6
74903b705cfSriastradh#define GEN6_LOGICOPFUNCTION_NAND             7
75003b705cfSriastradh#define GEN6_LOGICOPFUNCTION_AND              8
75103b705cfSriastradh#define GEN6_LOGICOPFUNCTION_EQUIV            9
75203b705cfSriastradh#define GEN6_LOGICOPFUNCTION_NOOP             10
75303b705cfSriastradh#define GEN6_LOGICOPFUNCTION_OR_INVERTED      11
75403b705cfSriastradh#define GEN6_LOGICOPFUNCTION_COPY             12
75503b705cfSriastradh#define GEN6_LOGICOPFUNCTION_OR_REVERSE       13
75603b705cfSriastradh#define GEN6_LOGICOPFUNCTION_OR               14
75703b705cfSriastradh#define GEN6_LOGICOPFUNCTION_SET              15
75803b705cfSriastradh
75903b705cfSriastradh#define GEN6_MAPFILTER_NEAREST        0x0
76003b705cfSriastradh#define GEN6_MAPFILTER_LINEAR         0x1
76103b705cfSriastradh#define GEN6_MAPFILTER_ANISOTROPIC    0x2
76203b705cfSriastradh
76303b705cfSriastradh#define GEN6_MIPFILTER_NONE        0
76403b705cfSriastradh#define GEN6_MIPFILTER_NEAREST     1
76503b705cfSriastradh#define GEN6_MIPFILTER_LINEAR      3
76603b705cfSriastradh
76703b705cfSriastradh#define GEN6_POLYGON_FRONT_FACING     0
76803b705cfSriastradh#define GEN6_POLYGON_BACK_FACING      1
76903b705cfSriastradh
77003b705cfSriastradh#define GEN6_PREFILTER_ALWAYS     0x0
77103b705cfSriastradh#define GEN6_PREFILTER_NEVER      0x1
77203b705cfSriastradh#define GEN6_PREFILTER_LESS       0x2
77303b705cfSriastradh#define GEN6_PREFILTER_EQUAL      0x3
77403b705cfSriastradh#define GEN6_PREFILTER_LEQUAL     0x4
77503b705cfSriastradh#define GEN6_PREFILTER_GREATER    0x5
77603b705cfSriastradh#define GEN6_PREFILTER_NOTEQUAL   0x6
77703b705cfSriastradh#define GEN6_PREFILTER_GEQUAL     0x7
77803b705cfSriastradh
77903b705cfSriastradh#define GEN6_PROVOKING_VERTEX_0    0
78003b705cfSriastradh#define GEN6_PROVOKING_VERTEX_1    1
78103b705cfSriastradh#define GEN6_PROVOKING_VERTEX_2    2
78203b705cfSriastradh
78303b705cfSriastradh#define GEN6_RASTRULE_UPPER_LEFT  0
78403b705cfSriastradh#define GEN6_RASTRULE_UPPER_RIGHT 1
78503b705cfSriastradh
78603b705cfSriastradh#define GEN6_RENDERTARGET_CLAMPRANGE_UNORM    0
78703b705cfSriastradh#define GEN6_RENDERTARGET_CLAMPRANGE_SNORM    1
78803b705cfSriastradh#define GEN6_RENDERTARGET_CLAMPRANGE_FORMAT   2
78903b705cfSriastradh
79003b705cfSriastradh#define GEN6_STENCILOP_KEEP               0
79103b705cfSriastradh#define GEN6_STENCILOP_ZERO               1
79203b705cfSriastradh#define GEN6_STENCILOP_REPLACE            2
79303b705cfSriastradh#define GEN6_STENCILOP_INCRSAT            3
79403b705cfSriastradh#define GEN6_STENCILOP_DECRSAT            4
79503b705cfSriastradh#define GEN6_STENCILOP_INCR               5
79603b705cfSriastradh#define GEN6_STENCILOP_DECR               6
79703b705cfSriastradh#define GEN6_STENCILOP_INVERT             7
79803b705cfSriastradh
79903b705cfSriastradh#define GEN6_SURFACE_MIPMAPLAYOUT_BELOW   0
80003b705cfSriastradh#define GEN6_SURFACE_MIPMAPLAYOUT_RIGHT   1
80103b705cfSriastradh
80203b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_FLOAT             0x000
80303b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_SINT              0x001
80403b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_UINT              0x002
80503b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_UNORM             0x003
80603b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_SNORM             0x004
80703b705cfSriastradh#define GEN6_SURFACEFORMAT_R64G64_FLOAT                   0x005
80803b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32X32_FLOAT             0x006
80903b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_SSCALED           0x007
81003b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32A32_USCALED           0x008
81103b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_FLOAT                0x040
81203b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_SINT                 0x041
81303b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_UINT                 0x042
81403b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_UNORM                0x043
81503b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_SNORM                0x044
81603b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_SSCALED              0x045
81703b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32B32_USCALED              0x046
81803b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_UNORM             0x080
81903b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_SNORM             0x081
82003b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_SINT              0x082
82103b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_UINT              0x083
82203b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_FLOAT             0x084
82303b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_FLOAT                   0x085
82403b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_SINT                    0x086
82503b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_UINT                    0x087
82603b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS       0x088
82703b705cfSriastradh#define GEN6_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT        0x089
82803b705cfSriastradh#define GEN6_SURFACEFORMAT_L32A32_FLOAT                   0x08A
82903b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_UNORM                   0x08B
83003b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_SNORM                   0x08C
83103b705cfSriastradh#define GEN6_SURFACEFORMAT_R64_FLOAT                      0x08D
83203b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16X16_UNORM             0x08E
83303b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16X16_FLOAT             0x08F
83403b705cfSriastradh#define GEN6_SURFACEFORMAT_A32X32_FLOAT                   0x090
83503b705cfSriastradh#define GEN6_SURFACEFORMAT_L32X32_FLOAT                   0x091
83603b705cfSriastradh#define GEN6_SURFACEFORMAT_I32X32_FLOAT                   0x092
83703b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_SSCALED           0x093
83803b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16A16_USCALED           0x094
83903b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_SSCALED                 0x095
84003b705cfSriastradh#define GEN6_SURFACEFORMAT_R32G32_USCALED                 0x096
84103b705cfSriastradh#define GEN6_SURFACEFORMAT_B8G8R8A8_UNORM                 0x0C0
84203b705cfSriastradh#define GEN6_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB            0x0C1
84303b705cfSriastradh#define GEN6_SURFACEFORMAT_R10G10B10A2_UNORM              0x0C2
84403b705cfSriastradh#define GEN6_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB         0x0C3
84503b705cfSriastradh#define GEN6_SURFACEFORMAT_R10G10B10A2_UINT               0x0C4
84603b705cfSriastradh#define GEN6_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM       0x0C5
84703b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_UNORM                 0x0C7
84803b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB            0x0C8
84903b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_SNORM                 0x0C9
85003b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_SINT                  0x0CA
85103b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_UINT                  0x0CB
85203b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_UNORM                   0x0CC
85303b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_SNORM                   0x0CD
85403b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_SINT                    0x0CE
85503b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_UINT                    0x0CF
85603b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_FLOAT                   0x0D0
85703b705cfSriastradh#define GEN6_SURFACEFORMAT_B10G10R10A2_UNORM              0x0D1
85803b705cfSriastradh#define GEN6_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB         0x0D2
85903b705cfSriastradh#define GEN6_SURFACEFORMAT_R11G11B10_FLOAT                0x0D3
86003b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_SINT                       0x0D6
86103b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_UINT                       0x0D7
86203b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_FLOAT                      0x0D8
86303b705cfSriastradh#define GEN6_SURFACEFORMAT_R24_UNORM_X8_TYPELESS          0x0D9
86403b705cfSriastradh#define GEN6_SURFACEFORMAT_X24_TYPELESS_G8_UINT           0x0DA
86503b705cfSriastradh#define GEN6_SURFACEFORMAT_L16A16_UNORM                   0x0DF
86603b705cfSriastradh#define GEN6_SURFACEFORMAT_I24X8_UNORM                    0x0E0
86703b705cfSriastradh#define GEN6_SURFACEFORMAT_L24X8_UNORM                    0x0E1
86803b705cfSriastradh#define GEN6_SURFACEFORMAT_A24X8_UNORM                    0x0E2
86903b705cfSriastradh#define GEN6_SURFACEFORMAT_I32_FLOAT                      0x0E3
87003b705cfSriastradh#define GEN6_SURFACEFORMAT_L32_FLOAT                      0x0E4
87103b705cfSriastradh#define GEN6_SURFACEFORMAT_A32_FLOAT                      0x0E5
87203b705cfSriastradh#define GEN6_SURFACEFORMAT_B8G8R8X8_UNORM                 0x0E9
87303b705cfSriastradh#define GEN6_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB            0x0EA
87403b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8X8_UNORM                 0x0EB
87503b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB            0x0EC
87603b705cfSriastradh#define GEN6_SURFACEFORMAT_R9G9B9E5_SHAREDEXP             0x0ED
87703b705cfSriastradh#define GEN6_SURFACEFORMAT_B10G10R10X2_UNORM              0x0EE
87803b705cfSriastradh#define GEN6_SURFACEFORMAT_L16A16_FLOAT                   0x0F0
87903b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_UNORM                      0x0F1
88003b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_SNORM                      0x0F2
88103b705cfSriastradh#define GEN6_SURFACEFORMAT_R10G10B10X2_USCALED            0x0F3
88203b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_SSCALED               0x0F4
88303b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8A8_USCALED               0x0F5
88403b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_SSCALED                 0x0F6
88503b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16_USCALED                 0x0F7
88603b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_SSCALED                    0x0F8
88703b705cfSriastradh#define GEN6_SURFACEFORMAT_R32_USCALED                    0x0F9
88803b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G6R5_UNORM                   0x100
88903b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G6R5_UNORM_SRGB              0x101
89003b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G5R5A1_UNORM                 0x102
89103b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB            0x103
89203b705cfSriastradh#define GEN6_SURFACEFORMAT_B4G4R4A4_UNORM                 0x104
89303b705cfSriastradh#define GEN6_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB            0x105
89403b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_UNORM                     0x106
89503b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_SNORM                     0x107
89603b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_SINT                      0x108
89703b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_UINT                      0x109
89803b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_UNORM                      0x10A
89903b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_SNORM                      0x10B
90003b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_SINT                       0x10C
90103b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_UINT                       0x10D
90203b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_FLOAT                      0x10E
90303b705cfSriastradh#define GEN6_SURFACEFORMAT_I16_UNORM                      0x111
90403b705cfSriastradh#define GEN6_SURFACEFORMAT_L16_UNORM                      0x112
90503b705cfSriastradh#define GEN6_SURFACEFORMAT_A16_UNORM                      0x113
90603b705cfSriastradh#define GEN6_SURFACEFORMAT_L8A8_UNORM                     0x114
90703b705cfSriastradh#define GEN6_SURFACEFORMAT_I16_FLOAT                      0x115
90803b705cfSriastradh#define GEN6_SURFACEFORMAT_L16_FLOAT                      0x116
90903b705cfSriastradh#define GEN6_SURFACEFORMAT_A16_FLOAT                      0x117
91003b705cfSriastradh#define GEN6_SURFACEFORMAT_R5G5_SNORM_B6_UNORM            0x119
91103b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G5R5X1_UNORM                 0x11A
91203b705cfSriastradh#define GEN6_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB            0x11B
91303b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_SSCALED                   0x11C
91403b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8_USCALED                   0x11D
91503b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_SSCALED                    0x11E
91603b705cfSriastradh#define GEN6_SURFACEFORMAT_R16_USCALED                    0x11F
91703b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_UNORM                       0x140
91803b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_SNORM                       0x141
91903b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_SINT                        0x142
92003b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_UINT                        0x143
92103b705cfSriastradh#define GEN6_SURFACEFORMAT_A8_UNORM                       0x144
92203b705cfSriastradh#define GEN6_SURFACEFORMAT_I8_UNORM                       0x145
92303b705cfSriastradh#define GEN6_SURFACEFORMAT_L8_UNORM                       0x146
92403b705cfSriastradh#define GEN6_SURFACEFORMAT_P4A4_UNORM                     0x147
92503b705cfSriastradh#define GEN6_SURFACEFORMAT_A4P4_UNORM                     0x148
92603b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_SSCALED                     0x149
92703b705cfSriastradh#define GEN6_SURFACEFORMAT_R8_USCALED                     0x14A
92803b705cfSriastradh#define GEN6_SURFACEFORMAT_R1_UINT                        0x181
92903b705cfSriastradh#define GEN6_SURFACEFORMAT_YCRCB_NORMAL                   0x182
93003b705cfSriastradh#define GEN6_SURFACEFORMAT_YCRCB_SWAPUVY                  0x183
93103b705cfSriastradh#define GEN6_SURFACEFORMAT_BC1_UNORM                      0x186
93203b705cfSriastradh#define GEN6_SURFACEFORMAT_BC2_UNORM                      0x187
93303b705cfSriastradh#define GEN6_SURFACEFORMAT_BC3_UNORM                      0x188
93403b705cfSriastradh#define GEN6_SURFACEFORMAT_BC4_UNORM                      0x189
93503b705cfSriastradh#define GEN6_SURFACEFORMAT_BC5_UNORM                      0x18A
93603b705cfSriastradh#define GEN6_SURFACEFORMAT_BC1_UNORM_SRGB                 0x18B
93703b705cfSriastradh#define GEN6_SURFACEFORMAT_BC2_UNORM_SRGB                 0x18C
93803b705cfSriastradh#define GEN6_SURFACEFORMAT_BC3_UNORM_SRGB                 0x18D
93903b705cfSriastradh#define GEN6_SURFACEFORMAT_MONO8                          0x18E
94003b705cfSriastradh#define GEN6_SURFACEFORMAT_YCRCB_SWAPUV                   0x18F
94103b705cfSriastradh#define GEN6_SURFACEFORMAT_YCRCB_SWAPY                    0x190
94203b705cfSriastradh#define GEN6_SURFACEFORMAT_DXT1_RGB                       0x191
94303b705cfSriastradh#define GEN6_SURFACEFORMAT_FXT1                           0x192
94403b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8_UNORM                   0x193
94503b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8_SNORM                   0x194
94603b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8_SSCALED                 0x195
94703b705cfSriastradh#define GEN6_SURFACEFORMAT_R8G8B8_USCALED                 0x196
94803b705cfSriastradh#define GEN6_SURFACEFORMAT_R64G64B64A64_FLOAT             0x197
94903b705cfSriastradh#define GEN6_SURFACEFORMAT_R64G64B64_FLOAT                0x198
95003b705cfSriastradh#define GEN6_SURFACEFORMAT_BC4_SNORM                      0x199
95103b705cfSriastradh#define GEN6_SURFACEFORMAT_BC5_SNORM                      0x19A
95203b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16_UNORM                0x19C
95303b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16_SNORM                0x19D
95403b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16_SSCALED              0x19E
95503b705cfSriastradh#define GEN6_SURFACEFORMAT_R16G16B16_USCALED              0x19F
95603b705cfSriastradh
95703b705cfSriastradh#define GEN6_SURFACERETURNFORMAT_FLOAT32  0
95803b705cfSriastradh#define GEN6_SURFACERETURNFORMAT_S1       1
95903b705cfSriastradh
96003b705cfSriastradh#define GEN6_SURFACE_1D      0
96103b705cfSriastradh#define GEN6_SURFACE_2D      1
96203b705cfSriastradh#define GEN6_SURFACE_3D      2
96303b705cfSriastradh#define GEN6_SURFACE_CUBE    3
96403b705cfSriastradh#define GEN6_SURFACE_BUFFER  4
96503b705cfSriastradh#define GEN6_SURFACE_NULL    7
96603b705cfSriastradh
96703b705cfSriastradh#define GEN6_BORDER_COLOR_MODE_DEFAULT	0
96803b705cfSriastradh#define GEN6_BORDER_COLOR_MODE_LEGACY	1
96903b705cfSriastradh
97003b705cfSriastradh#define GEN6_TEXCOORDMODE_WRAP            0
97103b705cfSriastradh#define GEN6_TEXCOORDMODE_MIRROR          1
97203b705cfSriastradh#define GEN6_TEXCOORDMODE_CLAMP           2
97303b705cfSriastradh#define GEN6_TEXCOORDMODE_CUBE            3
97403b705cfSriastradh#define GEN6_TEXCOORDMODE_CLAMP_BORDER    4
97503b705cfSriastradh#define GEN6_TEXCOORDMODE_MIRROR_ONCE     5
97603b705cfSriastradh
97703b705cfSriastradh#define GEN6_THREAD_PRIORITY_NORMAL   0
97803b705cfSriastradh#define GEN6_THREAD_PRIORITY_HIGH     1
97903b705cfSriastradh
98003b705cfSriastradh#define GEN6_TILEWALK_XMAJOR                 0
98103b705cfSriastradh#define GEN6_TILEWALK_YMAJOR                 1
98203b705cfSriastradh
98303b705cfSriastradh#define GEN6_VERTEX_SUBPIXEL_PRECISION_8BITS  0
98403b705cfSriastradh#define GEN6_VERTEX_SUBPIXEL_PRECISION_4BITS  1
98503b705cfSriastradh
98603b705cfSriastradh#define GEN6_VERTEXBUFFER_ACCESS_VERTEXDATA     0
98703b705cfSriastradh#define GEN6_VERTEXBUFFER_ACCESS_INSTANCEDATA   1
98803b705cfSriastradh
98903b705cfSriastradh#define GEN6_VFCOMPONENT_NOSTORE      0
99003b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_SRC    1
99103b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_0      2
99203b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_1_FLT  3
99303b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_1_INT  4
99403b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_VID    5
99503b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_IID    6
99603b705cfSriastradh#define GEN6_VFCOMPONENT_STORE_PID    7
99703b705cfSriastradh
99803b705cfSriastradh
99903b705cfSriastradh
100003b705cfSriastradh/* Execution Unit (EU) defines
100103b705cfSriastradh */
100203b705cfSriastradh
100303b705cfSriastradh#define GEN6_ALIGN_1   0
100403b705cfSriastradh#define GEN6_ALIGN_16  1
100503b705cfSriastradh
100603b705cfSriastradh#define GEN6_ADDRESS_DIRECT                        0
100703b705cfSriastradh#define GEN6_ADDRESS_REGISTER_INDIRECT_REGISTER    1
100803b705cfSriastradh
100903b705cfSriastradh#define GEN6_CHANNEL_X     0
101003b705cfSriastradh#define GEN6_CHANNEL_Y     1
101103b705cfSriastradh#define GEN6_CHANNEL_Z     2
101203b705cfSriastradh#define GEN6_CHANNEL_W     3
101303b705cfSriastradh
101403b705cfSriastradh#define GEN6_COMPRESSION_NONE          0
101503b705cfSriastradh#define GEN6_COMPRESSION_2NDHALF       1
101603b705cfSriastradh#define GEN6_COMPRESSION_COMPRESSED    2
101703b705cfSriastradh
101803b705cfSriastradh#define GEN6_CONDITIONAL_NONE  0
101903b705cfSriastradh#define GEN6_CONDITIONAL_Z     1
102003b705cfSriastradh#define GEN6_CONDITIONAL_NZ    2
102103b705cfSriastradh#define GEN6_CONDITIONAL_EQ    1	/* Z */
102203b705cfSriastradh#define GEN6_CONDITIONAL_NEQ   2	/* NZ */
102303b705cfSriastradh#define GEN6_CONDITIONAL_G     3
102403b705cfSriastradh#define GEN6_CONDITIONAL_GE    4
102503b705cfSriastradh#define GEN6_CONDITIONAL_L     5
102603b705cfSriastradh#define GEN6_CONDITIONAL_LE    6
102703b705cfSriastradh#define GEN6_CONDITIONAL_C     7
102803b705cfSriastradh#define GEN6_CONDITIONAL_O     8
102903b705cfSriastradh
103003b705cfSriastradh#define GEN6_DEBUG_NONE        0
103103b705cfSriastradh#define GEN6_DEBUG_BREAKPOINT  1
103203b705cfSriastradh
103303b705cfSriastradh#define GEN6_DEPENDENCY_NORMAL         0
103403b705cfSriastradh#define GEN6_DEPENDENCY_NOTCLEARED     1
103503b705cfSriastradh#define GEN6_DEPENDENCY_NOTCHECKED     2
103603b705cfSriastradh#define GEN6_DEPENDENCY_DISABLE        3
103703b705cfSriastradh
103803b705cfSriastradh#define GEN6_EXECUTE_1     0
103903b705cfSriastradh#define GEN6_EXECUTE_2     1
104003b705cfSriastradh#define GEN6_EXECUTE_4     2
104103b705cfSriastradh#define GEN6_EXECUTE_8     3
104203b705cfSriastradh#define GEN6_EXECUTE_16    4
104303b705cfSriastradh#define GEN6_EXECUTE_32    5
104403b705cfSriastradh
104503b705cfSriastradh#define GEN6_HORIZONTAL_STRIDE_0   0
104603b705cfSriastradh#define GEN6_HORIZONTAL_STRIDE_1   1
104703b705cfSriastradh#define GEN6_HORIZONTAL_STRIDE_2   2
104803b705cfSriastradh#define GEN6_HORIZONTAL_STRIDE_4   3
104903b705cfSriastradh
105003b705cfSriastradh#define GEN6_INSTRUCTION_NORMAL    0
105103b705cfSriastradh#define GEN6_INSTRUCTION_SATURATE  1
105203b705cfSriastradh
105303b705cfSriastradh#define GEN6_MASK_ENABLE   0
105403b705cfSriastradh#define GEN6_MASK_DISABLE  1
105503b705cfSriastradh
105603b705cfSriastradh#define GEN6_OPCODE_MOV        1
105703b705cfSriastradh#define GEN6_OPCODE_SEL        2
105803b705cfSriastradh#define GEN6_OPCODE_NOT        4
105903b705cfSriastradh#define GEN6_OPCODE_AND        5
106003b705cfSriastradh#define GEN6_OPCODE_OR         6
106103b705cfSriastradh#define GEN6_OPCODE_XOR        7
106203b705cfSriastradh#define GEN6_OPCODE_SHR        8
106303b705cfSriastradh#define GEN6_OPCODE_SHL        9
106403b705cfSriastradh#define GEN6_OPCODE_RSR        10
106503b705cfSriastradh#define GEN6_OPCODE_RSL        11
106603b705cfSriastradh#define GEN6_OPCODE_ASR        12
106703b705cfSriastradh#define GEN6_OPCODE_CMP        16
106803b705cfSriastradh#define GEN6_OPCODE_JMPI       32
106903b705cfSriastradh#define GEN6_OPCODE_IF         34
107003b705cfSriastradh#define GEN6_OPCODE_IFF        35
107103b705cfSriastradh#define GEN6_OPCODE_ELSE       36
107203b705cfSriastradh#define GEN6_OPCODE_ENDIF      37
107303b705cfSriastradh#define GEN6_OPCODE_DO         38
107403b705cfSriastradh#define GEN6_OPCODE_WHILE      39
107503b705cfSriastradh#define GEN6_OPCODE_BREAK      40
107603b705cfSriastradh#define GEN6_OPCODE_CONTINUE   41
107703b705cfSriastradh#define GEN6_OPCODE_HALT       42
107803b705cfSriastradh#define GEN6_OPCODE_MSAVE      44
107903b705cfSriastradh#define GEN6_OPCODE_MRESTORE   45
108003b705cfSriastradh#define GEN6_OPCODE_PUSH       46
108103b705cfSriastradh#define GEN6_OPCODE_POP        47
108203b705cfSriastradh#define GEN6_OPCODE_WAIT       48
108303b705cfSriastradh#define GEN6_OPCODE_SEND       49
108403b705cfSriastradh#define GEN6_OPCODE_ADD        64
108503b705cfSriastradh#define GEN6_OPCODE_MUL        65
108603b705cfSriastradh#define GEN6_OPCODE_AVG        66
108703b705cfSriastradh#define GEN6_OPCODE_FRC        67
108803b705cfSriastradh#define GEN6_OPCODE_RNDU       68
108903b705cfSriastradh#define GEN6_OPCODE_RNDD       69
109003b705cfSriastradh#define GEN6_OPCODE_RNDE       70
109103b705cfSriastradh#define GEN6_OPCODE_RNDZ       71
109203b705cfSriastradh#define GEN6_OPCODE_MAC        72
109303b705cfSriastradh#define GEN6_OPCODE_MACH       73
109403b705cfSriastradh#define GEN6_OPCODE_LZD        74
109503b705cfSriastradh#define GEN6_OPCODE_SAD2       80
109603b705cfSriastradh#define GEN6_OPCODE_SADA2      81
109703b705cfSriastradh#define GEN6_OPCODE_DP4        84
109803b705cfSriastradh#define GEN6_OPCODE_DPH        85
109903b705cfSriastradh#define GEN6_OPCODE_DP3        86
110003b705cfSriastradh#define GEN6_OPCODE_DP2        87
110103b705cfSriastradh#define GEN6_OPCODE_DPA2       88
110203b705cfSriastradh#define GEN6_OPCODE_LINE       89
110303b705cfSriastradh#define GEN6_OPCODE_NOP        126
110403b705cfSriastradh
110503b705cfSriastradh#define GEN6_PREDICATE_NONE             0
110603b705cfSriastradh#define GEN6_PREDICATE_NORMAL           1
110703b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ANYV             2
110803b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ALLV             3
110903b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ANY2H            4
111003b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ALL2H            5
111103b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ANY4H            6
111203b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ALL4H            7
111303b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ANY8H            8
111403b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ALL8H            9
111503b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ANY16H           10
111603b705cfSriastradh#define GEN6_PREDICATE_ALIGN1_ALL16H           11
111703b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_REPLICATE_X     2
111803b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_REPLICATE_Y     3
111903b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_REPLICATE_Z     4
112003b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_REPLICATE_W     5
112103b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_ANY4H           6
112203b705cfSriastradh#define GEN6_PREDICATE_ALIGN16_ALL4H           7
112303b705cfSriastradh
112403b705cfSriastradh#define GEN6_ARCHITECTURE_REGISTER_FILE    0
112503b705cfSriastradh#define GEN6_GENERAL_REGISTER_FILE         1
112603b705cfSriastradh#define GEN6_MESSAGE_REGISTER_FILE         2
112703b705cfSriastradh#define GEN6_IMMEDIATE_VALUE               3
112803b705cfSriastradh
112903b705cfSriastradh#define GEN6_REGISTER_TYPE_UD  0
113003b705cfSriastradh#define GEN6_REGISTER_TYPE_D   1
113103b705cfSriastradh#define GEN6_REGISTER_TYPE_UW  2
113203b705cfSriastradh#define GEN6_REGISTER_TYPE_W   3
113303b705cfSriastradh#define GEN6_REGISTER_TYPE_UB  4
113403b705cfSriastradh#define GEN6_REGISTER_TYPE_B   5
113503b705cfSriastradh#define GEN6_REGISTER_TYPE_VF  5	/* packed float vector, immediates only? */
113603b705cfSriastradh#define GEN6_REGISTER_TYPE_HF  6
113703b705cfSriastradh#define GEN6_REGISTER_TYPE_V   6	/* packed int vector, immediates only, uword dest only */
113803b705cfSriastradh#define GEN6_REGISTER_TYPE_F   7
113903b705cfSriastradh
114003b705cfSriastradh#define GEN6_ARF_NULL                  0x00
114103b705cfSriastradh#define GEN6_ARF_ADDRESS               0x10
114203b705cfSriastradh#define GEN6_ARF_ACCUMULATOR           0x20
114303b705cfSriastradh#define GEN6_ARF_FLAG                  0x30
114403b705cfSriastradh#define GEN6_ARF_MASK                  0x40
114503b705cfSriastradh#define GEN6_ARF_MASK_STACK            0x50
114603b705cfSriastradh#define GEN6_ARF_MASK_STACK_DEPTH      0x60
114703b705cfSriastradh#define GEN6_ARF_STATE                 0x70
114803b705cfSriastradh#define GEN6_ARF_CONTROL               0x80
114903b705cfSriastradh#define GEN6_ARF_NOTIFICATION_COUNT    0x90
115003b705cfSriastradh#define GEN6_ARF_IP                    0xA0
115103b705cfSriastradh
115203b705cfSriastradh#define GEN6_AMASK   0
115303b705cfSriastradh#define GEN6_IMASK   1
115403b705cfSriastradh#define GEN6_LMASK   2
115503b705cfSriastradh#define GEN6_CMASK   3
115603b705cfSriastradh
115703b705cfSriastradh
115803b705cfSriastradh
115903b705cfSriastradh#define GEN6_THREAD_NORMAL     0
116003b705cfSriastradh#define GEN6_THREAD_ATOMIC     1
116103b705cfSriastradh#define GEN6_THREAD_SWITCH     2
116203b705cfSriastradh
116303b705cfSriastradh#define GEN6_VERTICAL_STRIDE_0                 0
116403b705cfSriastradh#define GEN6_VERTICAL_STRIDE_1                 1
116503b705cfSriastradh#define GEN6_VERTICAL_STRIDE_2                 2
116603b705cfSriastradh#define GEN6_VERTICAL_STRIDE_4                 3
116703b705cfSriastradh#define GEN6_VERTICAL_STRIDE_8                 4
116803b705cfSriastradh#define GEN6_VERTICAL_STRIDE_16                5
116903b705cfSriastradh#define GEN6_VERTICAL_STRIDE_32                6
117003b705cfSriastradh#define GEN6_VERTICAL_STRIDE_64                7
117103b705cfSriastradh#define GEN6_VERTICAL_STRIDE_128               8
117203b705cfSriastradh#define GEN6_VERTICAL_STRIDE_256               9
117303b705cfSriastradh#define GEN6_VERTICAL_STRIDE_ONE_DIMENSIONAL   0xF
117403b705cfSriastradh
117503b705cfSriastradh#define GEN6_WIDTH_1       0
117603b705cfSriastradh#define GEN6_WIDTH_2       1
117703b705cfSriastradh#define GEN6_WIDTH_4       2
117803b705cfSriastradh#define GEN6_WIDTH_8       3
117903b705cfSriastradh#define GEN6_WIDTH_16      4
118003b705cfSriastradh
118103b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_1K      0
118203b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_2K      1
118303b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_4K      2
118403b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_8K      3
118503b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_16K     4
118603b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_32K     5
118703b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_64K     6
118803b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_128K    7
118903b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_256K    8
119003b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_512K    9
119103b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_1M      10
119203b705cfSriastradh#define GEN6_STATELESS_BUFFER_BOUNDARY_2M      11
119303b705cfSriastradh
119403b705cfSriastradh#define GEN6_POLYGON_FACING_FRONT      0
119503b705cfSriastradh#define GEN6_POLYGON_FACING_BACK       1
119603b705cfSriastradh
119703b705cfSriastradh#define GEN6_MESSAGE_TARGET_NULL               0
119803b705cfSriastradh#define GEN6_MESSAGE_TARGET_MATH               1
119903b705cfSriastradh#define GEN6_MESSAGE_TARGET_SAMPLER            2
120003b705cfSriastradh#define GEN6_MESSAGE_TARGET_GATEWAY            3
120103b705cfSriastradh#define GEN6_MESSAGE_TARGET_DATAPORT_READ      4
120203b705cfSriastradh#define GEN6_MESSAGE_TARGET_DATAPORT_WRITE     5
120303b705cfSriastradh#define GEN6_MESSAGE_TARGET_URB                6
120403b705cfSriastradh#define GEN6_MESSAGE_TARGET_THREAD_SPAWNER     7
120503b705cfSriastradh
120603b705cfSriastradh#define GEN6_SAMPLER_RETURN_FORMAT_FLOAT32     0
120703b705cfSriastradh#define GEN6_SAMPLER_RETURN_FORMAT_UINT32      2
120803b705cfSriastradh#define GEN6_SAMPLER_RETURN_FORMAT_SINT32      3
120903b705cfSriastradh
121003b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD8_SAMPLE              0
121103b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_SAMPLE             0
121203b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS        0
121303b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD8_KILLPIX             1
121403b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD        1
121503b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD         1
121603b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS  2
121703b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS    2
121803b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE    0
121903b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE     2
122003b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD4X2_RESINFO           2
122103b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD8_RESINFO             2
122203b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_RESINFO            2
122303b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD4X2_LD                3
122403b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD8_LD                  3
122503b705cfSriastradh#define GEN6_SAMPLER_MESSAGE_SIMD16_LD                 3
122603b705cfSriastradh
122703b705cfSriastradh#define GEN6_DATAPORT_OWORD_BLOCK_1_OWORDLOW   0
122803b705cfSriastradh#define GEN6_DATAPORT_OWORD_BLOCK_1_OWORDHIGH  1
122903b705cfSriastradh#define GEN6_DATAPORT_OWORD_BLOCK_2_OWORDS     2
123003b705cfSriastradh#define GEN6_DATAPORT_OWORD_BLOCK_4_OWORDS     3
123103b705cfSriastradh#define GEN6_DATAPORT_OWORD_BLOCK_8_OWORDS     4
123203b705cfSriastradh
123303b705cfSriastradh#define GEN6_DATAPORT_OWORD_DUAL_BLOCK_1OWORD     0
123403b705cfSriastradh#define GEN6_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS    2
123503b705cfSriastradh
123603b705cfSriastradh#define GEN6_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS   2
123703b705cfSriastradh#define GEN6_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS  3
123803b705cfSriastradh
123903b705cfSriastradh#define GEN6_DATAPORT_READ_TARGET_DATA_CACHE      0
124003b705cfSriastradh#define GEN6_DATAPORT_READ_TARGET_RENDER_CACHE    1
124103b705cfSriastradh#define GEN6_DATAPORT_READ_TARGET_SAMPLER_CACHE   2
124203b705cfSriastradh
124303b705cfSriastradh#define GEN6_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE                0
124403b705cfSriastradh#define GEN6_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED     1
124503b705cfSriastradh#define GEN6_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01         2
124603b705cfSriastradh#define GEN6_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23         3
124703b705cfSriastradh#define GEN6_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01       4
124803b705cfSriastradh
124903b705cfSriastradh#define GEN6_MATH_INTEGER_UNSIGNED     0
125003b705cfSriastradh#define GEN6_MATH_INTEGER_SIGNED       1
125103b705cfSriastradh
125203b705cfSriastradh#define GEN6_MATH_PRECISION_FULL        0
125303b705cfSriastradh#define GEN6_MATH_PRECISION_PARTIAL     1
125403b705cfSriastradh
125503b705cfSriastradh#define GEN6_MATH_SATURATE_NONE         0
125603b705cfSriastradh#define GEN6_MATH_SATURATE_SATURATE     1
125703b705cfSriastradh
125803b705cfSriastradh#define GEN6_MATH_DATA_VECTOR  0
125903b705cfSriastradh#define GEN6_MATH_DATA_SCALAR  1
126003b705cfSriastradh
126103b705cfSriastradh#define GEN6_URB_OPCODE_WRITE  0
126203b705cfSriastradh
126303b705cfSriastradh#define GEN6_URB_SWIZZLE_NONE          0
126403b705cfSriastradh#define GEN6_URB_SWIZZLE_INTERLEAVE    1
126503b705cfSriastradh#define GEN6_URB_SWIZZLE_TRANSPOSE     2
126603b705cfSriastradh
126703b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_1K     0
126803b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_2K     1
126903b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_4K     2
127003b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_8K     3
127103b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_16K    4
127203b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_32K    5
127303b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_64K    6
127403b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_128K   7
127503b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_256K   8
127603b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_512K   9
127703b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_1M     10
127803b705cfSriastradh#define GEN6_SCRATCH_SPACE_SIZE_2M     11
127903b705cfSriastradh
128003b705cfSriastradh/* The hardware supports two different modes for border color. The
128103b705cfSriastradh * default (OpenGL) mode uses floating-point color channels, while the
128203b705cfSriastradh * legacy mode uses 4 bytes.
128303b705cfSriastradh *
128403b705cfSriastradh * More significantly, the legacy mode respects the components of the
128503b705cfSriastradh * border color for channels not present in the source, (whereas the
128603b705cfSriastradh * default mode will ignore the border color's alpha channel and use
128703b705cfSriastradh * alpha==1 for an RGB source, for example).
128803b705cfSriastradh *
128903b705cfSriastradh * The legacy mode matches the semantics specified by the Render
129003b705cfSriastradh * extension.
129103b705cfSriastradh */
129203b705cfSriastradhstruct gen6_sampler_default_border_color {
129303b705cfSriastradh   float color[4];
129403b705cfSriastradh};
129503b705cfSriastradh
129603b705cfSriastradhstruct gen6_sampler_legacy_border_color {
129703b705cfSriastradh   uint8_t color[4];
129803b705cfSriastradh};
129903b705cfSriastradh
130003b705cfSriastradhstruct gen6_sampler_state {
130103b705cfSriastradh   struct {
130203b705cfSriastradh      uint32_t shadow_function:3;
130303b705cfSriastradh      uint32_t lod_bias:11;
130403b705cfSriastradh      uint32_t min_filter:3;
130503b705cfSriastradh      uint32_t mag_filter:3;
130603b705cfSriastradh      uint32_t mip_filter:2;
130703b705cfSriastradh      uint32_t base_level:5;
130803b705cfSriastradh      uint32_t pad:1;
130903b705cfSriastradh      uint32_t lod_preclamp:1;
131003b705cfSriastradh      uint32_t border_color_mode:1;
131103b705cfSriastradh      uint32_t pad0:1;
131203b705cfSriastradh      uint32_t disable:1;
131303b705cfSriastradh   } ss0;
131403b705cfSriastradh
131503b705cfSriastradh   struct {
131603b705cfSriastradh      uint32_t r_wrap_mode:3;
131703b705cfSriastradh      uint32_t t_wrap_mode:3;
131803b705cfSriastradh      uint32_t s_wrap_mode:3;
131903b705cfSriastradh      uint32_t pad:3;
132003b705cfSriastradh      uint32_t max_lod:10;
132103b705cfSriastradh      uint32_t min_lod:10;
132203b705cfSriastradh   } ss1;
132303b705cfSriastradh
132403b705cfSriastradh   struct {
132503b705cfSriastradh      uint32_t border_color;
132603b705cfSriastradh   } ss2;
132703b705cfSriastradh
132803b705cfSriastradh   struct {
132903b705cfSriastradh      uint32_t non_normalized_coord:1;
133003b705cfSriastradh      uint32_t pad:12;
133103b705cfSriastradh      uint32_t address_round:6;
133203b705cfSriastradh      uint32_t max_aniso:3;
133303b705cfSriastradh      uint32_t chroma_key_mode:1;
133403b705cfSriastradh      uint32_t chroma_key_index:2;
133503b705cfSriastradh      uint32_t chroma_key_enable:1;
133603b705cfSriastradh      uint32_t monochrome_filter_width:3;
133703b705cfSriastradh      uint32_t monochrome_filter_height:3;
133803b705cfSriastradh   } ss3;
133903b705cfSriastradh};
134003b705cfSriastradh
134103b705cfSriastradhstruct gen6_blend_state {
134203b705cfSriastradh	struct {
134303b705cfSriastradh		uint32_t dest_blend_factor:5;
134403b705cfSriastradh		uint32_t source_blend_factor:5;
134503b705cfSriastradh		uint32_t pad3:1;
134603b705cfSriastradh		uint32_t blend_func:3;
134703b705cfSriastradh		uint32_t pad2:1;
134803b705cfSriastradh		uint32_t ia_dest_blend_factor:5;
134903b705cfSriastradh		uint32_t ia_source_blend_factor:5;
135003b705cfSriastradh		uint32_t pad1:1;
135103b705cfSriastradh		uint32_t ia_blend_func:3;
135203b705cfSriastradh		uint32_t pad0:1;
135303b705cfSriastradh		uint32_t ia_blend_enable:1;
135403b705cfSriastradh		uint32_t blend_enable:1;
135503b705cfSriastradh	} blend0;
135603b705cfSriastradh
135703b705cfSriastradh	struct {
135803b705cfSriastradh		uint32_t post_blend_clamp_enable:1;
135903b705cfSriastradh		uint32_t pre_blend_clamp_enable:1;
136003b705cfSriastradh		uint32_t clamp_range:2;
136103b705cfSriastradh		uint32_t pad0:4;
136203b705cfSriastradh		uint32_t x_dither_offset:2;
136303b705cfSriastradh		uint32_t y_dither_offset:2;
136403b705cfSriastradh		uint32_t dither_enable:1;
136503b705cfSriastradh		uint32_t alpha_test_func:3;
136603b705cfSriastradh		uint32_t alpha_test_enable:1;
136703b705cfSriastradh		uint32_t pad1:1;
136803b705cfSriastradh		uint32_t logic_op_func:4;
136903b705cfSriastradh		uint32_t logic_op_enable:1;
137003b705cfSriastradh		uint32_t pad2:1;
137103b705cfSriastradh		uint32_t write_disable_b:1;
137203b705cfSriastradh		uint32_t write_disable_g:1;
137303b705cfSriastradh		uint32_t write_disable_r:1;
137403b705cfSriastradh		uint32_t write_disable_a:1;
137503b705cfSriastradh		uint32_t pad3:1;
137603b705cfSriastradh		uint32_t alpha_to_coverage_dither:1;
137703b705cfSriastradh		uint32_t alpha_to_one:1;
137803b705cfSriastradh		uint32_t alpha_to_coverage:1;
137903b705cfSriastradh	} blend1;
138003b705cfSriastradh};
138103b705cfSriastradh
138203b705cfSriastradhstruct gen6_color_calc_state {
138303b705cfSriastradh	struct {
138403b705cfSriastradh		uint32_t alpha_test_format:1;
138503b705cfSriastradh		uint32_t pad0:14;
138603b705cfSriastradh		uint32_t round_disable:1;
138703b705cfSriastradh		uint32_t bf_stencil_ref:8;
138803b705cfSriastradh		uint32_t stencil_ref:8;
138903b705cfSriastradh	} cc0;
139003b705cfSriastradh
139103b705cfSriastradh	union {
139203b705cfSriastradh		float alpha_ref_f;
139303b705cfSriastradh		struct {
139403b705cfSriastradh			uint32_t ui:8;
139503b705cfSriastradh			uint32_t pad0:24;
139603b705cfSriastradh		} alpha_ref_fi;
139703b705cfSriastradh	} cc1;
139803b705cfSriastradh
139903b705cfSriastradh	float constant_r;
140003b705cfSriastradh	float constant_g;
140103b705cfSriastradh	float constant_b;
140203b705cfSriastradh	float constant_a;
140303b705cfSriastradh};
140403b705cfSriastradh
140503b705cfSriastradhstruct gen6_depth_stencil_state {
140603b705cfSriastradh	struct {
140703b705cfSriastradh		uint32_t pad0:3;
140803b705cfSriastradh		uint32_t bf_stencil_pass_depth_pass_op:3;
140903b705cfSriastradh		uint32_t bf_stencil_pass_depth_fail_op:3;
141003b705cfSriastradh		uint32_t bf_stencil_fail_op:3;
141103b705cfSriastradh		uint32_t bf_stencil_func:3;
141203b705cfSriastradh		uint32_t bf_stencil_enable:1;
141303b705cfSriastradh		uint32_t pad1:2;
141403b705cfSriastradh		uint32_t stencil_write_enable:1;
141503b705cfSriastradh		uint32_t stencil_pass_depth_pass_op:3;
141603b705cfSriastradh		uint32_t stencil_pass_depth_fail_op:3;
141703b705cfSriastradh		uint32_t stencil_fail_op:3;
141803b705cfSriastradh		uint32_t stencil_func:3;
141903b705cfSriastradh		uint32_t stencil_enable:1;
142003b705cfSriastradh	} ds0;
142103b705cfSriastradh
142203b705cfSriastradh	struct {
142303b705cfSriastradh		uint32_t bf_stencil_write_mask:8;
142403b705cfSriastradh		uint32_t bf_stencil_test_mask:8;
142503b705cfSriastradh		uint32_t stencil_write_mask:8;
142603b705cfSriastradh		uint32_t stencil_test_mask:8;
142703b705cfSriastradh	} ds1;
142803b705cfSriastradh
142903b705cfSriastradh	struct {
143003b705cfSriastradh		uint32_t pad0:26;
143103b705cfSriastradh		uint32_t depth_write_enable:1;
143203b705cfSriastradh		uint32_t depth_test_func:3;
143303b705cfSriastradh		uint32_t pad1:1;
143403b705cfSriastradh		uint32_t depth_test_enable:1;
143503b705cfSriastradh	} ds2;
143603b705cfSriastradh};
143703b705cfSriastradh
143803b705cfSriastradhstruct gen6_surface_state {
143903b705cfSriastradh	struct {
144003b705cfSriastradh		uint32_t cube_pos_z:1;
144103b705cfSriastradh		uint32_t cube_neg_z:1;
144203b705cfSriastradh		uint32_t cube_pos_y:1;
144303b705cfSriastradh		uint32_t cube_neg_y:1;
144403b705cfSriastradh		uint32_t cube_pos_x:1;
144503b705cfSriastradh		uint32_t cube_neg_x:1;
144603b705cfSriastradh		uint32_t pad:3;
144703b705cfSriastradh		uint32_t render_cache_read_mode:1;
144803b705cfSriastradh		uint32_t mipmap_layout_mode:1;
144903b705cfSriastradh		uint32_t vert_line_stride_ofs:1;
145003b705cfSriastradh		uint32_t vert_line_stride:1;
145103b705cfSriastradh		uint32_t color_blend:1;
145203b705cfSriastradh		uint32_t writedisable_blue:1;
145303b705cfSriastradh		uint32_t writedisable_green:1;
145403b705cfSriastradh		uint32_t writedisable_red:1;
145503b705cfSriastradh		uint32_t writedisable_alpha:1;
145603b705cfSriastradh		uint32_t surface_format:9;
145703b705cfSriastradh		uint32_t data_return_format:1;
145803b705cfSriastradh		uint32_t pad0:1;
145903b705cfSriastradh		uint32_t surface_type:3;
146003b705cfSriastradh	} ss0;
146103b705cfSriastradh
146203b705cfSriastradh	struct {
146303b705cfSriastradh		uint32_t base_addr;
146403b705cfSriastradh	} ss1;
146503b705cfSriastradh
146603b705cfSriastradh	struct {
146703b705cfSriastradh		uint32_t render_target_rotation:2;
146803b705cfSriastradh		uint32_t mip_count:4;
146903b705cfSriastradh		uint32_t width:13;
147003b705cfSriastradh		uint32_t height:13;
147103b705cfSriastradh	} ss2;
147203b705cfSriastradh
147303b705cfSriastradh	struct {
147403b705cfSriastradh		uint32_t tile_walk:1;
147503b705cfSriastradh		uint32_t tiled_surface:1;
147603b705cfSriastradh		uint32_t pad:1;
147703b705cfSriastradh		uint32_t pitch:18;
147803b705cfSriastradh		uint32_t depth:11;
147903b705cfSriastradh	} ss3;
148003b705cfSriastradh
148103b705cfSriastradh	struct {
148203b705cfSriastradh		uint32_t pad:19;
148303b705cfSriastradh		uint32_t min_array_elt:9;
148403b705cfSriastradh		uint32_t min_lod:4;
148503b705cfSriastradh	} ss4;
148603b705cfSriastradh
148703b705cfSriastradh	struct {
148803b705cfSriastradh		uint32_t pad:20;
148903b705cfSriastradh		uint32_t y_offset:4;
149003b705cfSriastradh		uint32_t pad2:1;
149103b705cfSriastradh		uint32_t x_offset:7;
149203b705cfSriastradh	} ss5;
149303b705cfSriastradh};
149403b705cfSriastradh
149503b705cfSriastradh/* Surface state DW0 */
149603b705cfSriastradh#define GEN6_SURFACE_RC_READ_WRITE       (1 << 8)
149703b705cfSriastradh#define GEN6_SURFACE_MIPLAYOUT_SHIFT     10
149803b705cfSriastradh#define GEN6_SURFACE_MIPMAPLAYOUT_BELOW   0
149903b705cfSriastradh#define GEN6_SURFACE_MIPMAPLAYOUT_RIGHT   1
150003b705cfSriastradh#define GEN6_SURFACE_CUBEFACE_ENABLES    0x3f
150103b705cfSriastradh#define GEN6_SURFACE_BLEND_ENABLED       (1 << 13)
150203b705cfSriastradh#define GEN6_SURFACE_WRITEDISABLE_B_SHIFT        14
150303b705cfSriastradh#define GEN6_SURFACE_WRITEDISABLE_G_SHIFT        15
150403b705cfSriastradh#define GEN6_SURFACE_WRITEDISABLE_R_SHIFT        16
150503b705cfSriastradh#define GEN6_SURFACE_WRITEDISABLE_A_SHIFT        17
150603b705cfSriastradh#define GEN6_SURFACE_FORMAT_SHIFT        18
150703b705cfSriastradh#define GEN6_SURFACE_FORMAT_MASK         INTEL_MASK(26, 18)
150803b705cfSriastradh
150903b705cfSriastradh#define GEN6_SURFACE_TYPE_SHIFT          29
151003b705cfSriastradh#define GEN6_SURFACE_TYPE_MASK           GEN6_MASK(31, 29)
151103b705cfSriastradh#define GEN6_SURFACE_1D      0
151203b705cfSriastradh#define GEN6_SURFACE_2D      1
151303b705cfSriastradh#define GEN6_SURFACE_3D      2
151403b705cfSriastradh#define GEN6_SURFACE_CUBE    3
151503b705cfSriastradh#define GEN6_SURFACE_BUFFER  4
151603b705cfSriastradh#define GEN6_SURFACE_NULL    7
151703b705cfSriastradh
151803b705cfSriastradh/* Surface state DW2 */
151903b705cfSriastradh#define GEN6_SURFACE_HEIGHT_SHIFT        19
152003b705cfSriastradh#define GEN6_SURFACE_HEIGHT_MASK         GEN6_MASK(31, 19)
152103b705cfSriastradh#define GEN6_SURFACE_WIDTH_SHIFT         6
152203b705cfSriastradh#define GEN6_SURFACE_WIDTH_MASK          GEN6_MASK(18, 6)
152303b705cfSriastradh#define GEN6_SURFACE_LOD_SHIFT           2
152403b705cfSriastradh#define GEN6_SURFACE_LOD_MASK            GEN6_MASK(5, 2)
152503b705cfSriastradh
152603b705cfSriastradh/* Surface state DW3 */
152703b705cfSriastradh#define GEN6_SURFACE_DEPTH_SHIFT         21
152803b705cfSriastradh#define GEN6_SURFACE_DEPTH_MASK          GEN6_MASK(31, 21)
152903b705cfSriastradh#define GEN6_SURFACE_PITCH_SHIFT         3
153003b705cfSriastradh#define GEN6_SURFACE_PITCH_MASK          GEN6_MASK(19, 3)
153103b705cfSriastradh#define GEN6_SURFACE_TILED               (1 << 1)
153203b705cfSriastradh#define GEN6_SURFACE_TILED_Y             (1 << 0)
153303b705cfSriastradh
153403b705cfSriastradh/* Surface state DW4 */
153503b705cfSriastradh#define GEN6_SURFACE_MIN_LOD_SHIFT       28
153603b705cfSriastradh#define GEN6_SURFACE_MIN_LOD_MASK        GEN6_MASK(31, 28)
153703b705cfSriastradh
153803b705cfSriastradh/* Surface state DW5 */
153903b705cfSriastradh#define GEN6_SURFACE_X_OFFSET_SHIFT      25
154003b705cfSriastradh#define GEN6_SURFACE_X_OFFSET_MASK       GEN6_MASK(31, 25)
154103b705cfSriastradh#define GEN6_SURFACE_Y_OFFSET_SHIFT      20
154203b705cfSriastradh#define GEN6_SURFACE_Y_OFFSET_MASK       GEN6_MASK(23, 20)
154303b705cfSriastradh
154403b705cfSriastradhstruct gen6_cc_viewport {
154503b705cfSriastradh	float min_depth;
154603b705cfSriastradh	float max_depth;
154703b705cfSriastradh};
154803b705cfSriastradh
154903b705cfSriastradhtypedef enum {
155003b705cfSriastradh	SAMPLER_FILTER_NEAREST = 0,
155103b705cfSriastradh	SAMPLER_FILTER_BILINEAR,
155203b705cfSriastradh	FILTER_COUNT
155303b705cfSriastradh} sampler_filter_t;
155403b705cfSriastradh
155503b705cfSriastradhtypedef enum {
155603b705cfSriastradh	SAMPLER_EXTEND_NONE = 0,
155703b705cfSriastradh	SAMPLER_EXTEND_REPEAT,
155803b705cfSriastradh	SAMPLER_EXTEND_PAD,
155903b705cfSriastradh	SAMPLER_EXTEND_REFLECT,
156003b705cfSriastradh	EXTEND_COUNT
156103b705cfSriastradh} sampler_extend_t;
156203b705cfSriastradh
156303b705cfSriastradh#endif
1564