⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r128.h

📁 x.org上有关ati系列显卡最新驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
    int               scanline_h;#ifdef XF86DRI    int               scanline_hpass;    int               scanline_x1clip;    int               scanline_x2clip;    int               scanline_rop;    int               scanline_fg;    int               scanline_bg;#endif /* XF86DRI */    int               scanline_words;    int               scanline_direct;    int               scanline_bpp; /* Only used for ImageWrite */    DGAModePtr        DGAModes;    int               numDGAModes;    Bool              DGAactive;    int               DGAViewportStatus;    DGAFunctionRec    DGAFuncs;    R128FBLayout      CurrentLayout;#ifdef XF86DRI    Bool              directRenderingEnabled;    DRIInfoPtr        pDRIInfo;    int               drmFD;    drm_context_t        drmCtx;    int               numVisualConfigs;    __GLXvisualConfig *pVisualConfigs;    R128ConfigPrivPtr pVisualConfigsPriv;    drm_handle_t         fbHandle;    drmSize           registerSize;    drm_handle_t         registerHandle;    Bool              IsPCI;            /* Current card is a PCI card */    drmSize           pciSize;    drm_handle_t         pciMemHandle;    drmAddress        PCI;              /* Map */    Bool              allowPageFlip;    /* Enable 3d page flipping */    Bool              have3DWindows;    /* Are there any 3d clients? */    int               drmMinor;    drmSize           agpSize;    drm_handle_t         agpMemHandle;     /* Handle from drmAgpAlloc */    unsigned long     agpOffset;    drmAddress        AGP;              /* Map */    int               agpMode;    Bool              CCEInUse;         /* CCE is currently active */    int               CCEMode;          /* CCE mode that server/clients use */    int               CCEFifoSize;      /* Size of the CCE command FIFO */    Bool              CCESecure;        /* CCE security enabled */    int               CCEusecTimeout;   /* CCE timeout in usecs */				/* CCE ring buffer data */    unsigned long     ringStart;        /* Offset into AGP space */    drm_handle_t         ringHandle;       /* Handle from drmAddMap */    drmSize           ringMapSize;      /* Size of map */    int               ringSize;         /* Size of ring (in MB) */    drmAddress        ring;             /* Map */    int               ringSizeLog2QW;    unsigned long     ringReadOffset;   /* Offset into AGP space */    drm_handle_t         ringReadPtrHandle; /* Handle from drmAddMap */    drmSize           ringReadMapSize;  /* Size of map */    drmAddress        ringReadPtr;      /* Map */				/* CCE vertex/indirect buffer data */    unsigned long     bufStart;        /* Offset into AGP space */    drm_handle_t         bufHandle;       /* Handle from drmAddMap */    drmSize           bufMapSize;      /* Size of map */    int               bufSize;         /* Size of buffers (in MB) */    drmAddress        buf;             /* Map */    int               bufNumBufs;      /* Number of buffers */    drmBufMapPtr      buffers;         /* Buffer map */				/* CCE AGP Texture data */    unsigned long     agpTexStart;      /* Offset into AGP space */    drm_handle_t         agpTexHandle;     /* Handle from drmAddMap */    drmSize           agpTexMapSize;    /* Size of map */    int               agpTexSize;       /* Size of AGP tex space (in MB) */    drmAddress        agpTex;           /* Map */    int               log2AGPTexGran;				/* CCE 2D accleration */    drmBufPtr         indirectBuffer;    int               indirectStart;				/* DRI screen private data */    int               fbX;    int               fbY;    int               backX;    int               backY;    int               depthX;    int               depthY;    int               frontOffset;    int               frontPitch;    int               backOffset;    int               backPitch;    int               depthOffset;    int               depthPitch;    int               spanOffset;    int               textureOffset;    int               textureSize;    int               log2TexGran;				/* Saved scissor values */    CARD32            sc_left;    CARD32            sc_right;    CARD32            sc_top;    CARD32            sc_bottom;    CARD32            re_top_left;    CARD32            re_width_height;    CARD32            aux_sc_cntl;    int               irq;    CARD32            gen_int_cntl;    Bool              DMAForXv;#endif    XF86VideoAdaptorPtr adaptor;    void              (*VideoTimerCallback)(ScrnInfoPtr, Time);    int               videoKey;    Bool              showCache;    OptionInfoPtr     Options;    Bool              isDFP;    Bool              isPro2;    I2CBusPtr         pI2CBus;    CARD32            DDCReg;    Bool              VGAAccess;    /****** Added for dualhead support *******************/    BOOL              HasCRTC2;     /* M3/M4 */    BOOL              IsSecondary;  /* second Screen */    BOOL	      IsPrimary;    /* primary Screen */    BOOL              UseCRT;       /* force use CRT port as primary */    BOOL              SwitchingMode;    R128MonitorType DisplayType;  /* Monitor connected on*/} R128InfoRec, *R128InfoPtr;#define R128WaitForFifo(pScrn, entries)                                      \do {                                                                         \    if (info->fifo_slots < entries) R128WaitForFifoFunction(pScrn, entries); \    info->fifo_slots -= entries;                                             \} while (0)extern R128EntPtr R128EntPriv(ScrnInfoPtr pScrn);extern void        R128WaitForFifoFunction(ScrnInfoPtr pScrn, int entries);extern void        R128WaitForIdle(ScrnInfoPtr pScrn);extern void        R128EngineReset(ScrnInfoPtr pScrn);extern void        R128EngineFlush(ScrnInfoPtr pScrn);extern unsigned    R128INPLL(ScrnInfoPtr pScrn, int addr);extern void        R128WaitForVerticalSync(ScrnInfoPtr pScrn);extern Bool        R128AccelInit(ScreenPtr pScreen);extern void        R128EngineInit(ScrnInfoPtr pScrn);extern Bool        R128CursorInit(ScreenPtr pScreen);extern Bool        R128DGAInit(ScreenPtr pScreen);extern int         R128MinBits(int val);extern void        R128InitVideo(ScreenPtr pScreen);#ifdef XF86DRIextern Bool        R128DRIScreenInit(ScreenPtr pScreen);extern void        R128DRICloseScreen(ScreenPtr pScreen);extern Bool        R128DRIFinishScreenInit(ScreenPtr pScreen);#define R128CCE_START(pScrn, info)					\do {									\    int _ret = drmCommandNone(info->drmFD, DRM_R128_CCE_START);		\    if (_ret) {								\	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\		   "%s: CCE start %d\n", __FUNCTION__, _ret);		\    }									\} while (0)#define R128CCE_STOP(pScrn, info)					\do {									\    int _ret = R128CCEStop(pScrn);					\    if (_ret) {								\	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\		   "%s: CCE stop %d\n", __FUNCTION__, _ret);		\    }									\} while (0)#define R128CCE_RESET(pScrn, info)					\do {									\    if (info->directRenderingEnabled					\	&& R128CCE_USE_RING_BUFFER(info->CCEMode)) {			\	int _ret = drmCommandNone(info->drmFD, DRM_R128_CCE_RESET);	\	if (_ret) {							\	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\		       "%s: CCE reset %d\n", __FUNCTION__, _ret);	\	}								\    }									\} while (0)extern drmBufPtr   R128CCEGetBuffer(ScrnInfoPtr pScrn);#endifextern void        R128CCEFlushIndirect(ScrnInfoPtr pScrn, int discard);extern void        R128CCEReleaseIndirect(ScrnInfoPtr pScrn);extern void        R128CCEWaitForIdle(ScrnInfoPtr pScrn);extern int         R128CCEStop(ScrnInfoPtr pScrn);#define CCE_PACKET0( reg, n )						\	(R128_CCE_PACKET0 | ((n) << 16) | ((reg) >> 2))#define CCE_PACKET1( reg0, reg1 )					\	(R128_CCE_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2))#define CCE_PACKET2()							\	(R128_CCE_PACKET2)#define CCE_PACKET3( pkt, n )						\	(R128_CCE_PACKET3 | (pkt) | ((n) << 16))#define R128_VERBOSE	0#define RING_LOCALS	CARD32 *__head; int __count;#define R128CCE_REFRESH(pScrn, info)					\do {									\   if ( R128_VERBOSE ) {						\      xf86DrvMsg( pScrn->scrnIndex, X_INFO, "REFRESH( %d ) in %s\n",	\		  !info->CCEInUse , __FUNCTION__ );			\   }									\   if ( !info->CCEInUse ) {						\      R128CCEWaitForIdle(pScrn);					\      BEGIN_RING( 6 );							\      OUT_RING_REG( R128_RE_TOP_LEFT,     info->re_top_left );		\      OUT_RING_REG( R128_RE_WIDTH_HEIGHT, info->re_width_height );	\      OUT_RING_REG( R128_AUX_SC_CNTL,     info->aux_sc_cntl );		\      ADVANCE_RING();							\      info->CCEInUse = TRUE;						\   }									\} while (0)#define BEGIN_RING( n ) do {						\   if ( R128_VERBOSE ) {						\      xf86DrvMsg( pScrn->scrnIndex, X_INFO,				\		  "BEGIN_RING( %d ) in %s\n", n, __FUNCTION__ );	\   }									\   if ( !info->indirectBuffer ) {					\      info->indirectBuffer = R128CCEGetBuffer( pScrn );			\      info->indirectStart = 0;						\   } else if ( (info->indirectBuffer->used + 4*(n)) >			\                info->indirectBuffer->total ) {				\      R128CCEFlushIndirect( pScrn, 1 );					\   }									\   __head = (pointer)((char *)info->indirectBuffer->address +		\		       info->indirectBuffer->used);			\   __count = 0;								\} while (0)#define ADVANCE_RING() do {						\   if ( R128_VERBOSE ) {						\      xf86DrvMsg( pScrn->scrnIndex, X_INFO,				\		  "ADVANCE_RING() used: %d+%d=%d/%d\n",			\		  info->indirectBuffer->used - info->indirectStart,	\		  __count * (int)sizeof(CARD32),			\		  info->indirectBuffer->used - info->indirectStart +	\		  __count * (int)sizeof(CARD32),			\		  info->indirectBuffer->total - info->indirectStart );	\   }									\   info->indirectBuffer->used += __count * (int)sizeof(CARD32);		\} while (0)#define OUT_RING( x ) do {						\   if ( R128_VERBOSE ) {						\      xf86DrvMsg( pScrn->scrnIndex, X_INFO,				\		  "   OUT_RING( 0x%08x )\n", (unsigned int)(x) );	\   }									\   MMIO_OUT32(&__head[__count++], 0, (x));				\} while (0)#define OUT_RING_REG( reg, val )					\do {									\   OUT_RING( CCE_PACKET0( reg, 0 ) );					\   OUT_RING( val );							\} while (0)#define FLUSH_RING()							\do {									\   if ( R128_VERBOSE )							\      xf86DrvMsg( pScrn->scrnIndex, X_INFO,				\		  "FLUSH_RING in %s\n", __FUNCTION__ );			\   if ( info->indirectBuffer ) {					\      R128CCEFlushIndirect( pScrn, 0 );					\   }									\} while (0)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -