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

📄 radeon.h

📁 ati driver
💻 H
📖 第 1 页 / 共 2 页
字号:
    int               scanline_w;    int               scanline_h;    int               scanline_h_w;    int               scanline_words;    int               scanline_direct;    int               scanline_bpp;     /* Only used for ImageWrite */    int               scanline_fg;    int               scanline_bg;    int               scanline_hpass;    int               scanline_x1clip;    int               scanline_x2clip;				/* Saved values for DashedTwoPointLine */    int               dashLen;    CARD32            dashPattern;    int               dash_fg;    int               dash_bg;    DGAModePtr        DGAModes;    int               numDGAModes;    Bool              DGAactive;    int               DGAViewportStatus;    DGAFunctionRec    DGAFuncs;    RADEONFBLayout    CurrentLayout;#ifdef XF86DRI    Bool              noBackBuffer;    Bool              directRenderingEnabled;    DRIInfoPtr        pDRIInfo;    int               drmFD;    int               numVisualConfigs;    __GLXvisualConfig *pVisualConfigs;    RADEONConfigPrivPtr pVisualConfigsPriv;    drmHandle         fbHandle;    drmSize           registerSize;    drmHandle         registerHandle;    Bool              IsPCI;            /* Current card is a PCI card */    drmSize           pciSize;    drmHandle         pciMemHandle;    unsigned char     *PCI;             /* Map */    Bool              depthMoves;       /* Enable depth moves -- slow! */    Bool              allowPageFlip;    /* Enable 3d page flipping */    Bool              have3DWindows;    /* Are there any 3d clients? */    int               drmMinor;    drmSize           gartSize;    drmHandle         agpMemHandle;     /* Handle from drmAgpAlloc */    unsigned long     gartOffset;    unsigned char     *AGP;             /* Map */    int               agpMode;    int               agpFastWrite;    CARD32            pciCommand;    Bool              CPRuns;           /* CP is running */    Bool              CPInUse;          /* CP has been used by X server */    Bool              CPStarted;        /* CP has started */    int               CPMode;           /* CP mode that server/clients use */    int               CPFifoSize;       /* Size of the CP command FIFO */    int               CPusecTimeout;    /* CP timeout in usecs */				/* CP ring buffer data */    unsigned long     ringStart;        /* Offset into GART space */    drmHandle         ringHandle;       /* Handle from drmAddMap */    drmSize           ringMapSize;      /* Size of map */    int               ringSize;         /* Size of ring (in MB) */    unsigned char     *ring;            /* Map */    int               ringSizeLog2QW;    unsigned long     ringReadOffset;   /* Offset into GART space */    drmHandle         ringReadPtrHandle; /* Handle from drmAddMap */    drmSize           ringReadMapSize;  /* Size of map */    unsigned char     *ringReadPtr;     /* Map */				/* CP vertex/indirect buffer data */    unsigned long     bufStart;         /* Offset into GART space */    drmHandle         bufHandle;        /* Handle from drmAddMap */    drmSize           bufMapSize;       /* Size of map */    int               bufSize;          /* Size of buffers (in MB) */    unsigned char     *buf;             /* Map */    int               bufNumBufs;       /* Number of buffers */    drmBufMapPtr      buffers;          /* Buffer map */				/* CP GART Texture data */    unsigned long     gartTexStart;      /* Offset into GART space */    drmHandle         gartTexHandle;     /* Handle from drmAddMap */    drmSize           gartTexMapSize;    /* Size of map */    int               gartTexSize;       /* Size of GART tex space (in MB) */    unsigned char     *gartTex;          /* Map */    int               log2GARTTexGran;				/* CP 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               textureOffset;    int               textureSize;    int               log2TexGran;    CARD32            frontPitchOffset;    CARD32            backPitchOffset;    CARD32            depthPitchOffset;    CARD32            dst_pitch_offset;				/* offscreen memory management */    int               backLines;    FBAreaPtr         backArea;    int               depthTexLines;    FBAreaPtr         depthTexArea;				/* 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;#ifdef PER_CONTEXT_SAREA    int               perctx_sarea_size;#endif#endif				/* XVideo */    XF86VideoAdaptorPtr adaptor;    void              (*VideoTimerCallback)(ScrnInfoPtr, Time);    FBLinearPtr       videoLinear;    int               videoKey;				/* general */    Bool              showCache;    OptionInfoPtr     Options;#ifdef XFree86LOADER    XF86ModReqInfo    xaaReq;#endif} RADEONInfoRec, *RADEONInfoPtr;#define RADEONWaitForFifo(pScrn, entries)				\do {									\    if (info->fifo_slots < entries)					\	RADEONWaitForFifoFunction(pScrn, entries);			\    info->fifo_slots -= entries;					\} while (0)extern void        RADEONWaitForFifoFunction(ScrnInfoPtr pScrn, int entries);extern void        RADEONWaitForIdleMMIO(ScrnInfoPtr pScrn);#ifdef XF86DRIextern void        RADEONWaitForIdleCP(ScrnInfoPtr pScrn);#endifextern void        RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y,				       int clone);extern void        RADEONEngineReset(ScrnInfoPtr pScrn);extern void        RADEONEngineFlush(ScrnInfoPtr pScrn);extern void        RADEONEngineRestore(ScrnInfoPtr pScrn);extern unsigned    RADEONINPLL(ScrnInfoPtr pScrn, int addr);extern void        RADEONWaitForVerticalSync(ScrnInfoPtr pScrn);extern void        RADEONWaitForVerticalSync2(ScrnInfoPtr pScrn);extern void        RADEONSelectBuffer(ScrnInfoPtr pScrn, int buffer);extern Bool        RADEONAccelInit(ScreenPtr pScreen);extern void        RADEONEngineInit(ScrnInfoPtr pScrn);extern Bool        RADEONCursorInit(ScreenPtr pScreen);extern Bool        RADEONDGAInit(ScreenPtr pScreen);extern int         RADEONMinBits(int val);extern void        RADEONInitVideo(ScreenPtr pScreen);extern void        RADEONResetVideo(ScrnInfoPtr pScrn);extern void        R300CGWorkaround(ScrnInfoPtr pScrn);#ifdef XF86DRIextern Bool        RADEONDRIScreenInit(ScreenPtr pScreen);extern void        RADEONDRICloseScreen(ScreenPtr pScreen);extern void        RADEONDRIResume(ScreenPtr pScreen);extern Bool        RADEONDRIFinishScreenInit(ScreenPtr pScreen);extern drmBufPtr   RADEONCPGetBuffer(ScrnInfoPtr pScrn);extern void        RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard);extern void        RADEONCPReleaseIndirect(ScrnInfoPtr pScrn);extern int         RADEONCPStop(ScrnInfoPtr pScrn,  RADEONInfoPtr info);#define RADEONCP_START(pScrn, info)					\do {									\    int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_START);	\    if (_ret) {								\	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\		   "%s: CP start %d\n", __FUNCTION__, _ret);		\    }									\    info->CPStarted = TRUE;                                             \} while (0)#define RADEONCP_STOP(pScrn, info)					\do {									\    int _ret;								\     if (info->CPStarted) {						\        _ret = RADEONCPStop(pScrn, info);				\        if (_ret) {							\	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\		   "%s: CP stop %d\n", __FUNCTION__, _ret);		\        }								\        info->CPStarted = FALSE;                                        \   }									\    RADEONEngineRestore(pScrn);						\    info->CPRuns = FALSE;						\} while (0)#define RADEONCP_RESET(pScrn, info)					\do {									\    if (RADEONCP_USE_RING_BUFFER(info->CPMode)) {			\	int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_RESET);	\	if (_ret) {							\	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\		       "%s: CP reset %d\n", __FUNCTION__, _ret);	\	}								\    }									\} while (0)#define RADEONCP_REFRESH(pScrn, info)					\do {									\    if (!info->CPInUse) {						\	RADEON_WAIT_UNTIL_IDLE();					\	BEGIN_RING(6);							\	OUT_RING_REG(RADEON_RE_TOP_LEFT,     info->re_top_left);	\	OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, info->re_width_height);	\	OUT_RING_REG(RADEON_AUX_SC_CNTL,     info->aux_sc_cntl);	\	ADVANCE_RING();							\	info->CPInUse = TRUE;						\    }									\} while (0)#define CP_PACKET0(reg, n)						\	(RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2))#define CP_PACKET1(reg0, reg1)						\	(RADEON_CP_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2))#define CP_PACKET2()							\	(RADEON_CP_PACKET2)#define CP_PACKET3(pkt, n)						\	(RADEON_CP_PACKET3 | (pkt) | ((n) << 16))#define RADEON_VERBOSE	0#define RING_LOCALS	CARD32 *__head = NULL; int __count = 0#define BEGIN_RING(n) do {						\    if (RADEON_VERBOSE) {						\	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\		   "BEGIN_RING(%d) in %s\n", n, __FUNCTION__);		\    }									\    if (!info->indirectBuffer) {					\	info->indirectBuffer = RADEONCPGetBuffer(pScrn);		\	info->indirectStart = 0;					\    } else if (info->indirectBuffer->used + (n) * (int)sizeof(CARD32) >	\	       info->indirectBuffer->total) {				\	RADEONCPFlushIndirect(pScrn, 1);				\    }									\    __head = (pointer)((char *)info->indirectBuffer->address +		\		       info->indirectBuffer->used);			\    __count = 0;							\} while (0)#define ADVANCE_RING() do {						\    if (RADEON_VERBOSE) {						\	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\		   "ADVANCE_RING() start: %d used: %d count: %d\n",	\		   info->indirectStart,					\		   info->indirectBuffer->used,				\		   __count * sizeof(CARD32));				\    }									\    info->indirectBuffer->used += __count * (int)sizeof(CARD32);	\} while (0)#define OUT_RING(x) do {						\    if (RADEON_VERBOSE) {						\	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\		   "   OUT_RING(0x%08x)\n", (unsigned int)(x));		\    }									\    __head[__count++] = (x);						\} while (0)#define OUT_RING_REG(reg, val)						\do {									\    OUT_RING(CP_PACKET0(reg, 0));					\    OUT_RING(val);							\} while (0)#define FLUSH_RING()							\do {									\    if (RADEON_VERBOSE)							\	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\		   "FLUSH_RING in %s\n", __FUNCTION__);			\    if (info->indirectBuffer) {						\	RADEONCPFlushIndirect(pScrn, 0);				\    }									\} while (0)#define RADEON_WAIT_UNTIL_2D_IDLE()					\do {									\    BEGIN_RING(2);							\    OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));				\    OUT_RING((RADEON_WAIT_2D_IDLECLEAN |				\	      RADEON_WAIT_HOST_IDLECLEAN));				\    ADVANCE_RING();							\} while (0)#define RADEON_WAIT_UNTIL_3D_IDLE()					\do {									\    BEGIN_RING(2);							\    OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));				\    OUT_RING((RADEON_WAIT_3D_IDLECLEAN |				\	      RADEON_WAIT_HOST_IDLECLEAN));				\    ADVANCE_RING();							\} while (0)#define RADEON_WAIT_UNTIL_IDLE()					\do {									\    if (RADEON_VERBOSE) {						\	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\		   "WAIT_UNTIL_IDLE() in %s\n", __FUNCTION__);		\    }									\    BEGIN_RING(2);							\    OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));				\    OUT_RING((RADEON_WAIT_2D_IDLECLEAN |				\	      RADEON_WAIT_3D_IDLECLEAN |				\	      RADEON_WAIT_HOST_IDLECLEAN));				\    ADVANCE_RING();							\} while (0)#define RADEON_FLUSH_CACHE()						\do {									\    BEGIN_RING(2);							\    OUT_RING(CP_PACKET0(RADEON_RB2D_DSTCACHE_CTLSTAT, 0));		\    OUT_RING(RADEON_RB2D_DC_FLUSH);					\    ADVANCE_RING();							\} while (0)#define RADEON_PURGE_CACHE()						\do {									\    BEGIN_RING(2);							\    OUT_RING(CP_PACKET0(RADEON_RB2D_DSTCACHE_CTLSTAT, 0));		\    OUT_RING(RADEON_RB2D_DC_FLUSH_ALL);					\    ADVANCE_RING();							\} while (0)#endif /* XF86DRI */#endif /* _RADEON_H_ */

⌨️ 快捷键说明

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