📄 i915_reg.h
字号:
/************************************************************************** * * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/#ifndef _I915_REG_H_#define _I915_REG_H_#include "intel_reg.h"#define I915_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value)#define PRIM3D_INLINE (CMD_3D | (0x1f<<24))#define PRIM3D_TRILIST (0x0<<18)#define PRIM3D_TRISTRIP (0x1<<18)#define PRIM3D_TRISTRIP_RVRSE (0x2<<18)#define PRIM3D_TRIFAN (0x3<<18)#define PRIM3D_POLY (0x4<<18)#define PRIM3D_LINELIST (0x5<<18)#define PRIM3D_LINESTRIP (0x6<<18)#define PRIM3D_RECTLIST (0x7<<18)#define PRIM3D_POINTLIST (0x8<<18)#define PRIM3D_DIB (0x9<<18)#define PRIM3D_CLEAR_RECT (0xa<<18)#define PRIM3D_ZONE_INIT (0xd<<18)#define PRIM3D_MASK (0x1f<<18)/* p137 */#define _3DSTATE_AA_CMD (CMD_3D | (0x06<<24))#define AA_LINE_ECAAR_WIDTH_ENABLE (1<<16)#define AA_LINE_ECAAR_WIDTH_0_5 0#define AA_LINE_ECAAR_WIDTH_1_0 (1<<14)#define AA_LINE_ECAAR_WIDTH_2_0 (2<<14)#define AA_LINE_ECAAR_WIDTH_4_0 (3<<14)#define AA_LINE_REGION_WIDTH_ENABLE (1<<8)#define AA_LINE_REGION_WIDTH_0_5 0#define AA_LINE_REGION_WIDTH_1_0 (1<<6)#define AA_LINE_REGION_WIDTH_2_0 (2<<6)#define AA_LINE_REGION_WIDTH_4_0 (3<<6)/* 3DSTATE_BACKFACE_STENCIL_OPS, p138*/#define _3DSTATE_BACKFACE_STENCIL_OPS (CMD_3D | (0x8<<24))#define BFO_ENABLE_STENCIL_REF (1<<23)#define BFO_STENCIL_REF_SHIFT 15#define BFO_STENCIL_REF_MASK (0xff<<15)#define BFO_ENABLE_STENCIL_FUNCS (1<<14)#define BFO_STENCIL_TEST_SHIFT 11#define BFO_STENCIL_TEST_MASK (0x7<<11)#define BFO_STENCIL_FAIL_SHIFT 8#define BFO_STENCIL_FAIL_MASK (0x7<<8)#define BFO_STENCIL_PASS_Z_FAIL_SHIFT 5#define BFO_STENCIL_PASS_Z_FAIL_MASK (0x7<<5)#define BFO_STENCIL_PASS_Z_PASS_SHIFT 2#define BFO_STENCIL_PASS_Z_PASS_MASK (0x7<<2)#define BFO_ENABLE_STENCIL_TWO_SIDE (1<<1)#define BFO_STENCIL_TWO_SIDE (1<<0)/* 3DSTATE_BACKFACE_STENCIL_MASKS, p140 */#define _3DSTATE_BACKFACE_STENCIL_MASKS (CMD_3D | (0x9<<24))#define BFM_ENABLE_STENCIL_TEST_MASK (1<<17)#define BFM_ENABLE_STENCIL_WRITE_MASK (1<<16)#define BFM_STENCIL_TEST_MASK_SHIFT 8#define BFM_STENCIL_TEST_MASK_MASK (0xff<<8)#define BFM_STENCIL_WRITE_MASK_SHIFT 0#define BFM_STENCIL_WRITE_MASK_MASK (0xff<<0)/* 3DSTATE_BIN_CONTROL p141 *//* p143 */#define _3DSTATE_BUF_INFO_CMD (CMD_3D | (0x1d<<24) | (0x8e<<16) | 1)/* Dword 1 */#define BUF_3D_ID_COLOR_BACK (0x3<<24)#define BUF_3D_ID_DEPTH (0x7<<24)#define BUF_3D_USE_FENCE (1<<23)#define BUF_3D_TILED_SURFACE (1<<22)#define BUF_3D_TILE_WALK_X 0#define BUF_3D_TILE_WALK_Y (1<<21)#define BUF_3D_PITCH(x) (((x)/4)<<2)/* Dword 2 */#define BUF_3D_ADDR(x) ((x) & ~0x3)/* 3DSTATE_CHROMA_KEY *//* 3DSTATE_CLEAR_PARAMETERS, p150 *//* * Sets the color, depth and stencil clear values used by the * CLEAR_RECT and ZONE_INIT primitive types, respectively. These * primitives set override most 3d state and only take a minimal x/y * vertex. The color/z/stencil information is supplied here and * therefore cannot vary per vertex. */#define _3DSTATE_CLEAR_PARAMETERS (CMD_3D | (0x1d<<24) | (0x9c<<16) | 5)/* Dword 1 */#define CLEARPARAM_CLEAR_RECT (1 << 16)#define CLEARPARAM_ZONE_INIT (0 << 16)#define CLEARPARAM_WRITE_COLOR (1 << 2)#define CLEARPARAM_WRITE_DEPTH (1 << 1)#define CLEARPARAM_WRITE_STENCIL (1 << 0)/* 3DSTATE_CONSTANT_BLEND_COLOR, p153 */#define _3DSTATE_CONST_BLEND_COLOR_CMD (CMD_3D | (0x1d<<24) | (0x88<<16))/* 3DSTATE_COORD_SET_BINDINGS, p154 */#define _3DSTATE_COORD_SET_BINDINGS (CMD_3D | (0x16<<24))#define CSB_TCB(iunit, eunit) ((eunit)<<(iunit*3))/* p156 */#define _3DSTATE_DFLT_DIFFUSE_CMD (CMD_3D | (0x1d<<24) | (0x99<<16))/* p157 */#define _3DSTATE_DFLT_SPEC_CMD (CMD_3D | (0x1d<<24) | (0x9a<<16))/* p158 */#define _3DSTATE_DFLT_Z_CMD (CMD_3D | (0x1d<<24) | (0x98<<16))/* 3DSTATE_DEPTH_OFFSET_SCALE, p159 */#define _3DSTATE_DEPTH_OFFSET_SCALE (CMD_3D | (0x1d<<24) | (0x97<<16))/* scale in dword 1 *//* 3DSTATE_DEPTH_SUBRECT_DISABLE, p160 */#define _3DSTATE_DEPTH_SUBRECT_DISABLE (CMD_3D | (0x1c<<24) | (0x11<<19) | 0x2)/* p161 */#define _3DSTATE_DST_BUF_VARS_CMD (CMD_3D | (0x1d<<24) | (0x85<<16))/* Dword 1 */#define TEX_DEFAULT_COLOR_OGL (0<<30)#define TEX_DEFAULT_COLOR_D3D (1<<30)#define ZR_EARLY_DEPTH (1<<29)#define LOD_PRECLAMP_OGL (1<<28)#define LOD_PRECLAMP_D3D (0<<28)#define DITHER_FULL_ALWAYS (0<<26)#define DITHER_FULL_ON_FB_BLEND (1<<26)#define DITHER_CLAMPED_ALWAYS (2<<26)#define LINEAR_GAMMA_BLEND_32BPP (1<<25)#define DEBUG_DISABLE_ENH_DITHER (1<<24)#define DSTORG_HORT_BIAS(x) ((x)<<20)#define DSTORG_VERT_BIAS(x) ((x)<<16)#define COLOR_4_2_2_CHNL_WRT_ALL 0#define COLOR_4_2_2_CHNL_WRT_Y (1<<12)#define COLOR_4_2_2_CHNL_WRT_CR (2<<12)#define COLOR_4_2_2_CHNL_WRT_CB (3<<12)#define COLOR_4_2_2_CHNL_WRT_CRCB (4<<12)#define COLR_BUF_8BIT 0#define COLR_BUF_RGB555 (1<<8)#define COLR_BUF_RGB565 (2<<8)#define COLR_BUF_ARGB8888 (3<<8)#define DEPTH_FRMT_16_FIXED 0#define DEPTH_FRMT_16_FLOAT (1<<2)#define DEPTH_FRMT_24_FIXED_8_OTHER (2<<2)#define VERT_LINE_STRIDE_1 (1<<1)#define VERT_LINE_STRIDE_0 (0<<1)#define VERT_LINE_STRIDE_OFS_1 1#define VERT_LINE_STRIDE_OFS_0 0/* p166 */#define _3DSTATE_DRAW_RECT_CMD (CMD_3D|(0x1d<<24)|(0x80<<16)|3)/* Dword 1 */#define DRAW_RECT_DIS_DEPTH_OFS (1<<30)#define DRAW_DITHER_OFS_X(x) ((x)<<26)#define DRAW_DITHER_OFS_Y(x) ((x)<<24)/* Dword 2 */#define DRAW_YMIN(x) ((x)<<16)#define DRAW_XMIN(x) (x)/* Dword 3 */#define DRAW_YMAX(x) ((x)<<16)#define DRAW_XMAX(x) (x)/* Dword 4 */#define DRAW_YORG(x) ((x)<<16)#define DRAW_XORG(x) (x)/* 3DSTATE_FILTER_COEFFICIENTS_4X4, p170 *//* 3DSTATE_FILTER_COEFFICIENTS_6X5, p172 *//* _3DSTATE_FOG_COLOR, p173 */#define _3DSTATE_FOG_COLOR_CMD (CMD_3D|(0x15<<24))#define FOG_COLOR_RED(x) ((x)<<16)#define FOG_COLOR_GREEN(x) ((x)<<8)#define FOG_COLOR_BLUE(x) (x)/* _3DSTATE_FOG_MODE, p174 */#define _3DSTATE_FOG_MODE_CMD (CMD_3D|(0x1d<<24)|(0x89<<16)|2)/* Dword 1 */#define FMC1_FOGFUNC_MODIFY_ENABLE (1<<31)#define FMC1_FOGFUNC_VERTEX (0<<28)#define FMC1_FOGFUNC_PIXEL_EXP (1<<28)#define FMC1_FOGFUNC_PIXEL_EXP2 (2<<28)#define FMC1_FOGFUNC_PIXEL_LINEAR (3<<28)#define FMC1_FOGFUNC_MASK (3<<28)#define FMC1_FOGINDEX_MODIFY_ENABLE (1<<27)#define FMC1_FOGINDEX_Z (0<<25)#define FMC1_FOGINDEX_W (1<<25)#define FMC1_C1_C2_MODIFY_ENABLE (1<<24)#define FMC1_DENSITY_MODIFY_ENABLE (1<<23)#define FMC1_C1_ONE (1<<13)#define FMC1_C1_MASK (0xffff<<4)/* Dword 2 */#define FMC2_C2_ONE (1<<16)/* Dword 3 */#define FMC3_D_ONE (1<<16)/* _3DSTATE_INDEPENDENT_ALPHA_BLEND, p177 */#define _3DSTATE_INDEPENDENT_ALPHA_BLEND_CMD (CMD_3D|(0x0b<<24))#define IAB_MODIFY_ENABLE (1<<23)#define IAB_ENABLE (1<<22)#define IAB_MODIFY_FUNC (1<<21)#define IAB_FUNC_SHIFT 16#define IAB_MODIFY_SRC_FACTOR (1<<11)#define IAB_SRC_FACTOR_SHIFT 6#define IAB_SRC_FACTOR_MASK (BLENDFACT_MASK<<6)#define IAB_MODIFY_DST_FACTOR (1<<5)#define IAB_DST_FACTOR_SHIFT 0#define IAB_DST_FACTOR_MASK (BLENDFACT_MASK<<0)#define BLENDFUNC_ADD 0x0#define BLENDFUNC_SUBTRACT 0x1#define BLENDFUNC_REVERSE_SUBTRACT 0x2#define BLENDFUNC_MIN 0x3#define BLENDFUNC_MAX 0x4#define BLENDFUNC_MASK 0x7/* 3DSTATE_LOAD_INDIRECT, p180 */#define _3DSTATE_LOAD_INDIRECT (CMD_3D|(0x1d<<24)|(0x7<<16))#define LI0_STATE_STATIC_INDIRECT (0x01<<8)#define LI0_STATE_DYNAMIC_INDIRECT (0x02<<8)#define LI0_STATE_SAMPLER (0x04<<8)#define LI0_STATE_MAP (0x08<<8)#define LI0_STATE_PROGRAM (0x10<<8)#define LI0_STATE_CONSTANTS (0x20<<8)#define SIS0_BUFFER_ADDRESS(x) ((x)&~0x3)#define SIS0_FORCE_LOAD (1<<1)#define SIS0_BUFFER_VALID (1<<0)#define SIS1_BUFFER_LENGTH(x) ((x)&0xff)#define DIS0_BUFFER_ADDRESS(x) ((x)&~0x3)#define DIS0_BUFFER_RESET (1<<1)#define DIS0_BUFFER_VALID (1<<0)#define SSB0_BUFFER_ADDRESS(x) ((x)&~0x3)#define SSB0_FORCE_LOAD (1<<1)#define SSB0_BUFFER_VALID (1<<0)#define SSB1_BUFFER_LENGTH(x) ((x)&0xff)#define MSB0_BUFFER_ADDRESS(x) ((x)&~0x3)#define MSB0_FORCE_LOAD (1<<1)#define MSB0_BUFFER_VALID (1<<0)#define MSB1_BUFFER_LENGTH(x) ((x)&0xff)#define PSP0_BUFFER_ADDRESS(x) ((x)&~0x3)#define PSP0_FORCE_LOAD (1<<1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -