📄 glint_regs.h
字号:
#define StencilMode GLINT_TAG_ADDR(0x13,0x01)#define StencilData GLINT_TAG_ADDR(0x13,0x02)#define GLINTStencil GLINT_TAG_ADDR(0x13,0x03)#define DepthMode GLINT_TAG_ADDR(0x13,0x04) /* 0: */ /* WriteDisable */ /* SrcCompFragment */ /* CompFuncNEVER */ /* UNIT_DISABLE */ #define DPM_WriteEnable 1 << 1 #define DPM_SrcCompLBData 1 << 2 #define DPM_SrcCompDregister 2 << 2 #define DPM_SrcCompLBSourceData 3 << 2 #define DPM_CompFuncLESS 1 << 4 #define DPM_CompFuncEQUAL 2 << 4 #define DPM_CompFuncLESS_OR_EQ 3 << 4 #define DPM_CompFuncGREATER 4 << 4 #define DPM_CompFuncNOT_EQ 5 << 4 #define DPM_CompFuncGREATER_OR_EQ 6 << 4 #define DPM_CompFuncALWAYS 7 << 4#define GLINTDepth GLINT_TAG_ADDR(0x13,0x05)#define ZStartU GLINT_TAG_ADDR(0x13,0x06)#define ZStartL GLINT_TAG_ADDR(0x13,0x07)#define dZdxU GLINT_TAG_ADDR(0x13,0x08)#define dZdxL GLINT_TAG_ADDR(0x13,0x09)#define dZdyDomU GLINT_TAG_ADDR(0x13,0x0a)#define dZdyDomL GLINT_TAG_ADDR(0x13,0x0b)#define FastClearDepth GLINT_TAG_ADDR(0x13,0x0c)#define FBReadMode GLINT_TAG_ADDR(0x15,0x00) /* 0: */ /* SrcNoRead */ /* DstNoRead */ /* DataFBDefault */ /* WinTopLeft */ /* ScanlineInterval1 */ #define FBRM_SrcEnable 1 << 9 #define FBRM_DstEnable 1 << 10 #define FBRM_DataFBColor 1 << 15 #define FBRM_WinBottomLeft 1 << 16 #define FBRM_Packed 1 << 19 #define FBRM_ScanlineInt2 1 << 23 #define FBRM_ScanlineInt4 2 << 23 #define FBRM_ScanlineInt8 3 << 23#define FBSourceOffset GLINT_TAG_ADDR(0x15,0x01)#define FBPixelOffset GLINT_TAG_ADDR(0x15,0x02)#define FBColor GLINT_TAG_ADDR(0x15,0x03)#define FBData GLINT_TAG_ADDR(0x15,0x04)#define FBSourceData GLINT_TAG_ADDR(0x15,0x05)#define FBWindowBase GLINT_TAG_ADDR(0x15,0x06)#define FBWriteMode GLINT_TAG_ADDR(0x15,0x07) /* 0: */ /* FBWM_NoColorUpload */ /* FBWM_WriteDisable */ #define FBWM_WriteEnable 1 #define FBWM_UploadColor 1 << 3/* Permedia3 extensions */ #define FBWM_Enable0 1 << 12#define FBHardwareWriteMask GLINT_TAG_ADDR(0x15,0x08)#define FBBlockColor GLINT_TAG_ADDR(0x15,0x09)#define FBReadPixel GLINT_TAG_ADDR(0x15,0x0a) /* PM */#define PatternRamMode GLINT_TAG_ADDR(0x15,0x0f)#define PatternRamData0 GLINT_TAG_ADDR(0x16,0x00)#define PatternRamData1 GLINT_TAG_ADDR(0x16,0x01)#define PatternRamData2 GLINT_TAG_ADDR(0x16,0x02)#define PatternRamData3 GLINT_TAG_ADDR(0x16,0x03)#define PatternRamData4 GLINT_TAG_ADDR(0x16,0x04)#define PatternRamData5 GLINT_TAG_ADDR(0x16,0x05)#define PatternRamData6 GLINT_TAG_ADDR(0x16,0x06)#define PatternRamData7 GLINT_TAG_ADDR(0x16,0x07)#define FilterMode GLINT_TAG_ADDR(0x18,0x00) /* 0: */ /* CullDepthTags */ /* CullDepthData */ /* CullStencilTags */ /* CullStencilData */ /* CullColorTag */ /* CullColorData */ /* CullSyncTag */ /* CullSyncData */ /* CullStatisticTag */ /* CullStatisticData */ #define FM_PassDepthTags 0x0010 #define FM_PassDepthData 0x0020 #define FM_PassStencilTags 0x0040 #define FM_PassStencilData 0x0080 #define FM_PassColorTag 0x0100 #define FM_PassColorData 0x0200 #define FM_PassSyncTag 0x0400 #define FM_PassSyncData 0x0800 #define FM_PassStatisticTag 0x1000 #define FM_PassStatisticData 0x2000#define Sync_tag 0x0188#define StatisticMode GLINT_TAG_ADDR(0x18,0x01)#define MinRegion GLINT_TAG_ADDR(0x18,0x02)#define MaxRegion GLINT_TAG_ADDR(0x18,0x03)#define ResetPickResult GLINT_TAG_ADDR(0x18,0x04)#define MitHitRegion GLINT_TAG_ADDR(0x18,0x05)#define MaxHitRegion GLINT_TAG_ADDR(0x18,0x06)#define PickResult GLINT_TAG_ADDR(0x18,0x07)#define GlintSync GLINT_TAG_ADDR(0x18,0x08)#define FBBlockColorU GLINT_TAG_ADDR(0x18,0x0d)#define FBBlockColorL GLINT_TAG_ADDR(0x18,0x0e)#define SuspendUntilFrameBlank GLINT_TAG_ADDR(0x18,0x0f)#define KsRStart GLINT_TAG_ADDR(0x19,0x00)#define dKsRdx GLINT_TAG_ADDR(0x19,0x01)#define dKsRdyDom GLINT_TAG_ADDR(0x19,0x02)#define KsGStart GLINT_TAG_ADDR(0x19,0x03)#define dKsGdx GLINT_TAG_ADDR(0x19,0x04)#define dKsGdyDom GLINT_TAG_ADDR(0x19,0x05)#define KsBStart GLINT_TAG_ADDR(0x19,0x06)#define dKsBdx GLINT_TAG_ADDR(0x19,0x07)#define dKsBdyDom GLINT_TAG_ADDR(0x19,0x08)#define KdRStart GLINT_TAG_ADDR(0x1A,0x00)#define dKdRdx GLINT_TAG_ADDR(0x1A,0x01)#define dKdRdyDom GLINT_TAG_ADDR(0x1A,0x02)#define KdGStart GLINT_TAG_ADDR(0x1A,0x03)#define dKdGdx GLINT_TAG_ADDR(0x1A,0x04)#define dKdGdyDom GLINT_TAG_ADDR(0x1A,0x05)#define KdBStart GLINT_TAG_ADDR(0x1A,0x06)#define dKdBdx GLINT_TAG_ADDR(0x1A,0x07)#define dKdBdyDom GLINT_TAG_ADDR(0x1A,0x08)#define FBSourceBase GLINT_TAG_ADDR(0x1B,0x00)#define FBSourceDelta GLINT_TAG_ADDR(0x1B,0x01)#define Config GLINT_TAG_ADDR(0x1B,0x02)#define CFBRM_SrcEnable 1<<0#define CFBRM_DstEnable 1<<1#define CFBRM_Packed 1<<2#define CWM_Enable 1<<3#define CCDDA_Enable 1<<4#define CLogOp_Enable 1<<5#define ContextDump GLINT_TAG_ADDR(0x1B,0x08)#define ContextRestore GLINT_TAG_ADDR(0x1B,0x09)#define ContextData GLINT_TAG_ADDR(0x1B,0x0a)#define TexelLUT0 GLINT_TAG_ADDR(0x1D,0x00)#define TexelLUT1 GLINT_TAG_ADDR(0x1D,0x01)#define TexelLUT2 GLINT_TAG_ADDR(0x1D,0x02)#define TexelLUT3 GLINT_TAG_ADDR(0x1D,0x03)#define TexelLUT4 GLINT_TAG_ADDR(0x1D,0x04)#define TexelLUT5 GLINT_TAG_ADDR(0x1D,0x05)#define TexelLUT6 GLINT_TAG_ADDR(0x1D,0x06)#define TexelLUT7 GLINT_TAG_ADDR(0x1D,0x07)#define TexelLUT8 GLINT_TAG_ADDR(0x1D,0x08)#define TexelLUT9 GLINT_TAG_ADDR(0x1D,0x09)#define TexelLUT10 GLINT_TAG_ADDR(0x1D,0x0A)#define TexelLUT11 GLINT_TAG_ADDR(0x1D,0x0B)#define TexelLUT12 GLINT_TAG_ADDR(0x1D,0x0C)#define TexelLUT13 GLINT_TAG_ADDR(0x1D,0x0D)#define TexelLUT14 GLINT_TAG_ADDR(0x1D,0x0E)#define TexelLUT15 GLINT_TAG_ADDR(0x1D,0x0F)#define YUVMode GLINT_TAG_ADDR(0x1E,0x00)#define ChromaUpper GLINT_TAG_ADDR(0x1E,0x01)#define ChromaLower GLINT_TAG_ADDR(0x1E,0x02)#define ChromaTestMode GLINT_TAG_ADDR(0x1E,0x03)#define AlphaMapUpperBound GLINT_TAG_ADDR(0x1E,0x03) /* PM2 */#define AlphaMapLowerBound GLINT_TAG_ADDR(0x1E,0x04) /* PM2 *//****************************** * GLINT Delta Core Registers * ******************************/#define V0FixedTag GLINT_TAG_ADDR(0x20,0x00)#define V1FixedTag GLINT_TAG_ADDR(0x21,0x00)#define V2FixedTag GLINT_TAG_ADDR(0x22,0x00)#define V0FloatTag GLINT_TAG_ADDR(0x23,0x00)#define V1FloatTag GLINT_TAG_ADDR(0x24,0x00)#define V2FloatTag GLINT_TAG_ADDR(0x25,0x00)#define VPAR_s 0x00#define VPAR_t 0x08#define VPAR_q 0x10#define VPAR_Ks 0x18#define VPAR_Kd 0x20/* have changed colors in ramdac !#define VPAR_R 0x28#define VPAR_G 0x30#define VPAR_B 0x38#define VPAR_A 0x40*/#define VPAR_B 0x28#define VPAR_G 0x30#define VPAR_R 0x38#define VPAR_A 0x40#define VPAR_f 0x48#define VPAR_x 0x50#define VPAR_y 0x58#define VPAR_z 0x60#define DeltaModeTag GLINT_TAG_ADDR(0x26,0x00) /* 0: */ /* GLINT_300SX */ /* DeltaMode Register Bit Field Assignments */ #define DM_GLINT_300SX 0x0000 #define DM_GLINT_500TX 0x0001 #define DM_PERMEDIA 0x0002 #define DM_Depth_16BPP (1 << 2) #define DM_Depth_24BPP (2 << 2) #define DM_Depth_32BPP (3 << 2) #define DM_FogEnable 0x0010 #define DM_TextureEnable 0x0020 #define DM_SmoothShadingEnable 0x0040 #define DM_DepthEnable 0x0080 #define DM_SpecularTextureEnable 0x0100 #define DM_DiffuseTextureEnable 0x0200 #define DM_SubPixelCorrectionEnable 0x0400 #define DM_DiamondExit 0x0800 #define DM_NoDraw 0x1000 #define DM_ClampEnable 0x2000 #define DM_ClampedTexParMode 0x4000 #define DM_NormalizedTexParMode 0xC000 #define DDCMD_AreaStrippleEnable 0x0001 #define DDCMD_LineStrippleEnable 0x0002 #define DDCMD_ResetLineStripple 1 << 2 #define DDCMD_FastFillEnable 1 << 3 /* 2 Bits reserved */ #define DDCMD_PrimitiveType_Point 2 << 6 #define DDCMD_PrimitiveType_Line 0 << 6 #define DDCMD_PrimitiveType_Trapezoid 1 << 6 #define DDCMD_AntialiasEnable 1 << 8 #define DDCMD_AntialiasingQuality 1 << 9 #define DDCMD_UsePointTable 1 << 10 #define DDCMD_SyncOnBitMask 1 << 11 #define DDCMD_SyncOnHostDate 1 << 12 #define DDCMD_TextureEnable 1 << 13 #define DDCMD_FogEnable 1 << 14 #define DDCMD_CoverageEnable 1 << 15 #define DDCMD_SubPixelCorrectionEnable 1 << 16#define DrawTriangle GLINT_TAG_ADDR(0x26,0x01)#define RepeatTriangle GLINT_TAG_ADDR(0x26,0x02)#define DrawLine01 GLINT_TAG_ADDR(0x26,0x03)#define DrawLine10 GLINT_TAG_ADDR(0x26,0x04)#define RepeatLine GLINT_TAG_ADDR(0x26,0x05)#define BroadcastMask GLINT_TAG_ADDR(0x26,0x0F)/* Permedia 3 - Accelerator Extensions */#define FillRectanglePosition 0x8348#define FillRender2D 0x8350#define FBDstReadBufAddr0 0xAE80#define FBDstReadBufOffset0 0xAEA0#define FBDstReadBufWidth0 0xAEC0#define FBDstReadMode 0xAEE0#define FBDRM_Enable0 1<<8#define FBDRM_Blocking 1<<24#define FBDstReadEnables 0xAEE8#define FBSrcReadMode 0xAF00#define FBSRM_Blocking 1<<11#define FBSrcReadBufAddr 0xAF08#define FBSrcReadBufOffset0 0xAF10#define FBSrcReadBufWidth 0xAF18#define FBWriteBufAddr0 0xB000#define FBWriteBufOffset0 0xB020#define FBWriteBufWidth0 0xB040#define FBBlockColorBack 0xB0A0#define ForegroundColor 0xB0C0#define BackgroundColor 0xB0C8#define RectanglePosition 0xB600#define Render2D 0xB640/* Colorformats */#define BGR555 1#define BGR565 16#define CI8 14#define CI4 15#ifdef DEBUG#define GLINT_WRITE_REG(v,r) \ GLINT_VERB_WRITE_REG(pGlint,v,r,__FILE__,__LINE__)#define GLINT_READ_REG(r) \ GLINT_VERB_READ_REG(pGlint,r,__FILE__,__LINE__)#else#define GLINT_WRITE_REG(v,r) \ MMIO_OUT32(pGlint->IOBase + pGlint->IOOffset,(unsigned long)(r), (v))#define GLINT_READ_REG(r) \ MMIO_IN32(pGlint->IOBase + pGlint->IOOffset,(unsigned long)(r))#endif /* DEBUG */#define GLINT_WAIT(n) \do{ \ if (pGlint->InFifoSpace>=(n)) \ pGlint->InFifoSpace -= (n); \ else { \ int tmp; \ while((tmp=GLINT_READ_REG(InFIFOSpace))<(n)); \ /* Clamp value due to bugs in PM3 */ \ if (tmp > pGlint->FIFOSize) \ tmp = pGlint->FIFOSize; \ pGlint->InFifoSpace = tmp - (n); \ } \}while(0)#define GLINTDACDelay(x) do { \ int delay = x; \ unsigned char tmp; \ while(delay--){tmp = GLINT_READ_REG(InFIFOSpace);}; \ } while(0) #define GLINT_MASK_WRITE_REG(v,m,r) \ GLINT_WRITE_REG((GLINT_READ_REG(r)&(m))|(v),r)#define GLINT_SLOW_WRITE_REG(v,r) \do{ \ mem_barrier(); \ GLINT_WAIT(pGlint->FIFOSize); \ mem_barrier(); \ GLINT_WRITE_REG(v,r); \}while(0)#define GLINT_SET_INDEX(index) \do{ \ GLINT_SLOW_WRITE_REG(((index)>>8)&0xff,PM2VDACIndexRegHigh); \ GLINT_SLOW_WRITE_REG((index)&0xff,PM2VDACIndexRegLow); \} while(0)#define REPLICATE(r) \{ \ if (pScrn->bitsPerPixel == 16) { \ r &= 0xFFFF; \ r |= (r<<16); \ } else \ if (pScrn->bitsPerPixel == 8) { \ r &= 0xFF; \ r |= (r<<8); \ r |= (r<<16); \ } \}#ifndef XF86DRI#define LOADROP(rop) \{ \ if (pGlint->ROP != rop) { \ GLINT_WRITE_REG(rop<<1|UNIT_ENABLE, LogicalOpMode); \ pGlint->ROP = rop; \ } \}#else#define LOADROP(rop) \ { \ GLINT_WRITE_REG(rop<<1|UNIT_ENABLE, LogicalOpMode); \ pGlint->ROP = rop; \ }#endif #define CHECKCLIPPING \{ \ if (pGlint->ClippingOn) { \ pGlint->ClippingOn = FALSE; \ GLINT_WAIT(1); \ GLINT_WRITE_REG(0, ScissorMode); \ } \}#ifndef XF86DRI#define DO_PLANEMASK(planemask) \{ \ if (planemask != pGlint->planemask) { \ pGlint->planemask = planemask; \ REPLICATE(planemask); \ GLINT_WRITE_REG(planemask, FBHardwareWriteMask);\ } \} #else#define DO_PLANEMASK(planemask) \ { \ pGlint->planemask = planemask; \ REPLICATE(planemask); \ GLINT_WRITE_REG(planemask, FBHardwareWriteMask);\ }#endif/* Permedia Save/Restore functions */#define STOREREG(address,value) \ pReg->glintRegs[address >> 3] = value;#define SAVEREG(address) \ pReg->glintRegs[address >> 3] = GLINT_READ_REG(address);#define RESTOREREG(address) \ GLINT_SLOW_WRITE_REG(pReg->glintRegs[address >> 3], address);#define STOREDAC(address,value) \ pReg->DacRegs[address] = value;#define P2VOUT(address) \ Permedia2vOutIndReg(pScrn, address, 0x00, pReg->DacRegs[address]);#define P2VIN(address) \ pReg->DacRegs[address] = Permedia2vInIndReg(pScrn, address);/* RamDac Save/Restore functions, used by external DAC's */#define STORERAMDAC(address,value) \ ramdacReg->DacRegs[address] = value;/* Multi Chip access */#define ACCESSCHIP1() \ pGlint->IOOffset = 0;#define ACCESSCHIP2() \ pGlint->IOOffset = 0x10000;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -