📄 i915_reg.h
字号:
#define A0_DEST_CHANNEL_SHIFT 10#define A0_SRC0_TYPE_SHIFT 7#define A0_SRC0_NR_SHIFT 2#define A0_DEST_CHANNEL_XY (A0_DEST_CHANNEL_X|A0_DEST_CHANNEL_Y)#define A0_DEST_CHANNEL_XYZ (A0_DEST_CHANNEL_XY|A0_DEST_CHANNEL_Z)#define SRC_X 0#define SRC_Y 1#define SRC_Z 2#define SRC_W 3#define SRC_ZERO 4#define SRC_ONE 5#define A1_SRC0_CHANNEL_X_NEGATE (1<<31)#define A1_SRC0_CHANNEL_X_SHIFT 28#define A1_SRC0_CHANNEL_Y_NEGATE (1<<27)#define A1_SRC0_CHANNEL_Y_SHIFT 24#define A1_SRC0_CHANNEL_Z_NEGATE (1<<23)#define A1_SRC0_CHANNEL_Z_SHIFT 20#define A1_SRC0_CHANNEL_W_NEGATE (1<<19)#define A1_SRC0_CHANNEL_W_SHIFT 16#define A1_SRC1_TYPE_SHIFT 13#define A1_SRC1_NR_SHIFT 8#define A1_SRC1_CHANNEL_X_NEGATE (1<<7)#define A1_SRC1_CHANNEL_X_SHIFT 4#define A1_SRC1_CHANNEL_Y_NEGATE (1<<3)#define A1_SRC1_CHANNEL_Y_SHIFT 0#define A2_SRC1_CHANNEL_Z_NEGATE (1<<31)#define A2_SRC1_CHANNEL_Z_SHIFT 28#define A2_SRC1_CHANNEL_W_NEGATE (1<<27)#define A2_SRC1_CHANNEL_W_SHIFT 24#define A2_SRC2_TYPE_SHIFT 21#define A2_SRC2_NR_SHIFT 16#define A2_SRC2_CHANNEL_X_NEGATE (1<<15)#define A2_SRC2_CHANNEL_X_SHIFT 12#define A2_SRC2_CHANNEL_Y_NEGATE (1<<11)#define A2_SRC2_CHANNEL_Y_SHIFT 8#define A2_SRC2_CHANNEL_Z_NEGATE (1<<7)#define A2_SRC2_CHANNEL_Z_SHIFT 4#define A2_SRC2_CHANNEL_W_NEGATE (1<<3)#define A2_SRC2_CHANNEL_W_SHIFT 0/* Texture instructions */#define T0_TEXLD (0x15<<24) /* Sample texture using predeclared * sampler and address, and output * filtered texel data to destination * register */#define T0_TEXLDP (0x16<<24) /* Same as texld but performs a * perspective divide of the texture * coordinate .xyz values by .w before * sampling. */#define T0_TEXLDB (0x17<<24) /* Same as texld but biases the * computed LOD by w. Only S4.6 two's * comp is used. This implies that a * float to fixed conversion is * done. */#define T0_TEXKILL (0x18<<24) /* Does not perform a sampling * operation. Simply kills the pixel * if any channel of the address * register is < 0.0. */#define T0_DEST_TYPE_SHIFT 19/* Allow: R, OC, OD, U *//* Note: U (unpreserved) regs do not retain their values between * phases (cannot be used for feedback) * * Note: oC and OD registers can only be used as the destination of a * texture instruction once per phase (this is an implementation * restriction). */#define T0_DEST_NR_SHIFT 14/* Allow R: 0..15, OC,OD: 0..0, U: 0..2 */#define T0_SAMPLER_NR_SHIFT 0 /* This field ignored for TEXKILL */#define T0_SAMPLER_NR_MASK (0xf<<0)#define T1_ADDRESS_REG_TYPE_SHIFT 24 /* Reg to use as texture coord *//* Allow R, T, OC, OD -- R, OC, OD are 'dependent' reads, new program phase */#define T1_ADDRESS_REG_NR_SHIFT 17#define T2_MBZ 0/* Declaration instructions */#define D0_DCL (0x19<<24) /* Declare a t (interpolated attrib) * register or an s (sampler) * register. */#define D0_SAMPLE_TYPE_SHIFT 22#define D0_SAMPLE_TYPE_2D (0x0<<22)#define D0_SAMPLE_TYPE_CUBE (0x1<<22)#define D0_SAMPLE_TYPE_VOLUME (0x2<<22)#define D0_SAMPLE_TYPE_MASK (0x3<<22)#define D0_TYPE_SHIFT 19/* Allow: T, S */#define D0_NR_SHIFT 14/* Allow T: 0..10, S: 0..15 */#define D0_CHANNEL_X (1<<10)#define D0_CHANNEL_Y (2<<10)#define D0_CHANNEL_Z (4<<10)#define D0_CHANNEL_W (8<<10)#define D0_CHANNEL_ALL (0xf<<10)#define D0_CHANNEL_NONE (0<<10)#define D0_CHANNEL_XY (D0_CHANNEL_X|D0_CHANNEL_Y)#define D0_CHANNEL_XYZ (D0_CHANNEL_XY|D0_CHANNEL_Z)/* I915 Errata: Do not allow (xz), (xw), (xzw) combinations for diffuse * or specular declarations. * * For T dcls, only allow: (x), (xy), (xyz), (w), (xyzw) * * Must be zero for S (sampler) dcls */#define D1_MBZ 0#define D2_MBZ 0/* p207 */#define _3DSTATE_MAP_STATE (CMD_3D|(0x1d<<24)|(0x0<<16))#define MS1_MAPMASK_SHIFT 0#define MS1_MAPMASK_MASK (0x8fff<<0)#define MS2_UNTRUSTED_SURFACE (1<<31)#define MS2_ADDRESS_MASK 0xfffffffc#define MS2_VERTICAL_LINE_STRIDE (1<<1)#define MS2_VERTICAL_OFFSET (1<<1)#define MS3_HEIGHT_SHIFT 21#define MS3_WIDTH_SHIFT 10#define MS3_PALETTE_SELECT (1<<9)#define MS3_MAPSURF_FORMAT_SHIFT 7#define MS3_MAPSURF_FORMAT_MASK (0x7<<7)#define MAPSURF_8BIT (1<<7)#define MAPSURF_16BIT (2<<7)#define MAPSURF_32BIT (3<<7)#define MAPSURF_422 (5<<7)#define MAPSURF_COMPRESSED (6<<7)#define MAPSURF_4BIT_INDEXED (7<<7)#define MS3_MT_FORMAT_MASK (0x7 << 3)#define MS3_MT_FORMAT_SHIFT 3#define MT_4BIT_IDX_ARGB8888 (7<<3) /* SURFACE_4BIT_INDEXED */#define MT_8BIT_I8 (0<<3) /* SURFACE_8BIT */#define MT_8BIT_L8 (1<<3)#define MT_8BIT_A8 (4<<3)#define MT_8BIT_MONO8 (5<<3)#define MT_16BIT_RGB565 (0<<3) /* SURFACE_16BIT */#define MT_16BIT_ARGB1555 (1<<3)#define MT_16BIT_ARGB4444 (2<<3)#define MT_16BIT_AY88 (3<<3)#define MT_16BIT_88DVDU (5<<3)#define MT_16BIT_BUMP_655LDVDU (6<<3)#define MT_16BIT_I16 (7<<3)#define MT_16BIT_L16 (8<<3)#define MT_16BIT_A16 (9<<3)#define MT_32BIT_ARGB8888 (0<<3) /* SURFACE_32BIT */#define MT_32BIT_ABGR8888 (1<<3)#define MT_32BIT_XRGB8888 (2<<3)#define MT_32BIT_XBGR8888 (3<<3)#define MT_32BIT_QWVU8888 (4<<3)#define MT_32BIT_AXVU8888 (5<<3)#define MT_32BIT_LXVU8888 (6<<3)#define MT_32BIT_XLVU8888 (7<<3)#define MT_32BIT_ARGB2101010 (8<<3)#define MT_32BIT_ABGR2101010 (9<<3)#define MT_32BIT_AWVU2101010 (0xA<<3)#define MT_32BIT_GR1616 (0xB<<3)#define MT_32BIT_VU1616 (0xC<<3)#define MT_32BIT_xI824 (0xD<<3)#define MT_32BIT_xA824 (0xE<<3)#define MT_32BIT_xL824 (0xF<<3)#define MT_422_YCRCB_SWAPY (0<<3) /* SURFACE_422 */#define MT_422_YCRCB_NORMAL (1<<3)#define MT_422_YCRCB_SWAPUV (2<<3)#define MT_422_YCRCB_SWAPUVY (3<<3)#define MT_COMPRESS_DXT1 (0<<3) /* SURFACE_COMPRESSED */#define MT_COMPRESS_DXT2_3 (1<<3)#define MT_COMPRESS_DXT4_5 (2<<3)#define MT_COMPRESS_FXT1 (3<<3)#define MT_COMPRESS_DXT1_RGB (4<<3)#define MS3_USE_FENCE_REGS (1<<2)#define MS3_TILED_SURFACE (1<<1)#define MS3_TILE_WALK (1<<0)#define MS4_PITCH_SHIFT 21#define MS4_CUBE_FACE_ENA_NEGX (1<<20)#define MS4_CUBE_FACE_ENA_POSX (1<<19)#define MS4_CUBE_FACE_ENA_NEGY (1<<18)#define MS4_CUBE_FACE_ENA_POSY (1<<17)#define MS4_CUBE_FACE_ENA_NEGZ (1<<16)#define MS4_CUBE_FACE_ENA_POSZ (1<<15)#define MS4_CUBE_FACE_ENA_MASK (0x3f<<15)#define MS4_MAX_LOD_SHIFT 9#define MS4_MAX_LOD_MASK (0x3f<<9)#define MS4_MIP_LAYOUT_LEGACY (0<<8)#define MS4_MIP_LAYOUT_BELOW_LPT (0<<8)#define MS4_MIP_LAYOUT_RIGHT_LPT (1<<8)#define MS4_VOLUME_DEPTH_SHIFT 0#define MS4_VOLUME_DEPTH_MASK (0xff<<0)/* p244 */#define _3DSTATE_SAMPLER_STATE (CMD_3D|(0x1d<<24)|(0x1<<16))#define SS1_MAPMASK_SHIFT 0#define SS1_MAPMASK_MASK (0x8fff<<0)#define SS2_REVERSE_GAMMA_ENABLE (1<<31)#define SS2_PACKED_TO_PLANAR_ENABLE (1<<30)#define SS2_COLORSPACE_CONVERSION (1<<29)#define SS2_CHROMAKEY_SHIFT 27#define SS2_BASE_MIP_LEVEL_SHIFT 22#define SS2_BASE_MIP_LEVEL_MASK (0x1f<<22)#define SS2_MIP_FILTER_SHIFT 20#define SS2_MIP_FILTER_MASK (0x3<<20)#define MIPFILTER_NONE 0#define MIPFILTER_NEAREST 1#define MIPFILTER_LINEAR 3#define SS2_MAG_FILTER_SHIFT 17#define SS2_MAG_FILTER_MASK (0x7<<17)#define FILTER_NEAREST 0#define FILTER_LINEAR 1#define FILTER_ANISOTROPIC 2#define FILTER_4X4_1 3#define FILTER_4X4_2 4#define FILTER_4X4_FLAT 5#define FILTER_6X5_MONO 6 /* XXX - check */#define SS2_MIN_FILTER_SHIFT 14#define SS2_MIN_FILTER_MASK (0x7<<14)#define SS2_LOD_BIAS_SHIFT 5#define SS2_LOD_BIAS_ONE (0x10<<5)#define SS2_LOD_BIAS_MASK (0x1ff<<5)/* Shadow requires: * MT_X8{I,L,A}24 or MT_{I,L,A}16 texture format * FILTER_4X4_x MIN and MAG filters */#define SS2_SHADOW_ENABLE (1<<4)#define SS2_MAX_ANISO_MASK (1<<3)#define SS2_MAX_ANISO_2 (0<<3)#define SS2_MAX_ANISO_4 (1<<3)#define SS2_SHADOW_FUNC_SHIFT 0#define SS2_SHADOW_FUNC_MASK (0x7<<0)/* SS2_SHADOW_FUNC values: see COMPAREFUNC_* */#define SS3_MIN_LOD_SHIFT 24#define SS3_MIN_LOD_ONE (0x10<<24)#define SS3_MIN_LOD_MASK (0xff<<24)#define SS3_KILL_PIXEL_ENABLE (1<<17)#define SS3_TCX_ADDR_MODE_SHIFT 12#define SS3_TCX_ADDR_MODE_MASK (0x7<<12)#define TEXCOORDMODE_WRAP 0#define TEXCOORDMODE_MIRROR 1#define TEXCOORDMODE_CLAMP_EDGE 2#define TEXCOORDMODE_CUBE 3#define TEXCOORDMODE_CLAMP_BORDER 4#define TEXCOORDMODE_MIRROR_ONCE 5#define SS3_TCY_ADDR_MODE_SHIFT 9#define SS3_TCY_ADDR_MODE_MASK (0x7<<9)#define SS3_TCZ_ADDR_MODE_SHIFT 6#define SS3_TCZ_ADDR_MODE_MASK (0x7<<6)#define SS3_NORMALIZED_COORDS (1<<5)#define SS3_TEXTUREMAP_INDEX_SHIFT 1#define SS3_TEXTUREMAP_INDEX_MASK (0xf<<1)#define SS3_DEINTERLACER_ENABLE (1<<0)#define SS4_BORDER_COLOR_MASK (~0)/* 3DSTATE_SPAN_STIPPLE, p258 */#define _3DSTATE_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16))#define ST1_ENABLE (1<<16)#define ST1_MASK (0xffff)#define _3DSTATE_DEFAULT_Z ((0x3<<29)|(0x1d<<24)|(0x98<<16))#define _3DSTATE_DEFAULT_DIFFUSE ((0x3<<29)|(0x1d<<24)|(0x99<<16))#define _3DSTATE_DEFAULT_SPECULAR ((0x3<<29)|(0x1d<<24)|(0x9a<<16))#define MI_FLUSH ((0<<29)|(4<<23))#define FLUSH_MAP_CACHE (1<<0)#define INHIBIT_FLUSH_RENDER_CACHE (1<<2)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -