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

📄 r128.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
📖 第 1 页 / 共 2 页
字号:
    GLboolean         IsPCI;            /* Current card is a PCI card */    drmSize           pciSize;    drm_handle_t         pciMemHandle;    unsigned char     *PCI;             /* Map */    GLboolean         allowPageFlip;    /* Enable 3d page flipping */    GLboolean         have3DWindows;    /* Are there any 3d clients? */    int               drmMinor;    drmSize           agpSize;    drm_handle_t         agpMemHandle;     /* Handle from drmAgpAlloc */    unsigned long     agpOffset;    unsigned char     *AGP;             /* Map */    int               agpMode;    GLboolean         CCEInUse;         /* CCE is currently active */    int               CCEMode;          /* CCE mode that server/clients use */    int               CCEFifoSize;      /* Size of the CCE command FIFO */    GLboolean         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) */    unsigned char     *ring;            /* Map */    int               ringSizeLog2QW;    unsigned long     ringReadOffset;   /* Offset into AGP space */    drm_handle_t         ringReadPtrHandle; /* Handle from drmAddMap */    drmSize           ringReadMapSize;  /* Size of map */    unsigned char     *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) */    unsigned char     *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) */    unsigned char     *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 */    u_int32_t            sc_left;    u_int32_t            sc_right;    u_int32_t            sc_top;    u_int32_t            sc_bottom;    u_int32_t            re_top_left;    u_int32_t            re_width_height;    u_int32_t            aux_sc_cntl;    int               irq;    u_int32_t            gen_int_cntl;    GLboolean              DMAForXv;} R128InfoRec, *R128InfoPtr;#define R128WaitForFifo(pScrn, entries)                                      \do {                                                                         \    if (info->fifo_slots < entries) R128WaitForFifoFunction(pScrn, entries); \    info->fifo_slots -= entries;                                             \} while (0)extern void        r128WaitForFifoFunction(const DRIDriverContext *ctx, int entries);extern void        r128WaitForIdle(const DRIDriverContext *ctx);extern void        r128WaitForVerticalSync(const DRIDriverContext *ctx);extern GLboolean        r128AccelInit(const DRIDriverContext *ctx);extern void        r128EngineInit(const DRIDriverContext *ctx);extern GLboolean        r128CursorInit(const DRIDriverContext *ctx);extern GLboolean        r128DGAInit(const DRIDriverContext *ctx);extern void        r128InitVideo(const DRIDriverContext *ctx);extern GLboolean        r128DRIScreenInit(const DRIDriverContext *ctx);extern void        r128DRICloseScreen(const DRIDriverContext *ctx);extern GLboolean        r128DRIFinishScreenInit(const DRIDriverContext *ctx);#define R128CCE_START(ctx, info)					\do {									\    int _ret = drmCommandNone(ctx->drmFD, DRM_R128_CCE_START);		\    if (_ret) {								\	   fprintf(stderr,				\		   "%s: CCE start %d\n", __FUNCTION__, _ret);		\    }									\} while (0)#define R128CCE_STOP(ctx, info)					\do {									\    int _ret = R128CCEStop(ctx);					\    if (_ret) {								\	   fprintf(stderr,				\		   "%s: CCE stop %d\n", __FUNCTION__, _ret);		\    }									\} while (0)#define R128CCE_RESET(ctx, info)					\do {									\    if (info->directRenderingEnabled					\	&& R128CCE_USE_RING_BUFFER(info->CCEMode)) {			\	int _ret = drmCommandNone(info->drmFD, DRM_R128_CCE_RESET);	\	if (_ret) {							\	       fprintf(stderr,			\		       "%s: CCE reset %d\n", __FUNCTION__, _ret);	\	}								\    }									\} while (0)    #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	u_int32_t *__head; int __count;#define R128CCE_REFRESH(pScrn, info)					\do {									\   if ( R128_VERBOSE ) {						\         fprintf(stderr, "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 ) {						\         fprintf(stderr,				\		  "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 ) {						\         fprintf(stderr,				\		  "ADVANCE_RING() used: %d+%d=%d/%d\n",			\		  info->indirectBuffer->used - info->indirectStart,	\		  __count * sizeof(u_int32_t),				\		  info->indirectBuffer->used - info->indirectStart +	\		  __count * sizeof(u_int32_t),				\		  info->indirectBuffer->total - info->indirectStart );	\   }									\   info->indirectBuffer->used += __count * (int)sizeof(u_int32_t);		\} while (0)#define OUT_RING( x ) do {						\   if ( R128_VERBOSE ) {						\         fprintf(stderr,				\		  "   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 )							\         fprintf(stderr,				\		  "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 + -