103b705cfSriastradh/************************************************************************** 203b705cfSriastradh * 303b705cfSriastradh * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. 403b705cfSriastradh * All Rights Reserved. 503b705cfSriastradh * 603b705cfSriastradh * Permission is hereby granted, free of charge, to any person obtaining a 703b705cfSriastradh * copy of this software and associated documentation files (the 803b705cfSriastradh * "Software"), to deal in the Software without restriction, including 903b705cfSriastradh * without limitation the rights to use, copy, modify, merge, publish, 1003b705cfSriastradh * distribute, sub license, and/or sell copies of the Software, and to 1103b705cfSriastradh * permit persons to whom the Software is furnished to do so, subject to 1203b705cfSriastradh * the following conditions: 1303b705cfSriastradh * 1403b705cfSriastradh * The above copyright notice and this permission notice (including the 1503b705cfSriastradh * next paragraph) shall be included in all copies or substantial portions 1603b705cfSriastradh * of the Software. 1703b705cfSriastradh * 1803b705cfSriastradh * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1903b705cfSriastradh * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 2003b705cfSriastradh * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 2103b705cfSriastradh * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 2203b705cfSriastradh * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 2303b705cfSriastradh * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2403b705cfSriastradh * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2503b705cfSriastradh * 2603b705cfSriastradh **************************************************************************/ 2703b705cfSriastradh 2803b705cfSriastradh/* 2903b705cfSriastradh * New regs for broadwater -- we need to split this file up sensibly somehow. 3003b705cfSriastradh */ 3103b705cfSriastradh#define BRW_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \ 3203b705cfSriastradh ((Pipeline) << 27) | \ 3303b705cfSriastradh ((Opcode) << 24) | \ 3403b705cfSriastradh ((Subopcode) << 16)) 3503b705cfSriastradh 3603b705cfSriastradh#define BRW_URB_FENCE BRW_3D(0, 0, 0) 3703b705cfSriastradh#define BRW_CS_URB_STATE BRW_3D(0, 0, 1) 3803b705cfSriastradh#define BRW_CONSTANT_BUFFER BRW_3D(0, 0, 2) 3903b705cfSriastradh#define BRW_STATE_PREFETCH BRW_3D(0, 0, 3) 4003b705cfSriastradh 4103b705cfSriastradh#define BRW_STATE_BASE_ADDRESS BRW_3D(0, 1, 1) 4203b705cfSriastradh#define BRW_STATE_SIP BRW_3D(0, 1, 2) 4303b705cfSriastradh#define BRW_PIPELINE_SELECT BRW_3D(0, 1, 4) 4403b705cfSriastradh 4503b705cfSriastradh#define NEW_PIPELINE_SELECT BRW_3D(1, 1, 4) 4603b705cfSriastradh 4703b705cfSriastradh#define BRW_MEDIA_STATE_POINTERS BRW_3D(2, 0, 0) 4803b705cfSriastradh#define BRW_MEDIA_OBJECT BRW_3D(2, 1, 0) 4903b705cfSriastradh 5003b705cfSriastradh#define BRW_3DSTATE_PIPELINED_POINTERS BRW_3D(3, 0, 0) 5103b705cfSriastradh#define BRW_3DSTATE_BINDING_TABLE_POINTERS BRW_3D(3, 0, 1) 5203b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS (1 << 12)/* for GEN6 */ 5303b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS (1 << 9) /* for GEN6 */ 5403b705cfSriastradh# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS (1 << 8) /* for GEN6 */ 5503b705cfSriastradh 5603b705cfSriastradh#define BRW_3DSTATE_VERTEX_BUFFERS BRW_3D(3, 0, 8) 5703b705cfSriastradh#define BRW_3DSTATE_VERTEX_ELEMENTS BRW_3D(3, 0, 9) 5803b705cfSriastradh#define BRW_3DSTATE_INDEX_BUFFER BRW_3D(3, 0, 0xa) 5903b705cfSriastradh#define BRW_3DSTATE_VF_STATISTICS BRW_3D(3, 0, 0xb) 6003b705cfSriastradh 6103b705cfSriastradh#define BRW_3DSTATE_DRAWING_RECTANGLE BRW_3D(3, 1, 0) 6203b705cfSriastradh#define BRW_3DSTATE_CONSTANT_COLOR BRW_3D(3, 1, 1) 6303b705cfSriastradh#define BRW_3DSTATE_SAMPLER_PALETTE_LOAD BRW_3D(3, 1, 2) 6403b705cfSriastradh#define BRW_3DSTATE_CHROMA_KEY BRW_3D(3, 1, 4) 6503b705cfSriastradh#define BRW_3DSTATE_DEPTH_BUFFER BRW_3D(3, 1, 5) 6603b705cfSriastradh# define BRW_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT 29 6703b705cfSriastradh# define BRW_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT 18 6803b705cfSriastradh 6903b705cfSriastradh#define BRW_3DSTATE_POLY_STIPPLE_OFFSET BRW_3D(3, 1, 6) 7003b705cfSriastradh#define BRW_3DSTATE_POLY_STIPPLE_PATTERN BRW_3D(3, 1, 7) 7103b705cfSriastradh#define BRW_3DSTATE_LINE_STIPPLE BRW_3D(3, 1, 8) 7203b705cfSriastradh#define BRW_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP BRW_3D(3, 1, 9) 7303b705cfSriastradh/* These two are BLC and CTG only, not BW or CL */ 7403b705cfSriastradh#define BRW_3DSTATE_AA_LINE_PARAMS BRW_3D(3, 1, 0xa) 7503b705cfSriastradh#define BRW_3DSTATE_GS_SVB_INDEX BRW_3D(3, 1, 0xb) 7603b705cfSriastradh 7703b705cfSriastradh#define BRW_PIPE_CONTROL BRW_3D(3, 2, 0) 7803b705cfSriastradh 7903b705cfSriastradh#define BRW_3DPRIMITIVE BRW_3D(3, 3, 0) 8003b705cfSriastradh 8103b705cfSriastradh#define BRW_3DSTATE_CLEAR_PARAMS BRW_3D(3, 1, 0x10) 8203b705cfSriastradh/* DW1 */ 8303b705cfSriastradh# define BRW_3DSTATE_DEPTH_CLEAR_VALID (1 << 15) 8403b705cfSriastradh 8503b705cfSriastradh/* for GEN6+ */ 8603b705cfSriastradh#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS BRW_3D(3, 0, 0x02) 8703b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS (1 << 12) 8803b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS (1 << 9) 8903b705cfSriastradh# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS (1 << 8) 9003b705cfSriastradh 9103b705cfSriastradh#define GEN6_3DSTATE_URB BRW_3D(3, 0, 0x05) 9203b705cfSriastradh/* DW1 */ 9303b705cfSriastradh# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT 16 9403b705cfSriastradh# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT 0 9503b705cfSriastradh/* DW2 */ 9603b705cfSriastradh# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT 8 9703b705cfSriastradh# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT 0 9803b705cfSriastradh 9903b705cfSriastradh#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS BRW_3D(3, 0, 0x0d) 10003b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC (1 << 12) 10103b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF (1 << 11) 10203b705cfSriastradh# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP (1 << 10) 10303b705cfSriastradh 10403b705cfSriastradh#define GEN6_3DSTATE_CC_STATE_POINTERS BRW_3D(3, 0, 0x0e) 10503b705cfSriastradh 10603b705cfSriastradh#define GEN6_3DSTATE_VS BRW_3D(3, 0, 0x10) 10703b705cfSriastradh 10803b705cfSriastradh#define GEN6_3DSTATE_GS BRW_3D(3, 0, 0x11) 10903b705cfSriastradh/* DW4 */ 11003b705cfSriastradh# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT 0 11103b705cfSriastradh 11203b705cfSriastradh#define GEN6_3DSTATE_CLIP BRW_3D(3, 0, 0x12) 11303b705cfSriastradh 11403b705cfSriastradh#define GEN6_3DSTATE_SF BRW_3D(3, 0, 0x13) 11503b705cfSriastradh/* DW1 */ 11603b705cfSriastradh# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT 22 11703b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT 11 11803b705cfSriastradh# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT 4 11903b705cfSriastradh/* DW2 */ 12003b705cfSriastradh/* DW3 */ 12103b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BOTH (0 << 29) 12203b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_NONE (1 << 29) 12303b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_FRONT (2 << 29) 12403b705cfSriastradh# define GEN6_3DSTATE_SF_CULL_BACK (3 << 29) 12503b705cfSriastradh/* DW4 */ 12603b705cfSriastradh# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT 29 12703b705cfSriastradh# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT 27 12803b705cfSriastradh# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT 25 12903b705cfSriastradh 13003b705cfSriastradh 13103b705cfSriastradh#define GEN6_3DSTATE_WM BRW_3D(3, 0, 0x14) 13203b705cfSriastradh/* DW2 */ 13303b705cfSriastradh# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF 27 13403b705cfSriastradh# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 13503b705cfSriastradh/* DW4 */ 13603b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT 16 13703b705cfSriastradh/* DW5 */ 13803b705cfSriastradh# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT 25 13903b705cfSriastradh# define GEN6_3DSTATE_WM_DISPATCH_ENABLE (1 << 19) 14003b705cfSriastradh# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE (1 << 1) 14103b705cfSriastradh# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE (1 << 0) 14203b705cfSriastradh/* DW6 */ 14303b705cfSriastradh# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT 20 14403b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15) 14503b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14) 14603b705cfSriastradh# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13) 14703b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12) 14803b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11) 14903b705cfSriastradh# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10) 15003b705cfSriastradh 15103b705cfSriastradh 15203b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_VS BRW_3D(3, 0, 0x15) 15303b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_GS BRW_3D(3, 0, 0x16) 15403b705cfSriastradh#define GEN6_3DSTATE_CONSTANT_PS BRW_3D(3, 0, 0x17) 15503b705cfSriastradh 15603b705cfSriastradh#define GEN6_3DSTATE_SAMPLE_MASK BRW_3D(3, 0, 0x18) 15703b705cfSriastradh 15803b705cfSriastradh#define GEN6_3DSTATE_MULTISAMPLE BRW_3D(3, 1, 0x0d) 15903b705cfSriastradh/* DW1 */ 16003b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER (0 << 4) 16103b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT (1 << 4) 16203b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1 (0 << 1) 16303b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4 (2 << 1) 16403b705cfSriastradh# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8 (3 << 1) 16503b705cfSriastradh 16603b705cfSriastradh/* on GEN7+ */ 16703b705cfSriastradh/* _3DSTATE_VERTEX_BUFFERS on GEN7*/ 16803b705cfSriastradh/* DW1 */ 16903b705cfSriastradh#define GEN7_VB0_ADDRESS_MODIFYENABLE (1 << 14) 17003b705cfSriastradh 17103b705cfSriastradh/* _3DPRIMITIVE on GEN7 */ 17203b705cfSriastradh/* DW1 */ 17303b705cfSriastradh# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8) 17403b705cfSriastradh# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8) 17503b705cfSriastradh 17603b705cfSriastradh/* 3DSTATE_WM on GEN7 */ 17703b705cfSriastradh/* DW1 */ 17803b705cfSriastradh# define GEN7_WM_STATISTICS_ENABLE (1 << 31) 17903b705cfSriastradh# define GEN7_WM_DEPTH_CLEAR (1 << 30) 18003b705cfSriastradh# define GEN7_WM_DISPATCH_ENABLE (1 << 29) 18103b705cfSriastradh# define GEN6_WM_DEPTH_RESOLVE (1 << 28) 18203b705cfSriastradh# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) 18303b705cfSriastradh# define GEN7_WM_KILL_ENABLE (1 << 25) 18403b705cfSriastradh# define GEN7_WM_PSCDEPTH_OFF (0 << 23) 18503b705cfSriastradh# define GEN7_WM_PSCDEPTH_ON (1 << 23) 18603b705cfSriastradh# define GEN7_WM_PSCDEPTH_ON_GE (2 << 23) 18703b705cfSriastradh# define GEN7_WM_PSCDEPTH_ON_LE (3 << 23) 18803b705cfSriastradh# define GEN7_WM_USES_SOURCE_DEPTH (1 << 20) 18903b705cfSriastradh# define GEN7_WM_USES_SOURCE_W (1 << 19) 19003b705cfSriastradh# define GEN7_WM_POSITION_ZW_PIXEL (0 << 17) 19103b705cfSriastradh# define GEN7_WM_POSITION_ZW_CENTROID (2 << 17) 19203b705cfSriastradh# define GEN7_WM_POSITION_ZW_SAMPLE (3 << 17) 19303b705cfSriastradh# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16) 19403b705cfSriastradh# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15) 19503b705cfSriastradh# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14) 19603b705cfSriastradh# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13) 19703b705cfSriastradh# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12) 19803b705cfSriastradh# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11) 19903b705cfSriastradh# define GEN7_WM_USES_INPUT_COVERAGE_MASK (1 << 10) 20003b705cfSriastradh# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8) 20103b705cfSriastradh# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8) 20203b705cfSriastradh# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8) 20303b705cfSriastradh# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8) 20403b705cfSriastradh# define GEN7_WM_LINE_AA_WIDTH_0_5 (0 << 6) 20503b705cfSriastradh# define GEN7_WM_LINE_AA_WIDTH_1_0 (1 << 6) 20603b705cfSriastradh# define GEN7_WM_LINE_AA_WIDTH_2_0 (2 << 6) 20703b705cfSriastradh# define GEN7_WM_LINE_AA_WIDTH_4_0 (3 << 6) 20803b705cfSriastradh# define GEN7_WM_POLYGON_STIPPLE_ENABLE (1 << 4) 20903b705cfSriastradh# define GEN7_WM_LINE_STIPPLE_ENABLE (1 << 3) 21003b705cfSriastradh# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2) 21103b705cfSriastradh# define GEN7_WM_MSRAST_OFF_PIXEL (0 << 0) 21203b705cfSriastradh# define GEN7_WM_MSRAST_OFF_PATTERN (1 << 0) 21303b705cfSriastradh# define GEN7_WM_MSRAST_ON_PIXEL (2 << 0) 21403b705cfSriastradh# define GEN7_WM_MSRAST_ON_PATTERN (3 << 0) 21503b705cfSriastradh/* DW2 */ 21603b705cfSriastradh# define GEN7_WM_MSDISPMODE_PERPIXEL (1 << 31) 21703b705cfSriastradh 21803b705cfSriastradh#define GEN7_3DSTATE_CLEAR_PARAMS BRW_3D(3, 0, 0x04) 21903b705cfSriastradh#define GEN7_3DSTATE_DEPTH_BUFFER BRW_3D(3, 0, 0x05) 22003b705cfSriastradh 22103b705cfSriastradh#define GEN7_3DSTATE_CONSTANT_HS BRW_3D(3, 0, 0x19) 22203b705cfSriastradh#define GEN7_3DSTATE_CONSTANT_DS BRW_3D(3, 0, 0x1a) 22303b705cfSriastradh 22403b705cfSriastradh#define GEN7_3DSTATE_HS BRW_3D(3, 0, 0x1b) 22503b705cfSriastradh#define GEN7_3DSTATE_TE BRW_3D(3, 0, 0x1c) 22603b705cfSriastradh#define GEN7_3DSTATE_DS BRW_3D(3, 0, 0x1d) 22703b705cfSriastradh#define GEN7_3DSTATE_STREAMOUT BRW_3D(3, 0, 0x1e) 22803b705cfSriastradh#define GEN7_3DSTATE_SBE BRW_3D(3, 0, 0x1f) 22903b705cfSriastradh 23003b705cfSriastradh/* DW1 */ 23103b705cfSriastradh# define GEN7_SBE_SWIZZLE_CONTROL_MODE (1 << 28) 23203b705cfSriastradh# define GEN7_SBE_NUM_OUTPUTS_SHIFT 22 23303b705cfSriastradh# define GEN7_SBE_SWIZZLE_ENABLE (1 << 21) 23403b705cfSriastradh# define GEN7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20) 23503b705cfSriastradh# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11 23603b705cfSriastradh# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4 23703b705cfSriastradh 23803b705cfSriastradh#define GEN7_3DSTATE_PS BRW_3D(3, 0, 0x20) 23903b705cfSriastradh/* DW1: kernel pointer */ 24003b705cfSriastradh/* DW2 */ 24103b705cfSriastradh# define GEN7_PS_SPF_MODE (1 << 31) 24203b705cfSriastradh# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30) 24303b705cfSriastradh# define GEN7_PS_SAMPLER_COUNT_SHIFT 27 24403b705cfSriastradh# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 24503b705cfSriastradh# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 24603b705cfSriastradh# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16) 24703b705cfSriastradh/* DW3: scratch space */ 24803b705cfSriastradh/* DW4 */ 24903b705cfSriastradh# define GEN7_PS_MAX_THREADS_SHIFT_IVB 24 25003b705cfSriastradh# define GEN7_PS_MAX_THREADS_SHIFT_HSW 23 25103b705cfSriastradh# define GEN7_PS_SAMPLE_MASK_SHIFT_HSW 12 25203b705cfSriastradh# define GEN7_PS_PUSH_CONSTANT_ENABLE (1 << 11) 25303b705cfSriastradh# define GEN7_PS_ATTRIBUTE_ENABLE (1 << 10) 25403b705cfSriastradh# define GEN7_PS_OMASK_TO_RENDER_TARGET (1 << 9) 25503b705cfSriastradh# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7) 25603b705cfSriastradh# define GEN7_PS_POSOFFSET_NONE (0 << 3) 25703b705cfSriastradh# define GEN7_PS_POSOFFSET_CENTROID (2 << 3) 25803b705cfSriastradh# define GEN7_PS_POSOFFSET_SAMPLE (3 << 3) 25903b705cfSriastradh# define GEN7_PS_32_DISPATCH_ENABLE (1 << 2) 26003b705cfSriastradh# define GEN7_PS_16_DISPATCH_ENABLE (1 << 1) 26103b705cfSriastradh# define GEN7_PS_8_DISPATCH_ENABLE (1 << 0) 26203b705cfSriastradh/* DW5 */ 26303b705cfSriastradh# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0 16 26403b705cfSriastradh# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1 8 26503b705cfSriastradh# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2 0 26603b705cfSriastradh/* DW6: kernel 1 pointer */ 26703b705cfSriastradh/* DW7: kernel 2 pointer */ 26803b705cfSriastradh 26903b705cfSriastradh#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL BRW_3D(3, 0, 0x21) 27003b705cfSriastradh#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC BRW_3D(3, 0, 0x23) 27103b705cfSriastradh 27203b705cfSriastradh#define GEN7_3DSTATE_BLEND_STATE_POINTERS BRW_3D(3, 0, 0x24) 27303b705cfSriastradh#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS BRW_3D(3, 0, 0x25) 27403b705cfSriastradh 27503b705cfSriastradh#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS BRW_3D(3, 0, 0x26) 27603b705cfSriastradh#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS BRW_3D(3, 0, 0x27) 27703b705cfSriastradh#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS BRW_3D(3, 0, 0x28) 27803b705cfSriastradh#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS BRW_3D(3, 0, 0x29) 27903b705cfSriastradh#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS BRW_3D(3, 0, 0x2a) 28003b705cfSriastradh 28103b705cfSriastradh#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS BRW_3D(3, 0, 0x2b) 28203b705cfSriastradh#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS BRW_3D(3, 0, 0x2e) 28303b705cfSriastradh#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS BRW_3D(3, 0, 0x2f) 28403b705cfSriastradh 28503b705cfSriastradh#define GEN7_3DSTATE_URB_VS BRW_3D(3, 0, 0x30) 28603b705cfSriastradh#define GEN7_3DSTATE_URB_HS BRW_3D(3, 0, 0x31) 28703b705cfSriastradh#define GEN7_3DSTATE_URB_DS BRW_3D(3, 0, 0x32) 28803b705cfSriastradh#define GEN7_3DSTATE_URB_GS BRW_3D(3, 0, 0x33) 28903b705cfSriastradh/* DW1 */ 29003b705cfSriastradh# define GEN7_URB_ENTRY_NUMBER_SHIFT 0 29103b705cfSriastradh# define GEN7_URB_ENTRY_SIZE_SHIFT 16 29203b705cfSriastradh# define GEN7_URB_STARTING_ADDRESS_SHIFT 25 29303b705cfSriastradh 29403b705cfSriastradh#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS BRW_3D(3, 1, 0x12) 29503b705cfSriastradh#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS BRW_3D(3, 1, 0x16) 29603b705cfSriastradh/* DW1 */ 29703b705cfSriastradh# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16 29803b705cfSriastradh 29903b705cfSriastradh 30003b705cfSriastradh#define PIPELINE_SELECT_3D 0 30103b705cfSriastradh#define PIPELINE_SELECT_MEDIA 1 30203b705cfSriastradh 30303b705cfSriastradh#define UF0_CS_REALLOC (1 << 13) 30403b705cfSriastradh#define UF0_VFE_REALLOC (1 << 12) 30503b705cfSriastradh#define UF0_SF_REALLOC (1 << 11) 30603b705cfSriastradh#define UF0_CLIP_REALLOC (1 << 10) 30703b705cfSriastradh#define UF0_GS_REALLOC (1 << 9) 30803b705cfSriastradh#define UF0_VS_REALLOC (1 << 8) 30903b705cfSriastradh#define UF1_CLIP_FENCE_SHIFT 20 31003b705cfSriastradh#define UF1_GS_FENCE_SHIFT 10 31103b705cfSriastradh#define UF1_VS_FENCE_SHIFT 0 31203b705cfSriastradh#define UF2_CS_FENCE_SHIFT 20 31303b705cfSriastradh#define UF2_VFE_FENCE_SHIFT 10 31403b705cfSriastradh#define UF2_SF_FENCE_SHIFT 0 31503b705cfSriastradh 31603b705cfSriastradh/* for BRW_STATE_BASE_ADDRESS */ 31703b705cfSriastradh#define BASE_ADDRESS_MODIFY (1 << 0) 31803b705cfSriastradh 31903b705cfSriastradh/* for BRW_3DSTATE_PIPELINED_POINTERS */ 32003b705cfSriastradh#define BRW_GS_DISABLE 0 32103b705cfSriastradh#define BRW_GS_ENABLE 1 32203b705cfSriastradh#define BRW_CLIP_DISABLE 0 32303b705cfSriastradh#define BRW_CLIP_ENABLE 1 32403b705cfSriastradh 32503b705cfSriastradh/* for BRW_PIPE_CONTROL */ 32603b705cfSriastradh#define BRW_PIPE_CONTROL_CS_STALL (1 << 20) 32703b705cfSriastradh#define BRW_PIPE_CONTROL_NOWRITE (0 << 14) 32803b705cfSriastradh#define BRW_PIPE_CONTROL_WRITE_QWORD (1 << 14) 32903b705cfSriastradh#define BRW_PIPE_CONTROL_WRITE_DEPTH (2 << 14) 33003b705cfSriastradh#define BRW_PIPE_CONTROL_WRITE_TIME (3 << 14) 33103b705cfSriastradh#define BRW_PIPE_CONTROL_DEPTH_STALL (1 << 13) 33203b705cfSriastradh#define BRW_PIPE_CONTROL_WC_FLUSH (1 << 12) 33303b705cfSriastradh#define BRW_PIPE_CONTROL_IS_FLUSH (1 << 11) 33403b705cfSriastradh#define BRW_PIPE_CONTROL_TC_FLUSH (1 << 10) 33503b705cfSriastradh#define BRW_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8) 33603b705cfSriastradh#define BRW_PIPE_CONTROL_GLOBAL_GTT (1 << 2) 33703b705cfSriastradh#define BRW_PIPE_CONTROL_LOCAL_PGTT (0 << 2) 33803b705cfSriastradh#define BRW_PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1) 33903b705cfSriastradh#define BRW_PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0) 34003b705cfSriastradh 34103b705cfSriastradh/* VERTEX_BUFFER_STATE Structure */ 34203b705cfSriastradh#define VB0_BUFFER_INDEX_SHIFT 27 34303b705cfSriastradh#define GEN6_VB0_BUFFER_INDEX_SHIFT 26 34403b705cfSriastradh#define VB0_VERTEXDATA (0 << 26) 34503b705cfSriastradh#define VB0_INSTANCEDATA (1 << 26) 34603b705cfSriastradh#define GEN6_VB0_VERTEXDATA (0 << 20) 34703b705cfSriastradh#define GEN6_VB0_INSTANCEDATA (1 << 20) 34803b705cfSriastradh#define VB0_BUFFER_PITCH_SHIFT 0 34903b705cfSriastradh 35003b705cfSriastradh/* VERTEX_ELEMENT_STATE Structure */ 35103b705cfSriastradh#define VE0_VERTEX_BUFFER_INDEX_SHIFT 27 35203b705cfSriastradh#define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT 26 /* for GEN6 */ 35303b705cfSriastradh#define VE0_VALID (1 << 26) 35403b705cfSriastradh#define GEN6_VE0_VALID (1 << 25) /* for GEN6 */ 35503b705cfSriastradh#define VE0_FORMAT_SHIFT 16 35603b705cfSriastradh#define VE0_OFFSET_SHIFT 0 35703b705cfSriastradh#define VE1_VFCOMPONENT_0_SHIFT 28 35803b705cfSriastradh#define VE1_VFCOMPONENT_1_SHIFT 24 35903b705cfSriastradh#define VE1_VFCOMPONENT_2_SHIFT 20 36003b705cfSriastradh#define VE1_VFCOMPONENT_3_SHIFT 16 36103b705cfSriastradh#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT 0 36203b705cfSriastradh 36303b705cfSriastradh/* 3DPRIMITIVE bits */ 36403b705cfSriastradh#define BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15) 36503b705cfSriastradh#define BRW_3DPRIMITIVE_VERTEX_RANDOM (1 << 15) 36603b705cfSriastradh/* Primitive types are in brw_defines.h */ 36703b705cfSriastradh#define BRW_3DPRIMITIVE_TOPOLOGY_SHIFT 10 36803b705cfSriastradh 36903b705cfSriastradh#define BRW_SVG_CTL 0x7400 37003b705cfSriastradh 37103b705cfSriastradh#define BRW_SVG_CTL_GS_BA (0 << 8) 37203b705cfSriastradh#define BRW_SVG_CTL_SS_BA (1 << 8) 37303b705cfSriastradh#define BRW_SVG_CTL_IO_BA (2 << 8) 37403b705cfSriastradh#define BRW_SVG_CTL_GS_AUB (3 << 8) 37503b705cfSriastradh#define BRW_SVG_CTL_IO_AUB (4 << 8) 37603b705cfSriastradh#define BRW_SVG_CTL_SIP (5 << 8) 37703b705cfSriastradh 37803b705cfSriastradh#define BRW_SVG_RDATA 0x7404 37903b705cfSriastradh#define BRW_SVG_WORK_CTL 0x7408 38003b705cfSriastradh 38103b705cfSriastradh#define BRW_VF_CTL 0x7500 38203b705cfSriastradh 38303b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_COMPLETE (1 << 31) 38403b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID (0 << 8) 38503b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG (1 << 8) 38603b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE (0 << 4) 38703b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX (1 << 4) 38803b705cfSriastradh#define BRW_VF_CTL_SKIP_INITIAL_PRIMITIVES (1 << 3) 38903b705cfSriastradh#define BRW_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE (1 << 2) 39003b705cfSriastradh#define BRW_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE (1 << 1) 39103b705cfSriastradh#define BRW_VF_CTL_SNAPSHOT_ENABLE (1 << 0) 39203b705cfSriastradh 39303b705cfSriastradh#define BRW_VF_STRG_VAL 0x7504 39403b705cfSriastradh#define BRW_VF_STR_VL_OVR 0x7508 39503b705cfSriastradh#define BRW_VF_VC_OVR 0x750c 39603b705cfSriastradh#define BRW_VF_STR_PSKIP 0x7510 39703b705cfSriastradh#define BRW_VF_MAX_PRIM 0x7514 39803b705cfSriastradh#define BRW_VF_RDATA 0x7518 39903b705cfSriastradh 40003b705cfSriastradh#define BRW_VS_CTL 0x7600 40103b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_COMPLETE (1 << 31) 40203b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_0 (0 << 8) 40303b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_1 (1 << 8) 40403b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_MUX_VALID_COUNT (2 << 8) 40503b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER (3 << 8) 40603b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 40703b705cfSriastradh#define BRW_VS_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 40803b705cfSriastradh#define BRW_VS_CTL_SNAPSHOT_ENABLE (1 << 0) 40903b705cfSriastradh 41003b705cfSriastradh#define BRW_VS_STRG_VAL 0x7604 41103b705cfSriastradh#define BRW_VS_RDATA 0x7608 41203b705cfSriastradh 41303b705cfSriastradh#define BRW_SF_CTL 0x7b00 41403b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_COMPLETE (1 << 31) 41503b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID (0 << 8) 41603b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8) 41703b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID (2 << 8) 41803b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8) 41903b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID (4 << 8) 42003b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8) 42103b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT (6 << 8) 42203b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER (7 << 8) 42303b705cfSriastradh#define BRW_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE (1 << 4) 42403b705cfSriastradh#define BRW_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE (1 << 3) 42503b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 42603b705cfSriastradh#define BRW_SF_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 42703b705cfSriastradh#define BRW_SF_CTL_SNAPSHOT_ENABLE (1 << 0) 42803b705cfSriastradh 42903b705cfSriastradh#define BRW_SF_STRG_VAL 0x7b04 43003b705cfSriastradh#define BRW_SF_RDATA 0x7b18 43103b705cfSriastradh 43203b705cfSriastradh#define BRW_WIZ_CTL 0x7c00 43303b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_COMPLETE (1 << 31) 43403b705cfSriastradh#define BRW_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT 16 43503b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER (0 << 8) 43603b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE (1 << 8) 43703b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE (2 << 8) 43803b705cfSriastradh#define BRW_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH (1 << 6) 43903b705cfSriastradh#define BRW_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS (1 << 5) 44003b705cfSriastradh#define BRW_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE (1 << 4) 44103b705cfSriastradh#define BRW_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG (1 << 3) 44203b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_ALL_THREADS (1 << 2) 44303b705cfSriastradh#define BRW_WIZ_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1) 44403b705cfSriastradh#define BRW_WIZ_CTL_SNAPSHOT_ENABLE (1 << 0) 44503b705cfSriastradh 44603b705cfSriastradh#define BRW_WIZ_STRG_VAL 0x7c04 44703b705cfSriastradh#define BRW_WIZ_RDATA 0x7c18 44803b705cfSriastradh 44903b705cfSriastradh#define BRW_TS_CTL 0x7e00 45003b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_COMPLETE (1 << 31) 45103b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_MESSAGE_ERROR (0 << 8) 45203b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR (3 << 8) 45303b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS (1 << 2) 45403b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS (1 << 1) 45503b705cfSriastradh#define BRW_TS_CTL_SNAPSHOT_ENABLE (1 << 0) 45603b705cfSriastradh 45703b705cfSriastradh#define BRW_TS_STRG_VAL 0x7e04 45803b705cfSriastradh#define BRW_TS_RDATA 0x7e08 45903b705cfSriastradh 46003b705cfSriastradh#define BRW_TD_CTL 0x8000 46103b705cfSriastradh#define BRW_TD_CTL_MUX_SHIFT 8 46203b705cfSriastradh#define BRW_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH (1 << 7) 46303b705cfSriastradh#define BRW_TD_CTL_FORCE_EXTERNAL_HALT (1 << 6) 46403b705cfSriastradh#define BRW_TD_CTL_EXCEPTION_MASK_OVERRIDE (1 << 5) 46503b705cfSriastradh#define BRW_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE (1 << 4) 46603b705cfSriastradh#define BRW_TD_CTL_BREAKPOINT_ENABLE (1 << 2) 46703b705cfSriastradh#define BRW_TD_CTL2 0x8004 46803b705cfSriastradh#define BRW_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28) 46903b705cfSriastradh#define BRW_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE (1 << 26) 47003b705cfSriastradh#define BRW_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE (1 << 25) 47103b705cfSriastradh#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT 16 47203b705cfSriastradh#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE (1 << 8) 47303b705cfSriastradh#define BRW_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7) 47403b705cfSriastradh#define BRW_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE (1 << 6) 47503b705cfSriastradh#define BRW_TD_CTL2_SF_EXECUTION_MASK_ENABLE (1 << 5) 47603b705cfSriastradh#define BRW_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE (1 << 4) 47703b705cfSriastradh#define BRW_TD_CTL2_GS_EXECUTION_MASK_ENABLE (1 << 3) 47803b705cfSriastradh#define BRW_TD_CTL2_VS_EXECUTION_MASK_ENABLE (1 << 0) 47903b705cfSriastradh#define BRW_TD_VF_VS_EMSK 0x8008 48003b705cfSriastradh#define BRW_TD_GS_EMSK 0x800c 48103b705cfSriastradh#define BRW_TD_CLIP_EMSK 0x8010 48203b705cfSriastradh#define BRW_TD_SF_EMSK 0x8014 48303b705cfSriastradh#define BRW_TD_WIZ_EMSK 0x8018 48403b705cfSriastradh#define BRW_TD_0_6_EHTRG_VAL 0x801c 48503b705cfSriastradh#define BRW_TD_0_7_EHTRG_VAL 0x8020 48603b705cfSriastradh#define BRW_TD_0_6_EHTRG_MSK 0x8024 48703b705cfSriastradh#define BRW_TD_0_7_EHTRG_MSK 0x8028 48803b705cfSriastradh#define BRW_TD_RDATA 0x802c 48903b705cfSriastradh#define BRW_TD_TS_EMSK 0x8030 49003b705cfSriastradh 49103b705cfSriastradh#define BRW_EU_CTL 0x8800 49203b705cfSriastradh#define BRW_EU_CTL_SELECT_SHIFT 16 49303b705cfSriastradh#define BRW_EU_CTL_DATA_MUX_SHIFT 8 49403b705cfSriastradh#define BRW_EU_ATT_0 0x8810 49503b705cfSriastradh#define BRW_EU_ATT_1 0x8814 49603b705cfSriastradh#define BRW_EU_ATT_DATA_0 0x8820 49703b705cfSriastradh#define BRW_EU_ATT_DATA_1 0x8824 49803b705cfSriastradh#define BRW_EU_ATT_CLR_0 0x8830 49903b705cfSriastradh#define BRW_EU_ATT_CLR_1 0x8834 50003b705cfSriastradh#define BRW_EU_RDATA 0x8840 50103b705cfSriastradh 50203b705cfSriastradh/* End regs for broadwater */ 50303b705cfSriastradh 504