📄 i915_reg.h
字号:
#define PSP0_BUFFER_VALID (1<<0)#define PSP1_BUFFER_LENGTH(x) ((x)&0xff)#define PSC0_BUFFER_ADDRESS(x) ((x)&~0x3)#define PSC0_FORCE_LOAD (1<<1)#define PSC0_BUFFER_VALID (1<<0)#define PSC1_BUFFER_LENGTH(x) ((x)&0xff)/* _3DSTATE_RASTERIZATION_RULES */#define _3DSTATE_RASTER_RULES_CMD (CMD_3D|(0x07<<24))#define ENABLE_POINT_RASTER_RULE (1<<15)#define OGL_POINT_RASTER_RULE (1<<13)#define ENABLE_TEXKILL_3D_4D (1<<10)#define TEXKILL_3D (0<<9)#define TEXKILL_4D (1<<9)#define ENABLE_LINE_STRIP_PROVOKE_VRTX (1<<8)#define ENABLE_TRI_FAN_PROVOKE_VRTX (1<<5)#define LINE_STRIP_PROVOKE_VRTX(x) ((x)<<6)#define TRI_FAN_PROVOKE_VRTX(x) ((x)<<3)/* _3DSTATE_SCISSOR_ENABLE, p256 */#define _3DSTATE_SCISSOR_ENABLE_CMD (CMD_3D|(0x1c<<24)|(0x10<<19))#define ENABLE_SCISSOR_RECT ((1<<1) | 1)#define DISABLE_SCISSOR_RECT (1<<1)/* _3DSTATE_SCISSOR_RECTANGLE_0, p257 */#define _3DSTATE_SCISSOR_RECT_0_CMD (CMD_3D|(0x1d<<24)|(0x81<<16)|1)/* Dword 1 */#define SCISSOR_RECT_0_YMIN(x) ((x)<<16)#define SCISSOR_RECT_0_XMIN(x) (x)/* Dword 2 */#define SCISSOR_RECT_0_YMAX(x) ((x)<<16)#define SCISSOR_RECT_0_XMAX(x) (x)/* p189 */#define _3DSTATE_LOAD_STATE_IMMEDIATE_1 ((0x3<<29)|(0x1d<<24)|(0x04<<16))#define I1_LOAD_S(n) (1<<(4+n))#define S0_VB_OFFSET_MASK 0xffffffc#define S0_AUTO_CACHE_INV_DISABLE (1<<0)#define S1_VERTEX_WIDTH_SHIFT 24#define S1_VERTEX_WIDTH_MASK (0x3f<<24)#define S1_VERTEX_PITCH_SHIFT 16#define S1_VERTEX_PITCH_MASK (0x3f<<16)#define TEXCOORDFMT_2D 0x0#define TEXCOORDFMT_3D 0x1#define TEXCOORDFMT_4D 0x2#define TEXCOORDFMT_1D 0x3#define TEXCOORDFMT_2D_16 0x4#define TEXCOORDFMT_4D_16 0x5#define TEXCOORDFMT_NOT_PRESENT 0xf#define S2_TEXCOORD_FMT0_MASK 0xf#define S2_TEXCOORD_FMT1_SHIFT 4#define S2_TEXCOORD_FMT(unit, type) ((type)<<(unit*4))#define S2_TEXCOORD_NONE (~0)/* S3 not interesting */#define S4_POINT_WIDTH_SHIFT 23#define S4_POINT_WIDTH_MASK (0x1ff<<23)#define S4_LINE_WIDTH_SHIFT 19#define S4_LINE_WIDTH_ONE (0x2<<19)#define S4_LINE_WIDTH_MASK (0xf<<19)#define S4_FLATSHADE_ALPHA (1<<18)#define S4_FLATSHADE_FOG (1<<17)#define S4_FLATSHADE_SPECULAR (1<<16)#define S4_FLATSHADE_COLOR (1<<15)#define S4_CULLMODE_BOTH (0<<13)#define S4_CULLMODE_NONE (1<<13)#define S4_CULLMODE_CW (2<<13)#define S4_CULLMODE_CCW (3<<13)#define S4_CULLMODE_MASK (3<<13)#define S4_VFMT_POINT_WIDTH (1<<12)#define S4_VFMT_SPEC_FOG (1<<11)#define S4_VFMT_COLOR (1<<10)#define S4_VFMT_DEPTH_OFFSET (1<<9)#define S4_VFMT_XYZ (1<<6)#define S4_VFMT_XYZW (2<<6)#define S4_VFMT_XY (3<<6)#define S4_VFMT_XYW (4<<6)#define S4_VFMT_XYZW_MASK (7<<6)#define S4_FORCE_DEFAULT_DIFFUSE (1<<5)#define S4_FORCE_DEFAULT_SPECULAR (1<<4)#define S4_LOCAL_DEPTH_OFFSET_ENABLE (1<<3)#define S4_VFMT_FOG_PARAM (1<<2)#define S4_SPRITE_POINT_ENABLE (1<<1)#define S4_LINE_ANTIALIAS_ENABLE (1<<0)#define S4_VFMT_MASK (S4_VFMT_POINT_WIDTH | \ S4_VFMT_SPEC_FOG | \ S4_VFMT_COLOR | \ S4_VFMT_DEPTH_OFFSET | \ S4_VFMT_XYZW_MASK | \ S4_VFMT_FOG_PARAM)#define S5_WRITEDISABLE_ALPHA (1<<31)#define S5_WRITEDISABLE_RED (1<<30)#define S5_WRITEDISABLE_GREEN (1<<29)#define S5_WRITEDISABLE_BLUE (1<<28)#define S5_WRITEDISABLE_MASK (0xf<<28)#define S5_FORCE_DEFAULT_POINT_SIZE (1<<27)#define S5_LAST_PIXEL_ENABLE (1<<26)#define S5_GLOBAL_DEPTH_OFFSET_ENABLE (1<<25)#define S5_FOG_ENABLE (1<<24)#define S5_STENCIL_REF_SHIFT 16#define S5_STENCIL_REF_MASK (0xff<<16)#define S5_STENCIL_TEST_FUNC_SHIFT 13#define S5_STENCIL_TEST_FUNC_MASK (0x7<<13)#define S5_STENCIL_FAIL_SHIFT 10#define S5_STENCIL_FAIL_MASK (0x7<<10)#define S5_STENCIL_PASS_Z_FAIL_SHIFT 7#define S5_STENCIL_PASS_Z_FAIL_MASK (0x7<<7)#define S5_STENCIL_PASS_Z_PASS_SHIFT 4#define S5_STENCIL_PASS_Z_PASS_MASK (0x7<<4)#define S5_STENCIL_WRITE_ENABLE (1<<3)#define S5_STENCIL_TEST_ENABLE (1<<2)#define S5_COLOR_DITHER_ENABLE (1<<1)#define S5_LOGICOP_ENABLE (1<<0)#define S6_ALPHA_TEST_ENABLE (1<<31)#define S6_ALPHA_TEST_FUNC_SHIFT 28#define S6_ALPHA_TEST_FUNC_MASK (0x7<<28)#define S6_ALPHA_REF_SHIFT 20#define S6_ALPHA_REF_MASK (0xff<<20)#define S6_DEPTH_TEST_ENABLE (1<<19)#define S6_DEPTH_TEST_FUNC_SHIFT 16#define S6_DEPTH_TEST_FUNC_MASK (0x7<<16)#define S6_CBUF_BLEND_ENABLE (1<<15)#define S6_CBUF_BLEND_FUNC_SHIFT 12#define S6_CBUF_BLEND_FUNC_MASK (0x7<<12)#define S6_CBUF_SRC_BLEND_FACT_SHIFT 8#define S6_CBUF_SRC_BLEND_FACT_MASK (0xf<<8)#define S6_CBUF_DST_BLEND_FACT_SHIFT 4#define S6_CBUF_DST_BLEND_FACT_MASK (0xf<<4)#define S6_DEPTH_WRITE_ENABLE (1<<3)#define S6_COLOR_WRITE_ENABLE (1<<2)#define S6_TRISTRIP_PV_SHIFT 0#define S6_TRISTRIP_PV_MASK (0x3<<0)#define S7_DEPTH_OFFSET_CONST_MASK ~0/* Helper macros for blend factors */#define DST_BLND_FACT(f) ((f)<<S6_CBUF_DST_BLEND_FACT_SHIFT)#define SRC_BLND_FACT(f) ((f)<<S6_CBUF_SRC_BLEND_FACT_SHIFT)#define DST_ABLND_FACT(f) ((f)<<IAB_DST_FACTOR_SHIFT)#define SRC_ABLND_FACT(f) ((f)<<IAB_SRC_FACTOR_SHIFT)/* 3DSTATE_MAP_DEINTERLACER_PARAMETERS *//* 3DSTATE_MAP_PALETTE_LOAD_32, p206 */#define _3DSTATE_MAP_PALETTE_LOAD_32 (CMD_3D|(0x1d<<24)|(0x8f<<16))/* subsequent dwords up to length (max 16) are ARGB8888 color values *//* _3DSTATE_MODES_4, p218 */#define _3DSTATE_MODES_4_CMD (CMD_3D|(0x0d<<24))#define ENABLE_LOGIC_OP_FUNC (1<<23)#define LOGIC_OP_FUNC(x) ((x)<<18)#define LOGICOP_MASK (0xf<<18)#define MODE4_ENABLE_STENCIL_TEST_MASK ((1<<17)|(0xff00))#define ENABLE_STENCIL_TEST_MASK (1<<17)#define STENCIL_TEST_MASK(x) (((x)&0xff)<<8)#define MODE4_ENABLE_STENCIL_WRITE_MASK ((1<<16)|(0x00ff))#define ENABLE_STENCIL_WRITE_MASK (1<<16)#define STENCIL_WRITE_MASK(x) ((x)&0xff)/* _3DSTATE_MODES_5, p220 */#define _3DSTATE_MODES_5_CMD (CMD_3D|(0x0c<<24))#define PIPELINE_FLUSH_RENDER_CACHE (1<<18)#define PIPELINE_FLUSH_TEXTURE_CACHE (1<<16)/* p221 */#define _3DSTATE_PIXEL_SHADER_CONSTANTS (CMD_3D|(0x1d<<24)|(0x6<<16))#define PS1_REG(n) (1<<(n))#define PS2_CONST_X(n) (n)#define PS3_CONST_Y(n) (n)#define PS4_CONST_Z(n) (n)#define PS5_CONST_W(n) (n)/* p222 */#define I915_MAX_TEX_INDIRECT 4#define I915_MAX_TEX_INSN 32#define I915_MAX_ALU_INSN 64#define I915_MAX_DECL_INSN 27#define I915_MAX_TEMPORARY 16/* Each instruction is 3 dwords long, though most don't require all * this space. Maximum of 123 instructions. Smaller maxes per insn * type. */#define _3DSTATE_PIXEL_SHADER_PROGRAM (CMD_3D|(0x1d<<24)|(0x5<<16))#define REG_TYPE_R 0 /* temporary regs, no need to * dcl, must be written before * read -- Preserved between * phases. */#define REG_TYPE_T 1 /* Interpolated values, must be * dcl'ed before use. * * 0..7: texture coord, * 8: diffuse spec, * 9: specular color, * 10: fog parameter in w. */#define REG_TYPE_CONST 2 /* Restriction: only one const * can be referenced per * instruction, though it may be * selected for multiple inputs. * Constants not initialized * default to zero. */#define REG_TYPE_S 3 /* sampler */#define REG_TYPE_OC 4 /* output color (rgba) */#define REG_TYPE_OD 5 /* output depth (w), xyz are * temporaries. If not written, * interpolated depth is used? */#define REG_TYPE_U 6 /* unpreserved temporaries */#define REG_TYPE_MASK 0x7#define REG_NR_MASK 0xf/* REG_TYPE_T: */#define T_TEX0 0#define T_TEX1 1#define T_TEX2 2#define T_TEX3 3#define T_TEX4 4#define T_TEX5 5#define T_TEX6 6#define T_TEX7 7#define T_DIFFUSE 8#define T_SPECULAR 9#define T_FOG_W 10 /* interpolated fog is in W coord *//* Arithmetic instructions *//* .replicate_swizzle == selection and replication of a particular * scalar channel, ie., .xxxx, .yyyy, .zzzz or .wwww */#define A0_NOP (0x0<<24) /* no operation */#define A0_ADD (0x1<<24) /* dst = src0 + src1 */#define A0_MOV (0x2<<24) /* dst = src0 */#define A0_MUL (0x3<<24) /* dst = src0 * src1 */#define A0_MAD (0x4<<24) /* dst = src0 * src1 + src2 */#define A0_DP2ADD (0x5<<24) /* dst.xyzw = src0.xy dot src1.xy + src2.replicate_swizzle */#define A0_DP3 (0x6<<24) /* dst.xyzw = src0.xyz dot src1.xyz */#define A0_DP4 (0x7<<24) /* dst.xyzw = src0.xyzw dot src1.xyzw */#define A0_FRC (0x8<<24) /* dst = src0 - floor(src0) */#define A0_RCP (0x9<<24) /* dst.xyzw = 1/(src0.replicate_swizzle) */#define A0_RSQ (0xa<<24) /* dst.xyzw = 1/(sqrt(abs(src0.replicate_swizzle))) */#define A0_EXP (0xb<<24) /* dst.xyzw = exp2(src0.replicate_swizzle) */#define A0_LOG (0xc<<24) /* dst.xyzw = log2(abs(src0.replicate_swizzle)) */#define A0_CMP (0xd<<24) /* dst = (src0 >= 0.0) ? src1 : src2 */#define A0_MIN (0xe<<24) /* dst = (src0 < src1) ? src0 : src1 */#define A0_MAX (0xf<<24) /* dst = (src0 >= src1) ? src0 : src1 */#define A0_FLR (0x10<<24) /* dst = floor(src0) */#define A0_MOD (0x11<<24) /* dst = src0 fmod 1.0 */#define A0_TRC (0x12<<24) /* dst = int(src0) */#define A0_SGE (0x13<<24) /* dst = src0 >= src1 ? 1.0 : 0.0 */#define A0_SLT (0x14<<24) /* dst = src0 < src1 ? 1.0 : 0.0 */#define A0_DEST_SATURATE (1<<22)#define A0_DEST_TYPE_SHIFT 19/* Allow: R, OC, OD, U */#define A0_DEST_NR_SHIFT 14/* Allow R: 0..15, OC,OD: 0..0, U: 0..2 */#define A0_DEST_CHANNEL_X (1<<10)#define A0_DEST_CHANNEL_Y (2<<10)#define A0_DEST_CHANNEL_Z (4<<10)#define A0_DEST_CHANNEL_W (8<<10)#define A0_DEST_CHANNEL_ALL (0xf<<10)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -