i965_reg.h revision 428d7b3d
1/* 2 * New regs for broadwater -- we need to split this file up sensibly somehow. 3 */ 4#define BRW_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \ 5 ((Pipeline) << 27) | \ 6 ((Opcode) << 24) | \ 7 ((Subopcode) << 16)) 8 9#define BRW_URB_FENCE BRW_3D(0, 0, 0) 10#define BRW_CS_URB_STATE BRW_3D(0, 0, 1) 11#define BRW_CONSTANT_BUFFER BRW_3D(0, 0, 2) 12#define BRW_STATE_PREFETCH BRW_3D(0, 0, 3) 13 14#define BRW_STATE_BASE_ADDRESS BRW_3D(0, 1, 1) 15#define BRW_STATE_SIP BRW_3D(0, 1, 2) 16#define BRW_PIPELINE_SELECT BRW_3D(0, 1, 4) 17 18#define NEW_PIPELINE_SELECT BRW_3D(1, 1, 4) 19 20#define BRW_MEDIA_STATE_POINTERS BRW_3D(2, 0, 0) 21#define BRW_MEDIA_OBJECT BRW_3D(2, 1, 0) 22 23#define BRW_3DSTATE_PIPELINED_POINTERS BRW_3D(3, 0, 0) 24#define BRW_3DSTATE_BINDING_TABLE_POINTERS BRW_3D(3, 0, 1) 25# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS (1 << 12)/* for GEN6 */ 26# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS (1 << 9) /* for GEN6 */ 27# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS (1 << 8) /* for GEN6 */ 28 29#define BRW_3DSTATE_VERTEX_BUFFERS BRW_3D(3, 0, 8) 30#define BRW_3DSTATE_VERTEX_ELEMENTS BRW_3D(3, 0, 9) 31#define BRW_3DSTATE_INDEX_BUFFER BRW_3D(3, 0, 0xa) 32#define BRW_3DSTATE_VF_STATISTICS BRW_3D(3, 0, 0xb) 33 34#define BRW_3DSTATE_DRAWING_RECTANGLE BRW_3D(3, 1, 0) 35#define BRW_3DSTATE_CONSTANT_COLOR BRW_3D(3, 1, 1) 36#define BRW_3DSTATE_SAMPLER_PALETTE_LOAD BRW_3D(3, 1, 2) 37#define BRW_3DSTATE_CHROMA_KEY BRW_3D(3, 1, 4) 38#define BRW_3DSTATE_DEPTH_BUFFER BRW_3D(3, 1, 5) 39# define BRW_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT 29 40# define BRW_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT 18 41 42#define BRW_3DSTATE_POLY_STIPPLE_OFFSET BRW_3D(3, 1, 6) 43#define BRW_3DSTATE_POLY_STIPPLE_PATTERN BRW_3D(3, 1, 7) 44#define BRW_3DSTATE_LINE_STIPPLE BRW_3D(3, 1, 8) 45#define BRW_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP BRW_3D(3, 1, 9) 46/* These two are BLC and CTG only, not BW or CL */ 47#define BRW_3DSTATE_AA_LINE_PARAMS BRW_3D(3, 1, 0xa) 48#define BRW_3DSTATE_GS_SVB_INDEX BRW_3D(3, 1, 0xb) 49 50#define BRW_PIPE_CONTROL BRW_3D(3, 2, 0) 51 52#define BRW_3DPRIMITIVE BRW_3D(3, 3, 0) 53 54#define BRW_3DSTATE_CLEAR_PARAMS BRW_3D(3, 1, 0x10) 55/* DW1 */ 56# define BRW_3DSTATE_DEPTH_CLEAR_VALID (1 << 15) 57 58/* for GEN6+ */ 59#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS BRW_3D(3, 0, 0x02) 60# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS (1 << 12) 61# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS (1 << 9) 62# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS (1 << 8) 63 64#define GEN6_3DSTATE_URB BRW_3D(3, 0, 0x05) 65/* DW1 */ 66# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT 16 67# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT 0 68/* DW2 */ 69# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT 8 70# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT 0 71 72#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS BRW_3D(3, 0, 0x0d) 73# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC (1 << 12) 74# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF (1 << 11) 75# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP (1 << 10) 76 77#define GEN6_3DSTATE_CC_STATE_POINTERS BRW_3D(3, 0, 0x0e) 78 79#define GEN6_3DSTATE_VS BRW_3D(3, 0, 0x10) 80 81#define GEN6_3DSTATE_GS BRW_3D(3, 0, 0x11) 82/* DW4 */ 83# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT 0 84 85#define GEN6_3DSTATE_CLIP BRW_3D(3, 0, 0x12) 86 87#define GEN6_3DSTATE_SF BRW_3D(3, 0, 0x13) 88/* DW1 */ 89# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT 22 90# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT 11 91# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT 4 92/* DW2 */ 93/* DW3 */ 94# define GEN6_3DSTATE_SF_CULL_BOTH (0 << 29) 95# define GEN6_3DSTATE_SF_CULL_NONE (1 << 29) 96# define GEN6_3DSTATE_SF_CULL_FRONT (2 << 29) 97# define GEN6_3DSTATE_SF_CULL_BACK (3 << 29) 98/* DW4 */ 99# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT 29 100# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT 27 101# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT 25 102 103 104#define GEN6_3DSTATE_WM BRW_3D(3, 0, 0x14) 105/* DW2 */ 106# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF 27 107# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 108/* DW4 */ 109# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT 16 110/* DW5 */ 111# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT 25 112# define GEN6_3DSTATE_WM_DISPATCH_ENABLE (1 << 19) 113# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE (1 << 1) 114# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE (1 << 0) 115/* DW6 */ 116# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT 20 117# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15) 118# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14) 119# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13) 120# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12) 121# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11) 122# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10) 123 124 125#define GEN6_3DSTATE_CONSTANT_VS BRW_3D(3, 0, 0x15) 126#define GEN6_3DSTATE_CONSTANT_GS BRW_3D(3, 0, 0x16) 127#define GEN6_3DSTATE_CONSTANT_PS BRW_3D(3, 0, 0x17) 128 129#define GEN6_3DSTATE_SAMPLE_MASK BRW_3D(3, 0, 0x18) 130 131#define GEN6_3DSTATE_MULTISAMPLE BRW_3D(3, 1, 0x0d) 132/* DW1 */ 133# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER (0 << 4) 134# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT (1 << 4) 135# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1 (0 << 1) 136# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4 (2 << 1) 137# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8 (3 << 1) 138 139/* on GEN7+ */ 140/* _3DSTATE_VERTEX_BUFFERS on GEN7*/ 141/* DW1 */ 142#define GEN7_VB0_ADDRESS_MODIFYENABLE (1 << 14) 143 144/* _3DPRIMITIVE on GEN7 */ 145/* DW1 */ 146# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8) 147# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8) 148 149/* 3DSTATE_WM on GEN7 */ 150/* DW1 */ 151# define GEN7_WM_STATISTICS_ENABLE (1 << 31) 152# define GEN7_WM_DEPTH_CLEAR (1 << 30) 153# define GEN7_WM_DISPATCH_ENABLE (1 << 29) 154# define GEN6_WM_DEPTH_RESOLVE (1 << 28) 155# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) 156# define GEN7_WM_KILL_ENABLE (1 << 25) 157# define GEN7_WM_PSCDEPTH_OFF (0 << 23) 158# define GEN7_WM_PSCDEPTH_ON (1 << 23) 159# define GEN7_WM_PSCDEPTH_ON_GE (2 << 23) 160# define GEN7_WM_PSCDEPTH_ON_LE (3 << 23) 161# define GEN7_WM_USES_SOURCE_DEPTH (1 << 20) 162# define GEN7_WM_USES_SOURCE_W (1 << 19) 163# define GEN7_WM_POSITION_ZW_PIXEL (0 << 17) 164# define GEN7_WM_POSITION_ZW_CENTROID (2 << 17) 165# define GEN7_WM_POSITION_ZW_SAMPLE (3 << 17) 166# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16) 167# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15) 168# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14) 169# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13) 170# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12) 171# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11) 172# define GEN7_WM_USES_INPUT_COVERAGE_MASK (1 << 10) 173# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8) 174# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8) 175# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8) 176# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8) 177# define GEN7_WM_LINE_AA_WIDTH_0_5 (0 << 6) 178# define GEN7_WM_LINE_AA_WIDTH_1_0 (1 << 6) 179# define GEN7_WM_LINE_AA_WIDTH_2_0 (2 << 6) 180# define GEN7_WM_LINE_AA_WIDTH_4_0 (3 << 6) 181# define GEN7_WM_POLYGON_STIPPLE_ENABLE (1 << 4) 182# define GEN7_WM_LINE_STIPPLE_ENABLE (1 << 3) 183# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2) 184# define GEN7_WM_MSRAST_OFF_PIXEL (0 << 0) 185# define GEN7_WM_MSRAST_OFF_PATTERN (1 << 0) 186# define GEN7_WM_MSRAST_ON_PIXEL (2 << 0) 187# define GEN7_WM_MSRAST_ON_PATTERN (3 << 0) 188/* DW2 */ 189# define GEN7_WM_MSDISPMODE_PERPIXEL (1 << 31) 190 191#define GEN7_3DSTATE_CLEAR_PARAMS BRW_3D(3, 0, 0x04) 192#define GEN7_3DSTATE_DEPTH_BUFFER BRW_3D(3, 0, 0x05) 193 194#define GEN7_3DSTATE_CONSTANT_HS BRW_3D(3, 0, 0x19) 195#define GEN7_3DSTATE_CONSTANT_DS BRW_3D(3, 0, 0x1a) 196 197#define GEN7_3DSTATE_HS BRW_3D(3, 0, 0x1b) 198#define GEN7_3DSTATE_TE BRW_3D(3, 0, 0x1c) 199#define GEN7_3DSTATE_DS BRW_3D(3, 0, 0x1d) 200#define GEN7_3DSTATE_STREAMOUT BRW_3D(3, 0, 0x1e) 201#define GEN7_3DSTATE_SBE BRW_3D(3, 0, 0x1f) 202 203/* DW1 */ 204# define GEN7_SBE_SWIZZLE_CONTROL_MODE (1 << 28) 205# define GEN7_SBE_NUM_OUTPUTS_SHIFT 22 206# define GEN7_SBE_SWIZZLE_ENABLE (1 << 21) 207# define GEN7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20) 208# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11 209# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4 210 211#define GEN7_3DSTATE_PS BRW_3D(3, 0, 0x20) 212/* DW1: kernel pointer */ 213/* DW2 */ 214# define GEN7_PS_SPF_MODE (1 << 31) 215# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30) 216# define GEN7_PS_SAMPLER_COUNT_SHIFT 27 217# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 218# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 219# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16) 220/* DW3: scratch space */ 221/* DW4 */ 222# define GEN7_PS_MAX_THREADS_SHIFT_IVB 24 223# define GEN7_PS_MAX_THREADS_SHIFT_HSW 23 224# define GEN7_PS_SAMPLE_MASK_SHIFT_HSW 12 225# define GEN7_PS_PUSH_CONSTANT_ENABLE (1 << 11) 226# define GEN7_PS_ATTRIBUTE_ENABLE (1 << 10) 227# define GEN7_PS_OMASK_TO_RENDER_TARGET (1 << 9) 228# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7) 229# define GEN7_PS_POSOFFSET_NONE (0 << 3) 230# define GEN7_PS_POSOFFSET_CENTROID (2 << 3) 231# define GEN7_PS_POSOFFSET_SAMPLE (3 << 3) 232# define GEN7_PS_32_DISPATCH_ENABLE (1 << 2) 233# define GEN7_PS_16_DISPATCH_ENABLE (1 << 1) 234# define GEN7_PS_8_DISPATCH_ENABLE (1 << 0) 235/* DW5 */ 236# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0 16 237# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1 8 238# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2 0 239/* DW6: kernel 1 pointer */ 240/* DW7: kernel 2 pointer */ 241 242#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL BRW_3D(3, 0, 0x21) 243#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC BRW_3D(3, 0, 0x23) 244 245#define GEN7_3DSTATE_BLEND_STATE_POINTERS BRW_3D(3, 0, 0x24) 246#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS BRW_3D(3, 0, 0x25) 247 248#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS BRW_3D(3, 0, 0x26) 249#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS BRW_3D(3, 0, 0x27) 250#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS BRW_3D(3, 0, 0x28) 251#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS BRW_3D(3, 0, 0x29) 252#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS BRW_3D(3, 0, 0x2a) 253 254#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS BRW_3D(3, 0, 0x2b) 255#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS BRW_3D(3, 0, 0x2e) 256#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS BRW_3D(3, 0, 0x2f) 257 258#define GEN7_3DSTATE_URB_VS BRW_3D(3, 0, 0x30) 259#define GEN7_3DSTATE_URB_HS BRW_3D(3, 0, 0x31) 260#define GEN7_3DSTATE_URB_DS BRW_3D(3, 0, 0x32) 261#define GEN7_3DSTATE_URB_GS BRW_3D(3, 0, 0x33) 262/* DW1 */ 263# define GEN7_URB_ENTRY_NUMBER_SHIFT 0 264# define GEN7_URB_ENTRY_SIZE_SHIFT 16 265# define GEN7_URB_STARTING_ADDRESS_SHIFT 25 266 267#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS BRW_3D(3, 1, 0x12) 268#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS BRW_3D(3, 1, 0x16) 269/* DW1 */ 270# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16 271 272 273#define PIPELINE_SELECT_3D 0 274#define PIPELINE_SELECT_MEDIA 1 275 276#define UF0_CS_REALLOC (1 << 13) 277#define UF0_VFE_REALLOC (1 << 12) 278#define UF0_SF_REALLOC (1 << 11) 279#define UF0_CLIP_REALLOC (1 << 10) 280#define UF0_GS_REALLOC (1 << 9) 281#define UF0_VS_REALLOC (1 << 8) 282#define UF1_CLIP_FENCE_SHIFT 20 283#define UF1_GS_FENCE_SHIFT 10 284#define UF1_VS_FENCE_SHIFT 0 285#define UF2_CS_FENCE_SHIFT 20 286#define UF2_VFE_FENCE_SHIFT 10 287#define UF2_SF_FENCE_SHIFT 0 288 289/* for BRW_STATE_BASE_ADDRESS */ 290#define BASE_ADDRESS_MODIFY (1 << 0) 291 292/* for BRW_3DSTATE_PIPELINED_POINTERS */ 293#define BRW_GS_DISABLE 0 294#define BRW_GS_ENABLE 1 295#define BRW_CLIP_DISABLE 0 296#define BRW_CLIP_ENABLE 1 297 298/* for BRW_PIPE_CONTROL */ 299#define BRW_PIPE_CONTROL_CS_STALL (1 << 20) 300#define BRW_PIPE_CONTROL_NOWRITE (0 << 14) 301#define BRW_PIPE_CONTROL_WRITE_QWORD (1 << 14) 302#define BRW_PIPE_CONTROL_WRITE_DEPTH (2 << 14) 303#define BRW_PIPE_CONTROL_WRITE_TIME (3 << 14) 304#define BRW_PIPE_CONTROL_DEPTH_STALL (1 << 13) 305#define BRW_PIPE_CONTROL_WC_FLUSH (1 << 12) 306#define BRW_PIPE_CONTROL_IS_FLUSH (1 << 11) 307#define BRW_PIPE_CONTROL_TC_FLUSH (1 << 10) 308#define BRW_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8) 309#define BRW_PIPE_CONTROL_GLOBAL_GTT (1 << 2) 310#define BRW_PIPE_CONTROL_LOCAL_PGTT (0 << 2) 311#define BRW_PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1) 312#define BRW_PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0) 313 314/* VERTEX_BUFFER_STATE Structure */ 315#define VB0_BUFFER_INDEX_SHIFT 27 316#define GEN6_VB0_BUFFER_INDEX_SHIFT 26 317#define VB0_VERTEXDATA (0 << 26) 318#define VB0_INSTANCEDATA (1 << 26) 319#define GEN6_VB0_VERTEXDATA (0 << 20) 320#define GEN6_VB0_INSTANCEDATA (1 << 20) 321#define VB0_BUFFER_PITCH_SHIFT 0 322 323/* VERTEX_ELEMENT_STATE Structure */ 324#define VE0_VERTEX_BUFFER_INDEX_SHIFT 27 325#define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT 26 /* for GEN6 */ 326#define VE0_VALID (1 << 26) 327#define GEN6_VE0_VALID (1 << 25) /* for GEN6 */ 328#define VE0_FORMAT_SHIFT 16 329#define VE0_OFFSET_SHIFT 0 330#define VE1_VFCOMPONENT_0_SHIFT 28 331#define VE1_VFCOMPONENT_1_SHIFT 24 332#define VE1_VFCOMPONENT_2_SHIFT 20 333#define VE1_VFCOMPONENT_3_SHIFT 16 334#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT 0 335 336/* 3DPRIMITIVE bits */ 337#define BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15) 338#define BRW_3DPRIMITIVE_VERTEX_RANDOM (1 << 15) 339/* Primitive types are in brw_defines.h */ 340#define BRW_3DPRIMITIVE_TOPOLOGY_SHIFT 10 341 342#define BRW_SVG_CTL 0x7400 343 344#define BRW_SVG_CTL_GS_BA (0 << 8) 345#define BRW_SVG_CTL_SS_BA (1 << 8) 346#define BRW_SVG_CTL_IO_BA (2 << 8) 347#define BRW_SVG_CTL_GS_AUB (3 << 8) 348#define BRW_SVG_CTL_IO_AUB (4 << 8) 349#define BRW_SVG_CTL_SIP (5 << 8) 350 351#define BRW_SVG_RDATA 0x7404 352#define BRW_SVG_WORK_CTL 0x7408 353 354#define BRW_VF_CTL 0x7500 355 356#define BRW_VF_CTL_SNAPSHOT_COMPLETE (1 << 31) 357#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID (0 << 8) 358#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG (1 << 8) 359#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE (0 << 4) 360#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX (1 << 4) 361#define BRW_VF_CTL_SKIP_INITIAL_PRIMITIVES (1 << 3) 362#define BRW_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE (1 << 2) 363#define BRW_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE (1 << 1) 364#define BRW_VF_CTL_SNAPSHOT_ENABLE (1 << 0) 365 366#define BRW_VF_STRG_VAL 0x7504 367#define BRW_VF_STR_VL_OVR 0x7508 368#define BRW_VF_VC_OVR 0x750c 369#define BRW_VF_STR_PSKIP 0x7510 370#define BRW_VF_MAX_PRIM 0x7514 371#define BRW_VF_RDATA 0x7518 372 373#define BRW_VS_CTL 0x7600 374#define BRW_VS_CTL_SNAPSHOT_COMPLETE (1 << 31) 375#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_0 (0 << 8) 376#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_1 (1 << 8) 377#define BRW_VS_CTL_SNAPSHOT_MUX_VALID_COUNT (2 << 8) 378#define BRW_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER (3 << 8) 379#define BRW_VS_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 380#define BRW_VS_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 381#define BRW_VS_CTL_SNAPSHOT_ENABLE (1 << 0) 382 383#define BRW_VS_STRG_VAL 0x7604 384#define BRW_VS_RDATA 0x7608 385 386#define BRW_SF_CTL 0x7b00 387#define BRW_SF_CTL_SNAPSHOT_COMPLETE (1 << 31) 388#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID (0 << 8) 389#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8) 390#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID (2 << 8) 391#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8) 392#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID (4 << 8) 393#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8) 394#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT (6 << 8) 395#define BRW_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER (7 << 8) 396#define BRW_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE (1 << 4) 397#define BRW_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE (1 << 3) 398#define BRW_SF_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 399#define BRW_SF_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 400#define BRW_SF_CTL_SNAPSHOT_ENABLE (1 << 0) 401 402#define BRW_SF_STRG_VAL 0x7b04 403#define BRW_SF_RDATA 0x7b18 404 405#define BRW_WIZ_CTL 0x7c00 406#define BRW_WIZ_CTL_SNAPSHOT_COMPLETE (1 << 31) 407#define BRW_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT 16 408#define BRW_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER (0 << 8) 409#define BRW_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE (1 << 8) 410#define BRW_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE (2 << 8) 411#define BRW_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH (1 << 6) 412#define BRW_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS (1 << 5) 413#define BRW_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE (1 << 4) 414#define BRW_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG (1 << 3) 415#define BRW_WIZ_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 416#define BRW_WIZ_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 417#define BRW_WIZ_CTL_SNAPSHOT_ENABLE (1 << 0) 418 419#define BRW_WIZ_STRG_VAL 0x7c04 420#define BRW_WIZ_RDATA 0x7c18 421 422#define BRW_TS_CTL 0x7e00 423#define BRW_TS_CTL_SNAPSHOT_COMPLETE (1 << 31) 424#define BRW_TS_CTL_SNAPSHOT_MESSAGE_ERROR (0 << 8) 425#define BRW_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR (3 << 8) 426#define BRW_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS (1 << 2) 427#define BRW_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS (1 << 1) 428#define BRW_TS_CTL_SNAPSHOT_ENABLE (1 << 0) 429 430#define BRW_TS_STRG_VAL 0x7e04 431#define BRW_TS_RDATA 0x7e08 432 433#define BRW_TD_CTL 0x8000 434#define BRW_TD_CTL_MUX_SHIFT 8 435#define BRW_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH (1 << 7) 436#define BRW_TD_CTL_FORCE_EXTERNAL_HALT (1 << 6) 437#define BRW_TD_CTL_EXCEPTION_MASK_OVERRIDE (1 << 5) 438#define BRW_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE (1 << 4) 439#define BRW_TD_CTL_BREAKPOINT_ENABLE (1 << 2) 440#define BRW_TD_CTL2 0x8004 441#define BRW_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28) 442#define BRW_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE (1 << 26) 443#define BRW_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE (1 << 25) 444#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT 16 445#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE (1 << 8) 446#define BRW_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7) 447#define BRW_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE (1 << 6) 448#define BRW_TD_CTL2_SF_EXECUTION_MASK_ENABLE (1 << 5) 449#define BRW_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE (1 << 4) 450#define BRW_TD_CTL2_GS_EXECUTION_MASK_ENABLE (1 << 3) 451#define BRW_TD_CTL2_VS_EXECUTION_MASK_ENABLE (1 << 0) 452#define BRW_TD_VF_VS_EMSK 0x8008 453#define BRW_TD_GS_EMSK 0x800c 454#define BRW_TD_CLIP_EMSK 0x8010 455#define BRW_TD_SF_EMSK 0x8014 456#define BRW_TD_WIZ_EMSK 0x8018 457#define BRW_TD_0_6_EHTRG_VAL 0x801c 458#define BRW_TD_0_7_EHTRG_VAL 0x8020 459#define BRW_TD_0_6_EHTRG_MSK 0x8024 460#define BRW_TD_0_7_EHTRG_MSK 0x8028 461#define BRW_TD_RDATA 0x802c 462#define BRW_TD_TS_EMSK 0x8030 463 464#define BRW_EU_CTL 0x8800 465#define BRW_EU_CTL_SELECT_SHIFT 16 466#define BRW_EU_CTL_DATA_MUX_SHIFT 8 467#define BRW_EU_ATT_0 0x8810 468#define BRW_EU_ATT_1 0x8814 469#define BRW_EU_ATT_DATA_0 0x8820 470#define BRW_EU_ATT_DATA_1 0x8824 471#define BRW_EU_ATT_CLR_0 0x8830 472#define BRW_EU_ATT_CLR_1 0x8834 473#define BRW_EU_RDATA 0x8840 474 475/* End regs for broadwater */ 476 477