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