亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? radeon_dri.c

?? x.org上有關(guān)ati系列顯卡最新驅(qū)動(dòng)
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	drmAgpRelease(info->drmFD);	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] %d kB allocated with handle 0x%08x\n",	       info->gartSize*1024, info->agpMemHandle);    if (drmAgpBind(info->drmFD,		   info->agpMemHandle, info->gartOffset) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not bind\n");	drmAgpFree(info->drmFD, info->agpMemHandle);	drmAgpRelease(info->drmFD);	return FALSE;    }    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,		  DRM_AGP, DRM_READ_ONLY, &info->ringHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not add ring mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] ring handle = 0x%08x\n", info->ringHandle);    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,	       &info->ring) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] Ring mapped at 0x%08lx\n",	       (unsigned long)info->ring);    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,		  DRM_AGP, DRM_READ_ONLY, &info->ringReadPtrHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not add ring read ptr mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[agp] ring read ptr handle = 0x%08x\n",	       info->ringReadPtrHandle);    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,	       &info->ringReadPtr) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not map ring read ptr\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] Ring read ptr mapped at 0x%08lx\n",	       (unsigned long)info->ringReadPtr);    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,		  DRM_AGP, 0, &info->bufHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not add vertex/indirect buffers mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[agp] vertex/indirect buffers handle = 0x%08x\n",	       info->bufHandle);    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,	       &info->buf) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not map vertex/indirect buffers\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] Vertex/indirect buffers mapped at 0x%08lx\n",	       (unsigned long)info->buf);    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize,		  DRM_AGP, 0, &info->gartTexHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not add GART texture map mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[agp] GART texture map handle = 0x%08x\n",	       info->gartTexHandle);    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,	       &info->gartTex) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[agp] Could not map GART texture map\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[agp] GART Texture map mapped at 0x%08lx\n",	       (unsigned long)info->gartTex);    RADEONSetAgpBase(info);    return TRUE;}/* Initialize the PCI GART state.  Request memory for use in PCI space, * and initialize the Radeon registers to point to that memory. */static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen){    int  ret;    int  flags = DRM_READ_ONLY | DRM_LOCKED | DRM_KERNEL;    ret = drmScatterGatherAlloc(info->drmFD, info->gartSize*1024*1024,				&info->pciMemHandle);    if (ret < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Out of memory (%d)\n", ret);	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] %d kB allocated with handle 0x%08x\n",	       info->gartSize*1024, info->pciMemHandle);    RADEONDRIInitGARTValues(info);    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,		  DRM_SCATTER_GATHER, flags, &info->ringHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not add ring mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] ring handle = 0x%08x\n", info->ringHandle);    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,	       &info->ring) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Ring mapped at 0x%08lx\n",	       (unsigned long)info->ring);    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Ring contents 0x%08lx\n",	       *(unsigned long *)(pointer)info->ring);    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,		  DRM_SCATTER_GATHER, flags, &info->ringReadPtrHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not add ring read ptr mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[pci] ring read ptr handle = 0x%08x\n",	       info->ringReadPtrHandle);    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,	       &info->ringReadPtr) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not map ring read ptr\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Ring read ptr mapped at 0x%08lx\n",	       (unsigned long)info->ringReadPtr);    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Ring read ptr contents 0x%08lx\n",	       *(unsigned long *)(pointer)info->ringReadPtr);    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,		  DRM_SCATTER_GATHER, 0, &info->bufHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not add vertex/indirect buffers mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[pci] vertex/indirect buffers handle = 0x%08x\n",	       info->bufHandle);    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,	       &info->buf) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not map vertex/indirect buffers\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Vertex/indirect buffers mapped at 0x%08lx\n",	       (unsigned long)info->buf);    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] Vertex/indirect buffers contents 0x%08lx\n",	       *(unsigned long *)(pointer)info->buf);    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize,		  DRM_SCATTER_GATHER, 0, &info->gartTexHandle) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not add GART texture map mapping\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO, 	       "[pci] GART texture map handle = 0x%08x\n",	       info->gartTexHandle);    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,	       &info->gartTex) < 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[pci] Could not map GART texture map\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[pci] GART Texture map mapped at 0x%08lx\n",	       (unsigned long)info->gartTex);    return TRUE;}/* Add a map for the MMIO registers that will be accessed by any * DRI-based clients. */static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen){				/* Map registers */    info->registerSize = info->MMIOSize;    if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize,		  DRM_REGISTERS, DRM_READ_ONLY, &info->registerHandle) < 0) {	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[drm] register handle = 0x%08x\n", info->registerHandle);    return TRUE;}/* Initialize the kernel data structures */static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen){    ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];    int            cpp   = info->CurrentLayout.pixel_bytes;    drmRadeonInit  drmInfo;    memset(&drmInfo, 0, sizeof(drmRadeonInit));    if ( info->ChipFamily >= CHIP_FAMILY_R300 )       drmInfo.func             = DRM_RADEON_INIT_R300_CP;    else    if ( info->ChipFamily >= CHIP_FAMILY_R200 )       drmInfo.func		= DRM_RADEON_INIT_R200_CP;    else       drmInfo.func		= DRM_RADEON_INIT_CP;    drmInfo.sarea_priv_offset   = sizeof(XF86DRISAREARec);    drmInfo.is_pci              = (info->cardType!=CARD_AGP);    drmInfo.cp_mode             = info->CPMode;    drmInfo.gart_size           = info->gartSize*1024*1024;    drmInfo.ring_size           = info->ringSize*1024*1024;    drmInfo.usec_timeout        = info->CPusecTimeout;    drmInfo.fb_bpp              = info->CurrentLayout.pixel_code;    drmInfo.depth_bpp           = (info->depthBits - 8) * 2;    drmInfo.front_offset        = info->frontOffset;    drmInfo.front_pitch         = info->frontPitch * cpp;    drmInfo.back_offset         = info->backOffset;    drmInfo.back_pitch          = info->backPitch * cpp;    drmInfo.depth_offset        = info->depthOffset;    drmInfo.depth_pitch         = info->depthPitch * drmInfo.depth_bpp / 8;    drmInfo.fb_offset           = info->fbHandle;    drmInfo.mmio_offset         = info->registerHandle;    drmInfo.ring_offset         = info->ringHandle;    drmInfo.ring_rptr_offset    = info->ringReadPtrHandle;    drmInfo.buffers_offset      = info->bufHandle;    drmInfo.gart_textures_offset= info->gartTexHandle;    if (drmCommandWrite(info->drmFD, DRM_RADEON_CP_INIT,			&drmInfo, sizeof(drmRadeonInit)) < 0)	return FALSE;    /* DRM_RADEON_CP_INIT does an engine reset, which resets some engine     * registers back to their default values, so we need to restore     * those engine register here.     */    RADEONEngineRestore(pScrn);    return TRUE;}static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen){    drmRadeonMemInitHeap drmHeap;    /* Start up the simple memory manager for GART space */    drmHeap.region = RADEON_MEM_REGION_GART;    drmHeap.start  = 0;    drmHeap.size   = info->gartTexMapSize;    if (drmCommandWrite(info->drmFD, DRM_RADEON_INIT_HEAP,			&drmHeap, sizeof(drmHeap))) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[drm] Failed to initialize GART heap manager\n");    } else {	xf86DrvMsg(pScreen->myNum, X_INFO,		   "[drm] Initialized kernel GART heap manager, %d\n",		   info->gartTexMapSize);    }}/* Add a map for the vertex buffers that will be accessed by any * DRI-based clients. */static Bool RADEONDRIBufInit(RADEONInfoPtr info, ScreenPtr pScreen){				/* Initialize vertex buffers */    info->bufNumBufs = drmAddBufs(info->drmFD,				  info->bufMapSize / RADEON_BUFFER_SIZE,				  RADEON_BUFFER_SIZE,				  (info->cardType!=CARD_AGP) ? DRM_SG_BUFFER : DRM_AGP_BUFFER,				  info->bufStart);    if (info->bufNumBufs <= 0) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[drm] Could not create vertex/indirect buffers list\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[drm] Added %d %d byte vertex/indirect buffers\n",	       info->bufNumBufs, RADEON_BUFFER_SIZE);    if (!(info->buffers = drmMapBufs(info->drmFD))) {	xf86DrvMsg(pScreen->myNum, X_ERROR,		   "[drm] Failed to map vertex/indirect buffers list\n");	return FALSE;    }    xf86DrvMsg(pScreen->myNum, X_INFO,	       "[drm] Mapped %d vertex/indirect buffers\n",	       info->buffers->count);    return TRUE;}static void RADEONDRIIrqInit(RADEONInfoPtr info, ScreenPtr pScreen){    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];    if (!info->irq) {	info->irq = drmGetInterruptFromBusID(	    info->drmFD,	    ((pciConfigPtr)info->PciInfo->thisCard)->busnum,	    ((pciConfigPtr)info->PciInfo->thisCard)->devnum,	    ((pciConfigPtr)info->PciInfo->thisCard)->funcnum);	if ((drmCtlInstHandler(info->drmFD, info->irq)) != 0) {	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,		       "[drm] failure adding irq handler, "		       "there is a device already using that irq\n"		       "[drm] falling back to irq-free operation\n");	    info->irq = 0;	} else {	    unsigned char *RADEONMMIO = info->MMIO;	    info->ModeReg.gen_int_cntl = INREG( RADEON_GEN_INT_CNTL );	}    }    if (info->irq)	xf86DrvMsg(pScrn->scrnIndex, X_INFO,		   "[drm] dma control initialized, using IRQ %d\n",		   info->irq);}/* Initialize the CP state, and start the CP (if used by the X server) */static void RADEONDRICPInit(ScrnInfoPtr pScrn){    RADEONInfoPtr  info = RADEONPTR(pScrn);				/* Turn on bus mastering */    info->BusCntl &= ~RADEON_BUS_MASTER_DIS;				/* Make sure the CP is on for the X server */    RADEONCP_START(pScrn, info);#ifdef USE_XAA    if (!info->useEXA)	info->dst_pitch_offset = info->frontPitchOffset;#endif}/* Get the DRM version and do some basic useability checks of DRI */Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn){    RADEONInfoPtr  info    = RADEONPTR(pScrn);    int            major, minor, patch, fd;    int		   req_minor, req_patch;    char           *busId;    /* Check that the GLX, DRI, and DRM modules have been loaded by testing     * for known symbols in each module.     */    if (!xf86LoaderCheckSymbol("GlxSetVisualConfigs")) return FALSE;    if (!xf86LoaderCheckSymbol("drmAvailable"))        return FALSE;    if (!xf86LoaderCheckSymbol("DRIQueryVersion")) {      xf86DrvMsg(pScrn->scrnIndex, X_ERROR,		 "[dri] RADEONDRIGetVersion failed (libdri.a too old)\n"		 "[dri] Disabling DRI.\n");      return FALSE;    }    /* Check the DRI version */    DRIQueryVersion(&major, &minor, &patch);    if (major != DRIINFO_MAJOR_VERSION || minor < DRIINFO_MINOR_VERSION) {	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,		   "[dri] RADEONDRIGetVersion failed because of a version "		   "mismatch.\n"		   "[dri] libdri version is %d.%d.%d but version %d.%d.x is "		   "needed.\n"		   "[dri] Disabling DRI.\n",		   major, minor, patch,                   DRIINFO_MAJOR_VERSION, DRIINFO_MINOR_VERSION);	return FALSE;    }    /* Check the lib version */    if (xf86LoaderCheckSymbol("drmGetLibVersion"))

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区三区在线| 日韩一卡二卡三卡| 国产精品一区不卡| 六月丁香婷婷久久| 视频一区视频二区中文字幕| 一区二区三区免费网站| 欧美日韩一级视频| www.欧美日韩国产在线| 国产mv日韩mv欧美| 一本色道久久综合亚洲aⅴ蜜桃 | 91久久线看在观草草青青| 久久成人麻豆午夜电影| 激情国产一区二区| 国产主播一区二区| 国产suv一区二区三区88区| 精品一区二区三区在线观看| 精品一区二区三区在线观看| 成人免费va视频| 97久久人人超碰| 欧美日韩小视频| 精品少妇一区二区| 欧美激情一区二区在线| 亚洲最快最全在线视频| 看片的网站亚洲| 国产高清无密码一区二区三区| 成人黄色免费短视频| 欧美性猛片xxxx免费看久爱| 制服丝袜av成人在线看| 日本一区二区三区在线不卡 | 欧美日韩免费电影| 久久久久久久久久久久久久久99| 国产精品无人区| 不卡的av网站| 欧美人妖巨大在线| 亚洲欧美一区二区三区久本道91| 一区二区三区丝袜| 国产又黄又大久久| 欧美日韩高清影院| 国产一区二区伦理片| 午夜精品视频在线观看| 老司机精品视频导航| 欧美天天综合网| 91黄视频在线| 国产一区二区三区国产| 91久久国产综合久久| 精品国产免费视频| 亚洲电影激情视频网站| kk眼镜猥琐国模调教系列一区二区| 欧美日韩国产精品成人| 中文字幕日韩一区二区| 极品少妇一区二区| 欧美精三区欧美精三区| 亚洲丝袜精品丝袜在线| 国产在线麻豆精品观看| 制服丝袜av成人在线看| 亚洲综合一区二区三区| 成人av免费在线| 国产欧美一二三区| 麻豆精品一区二区av白丝在线| 色综合色综合色综合色综合色综合| 久久青草欧美一区二区三区| 日韩电影在线观看电影| 欧美亚洲国产怡红院影院| 国产精品免费看片| 懂色av一区二区三区蜜臀| 精品久久久久久久一区二区蜜臀| 视频精品一区二区| 欧美浪妇xxxx高跟鞋交| 亚洲在线视频一区| 欧美这里有精品| 亚洲欧美日韩国产综合在线| www.亚洲在线| 中文字幕欧美日本乱码一线二线| 国产一区二区电影| 久久精品视频网| 国产一区二区伦理片| 91.com视频| 亚洲一区二区av电影| 色综合天天视频在线观看| 一区二区三区免费观看| 一本久道久久综合中文字幕 | 精品人伦一区二区色婷婷| 日本人妖一区二区| 欧美mv和日韩mv国产网站| 美国十次了思思久久精品导航| 日韩一区二区三区在线观看| 奇米精品一区二区三区四区| 日韩欧美不卡一区| 国产一区二区影院| 国产精品国产三级国产普通话99 | 99麻豆久久久国产精品免费 | 在线观看日韩高清av| 亚洲女人****多毛耸耸8| 欧美性受极品xxxx喷水| 亚洲成人激情av| 91精品国产高清一区二区三区蜜臀| 亚洲国产精品久久久久秋霞影院 | 亚洲成人自拍一区| 日韩欧美区一区二| 国产高清精品在线| 亚洲精品视频一区| 日韩三级电影网址| 国产成人在线电影| 亚洲五码中文字幕| 日韩欧美成人一区二区| 99国产麻豆精品| 日本欧洲一区二区| 国产精品免费aⅴ片在线观看| 日本韩国欧美国产| 日本不卡中文字幕| 最新欧美精品一区二区三区| 51午夜精品国产| 成人午夜视频在线| 亚洲成a人v欧美综合天堂| 日韩免费高清视频| 中文字幕+乱码+中文字幕一区| 99久久99久久精品免费观看| 亚洲一区二三区| 久久精品人人做人人综合| 97久久精品人人做人人爽| 日本不卡视频在线| 夜夜嗨av一区二区三区网页| 精品国产乱码久久| 欧美日韩和欧美的一区二区| 国产成人精品一区二| 日本网站在线观看一区二区三区| 国产精品人人做人人爽人人添| 制服丝袜中文字幕一区| 99精品国产一区二区三区不卡| 美女在线视频一区| 亚洲不卡一区二区三区| 中文字幕av一区二区三区免费看| 欧美一三区三区四区免费在线看| 91麻豆福利精品推荐| 国产aⅴ综合色| 九九九精品视频| 免费日韩伦理电影| 午夜视频一区二区三区| 亚洲精品国久久99热| 国产精品视频你懂的| 久久综合精品国产一区二区三区| 欧美日韩中文字幕精品| 91免费国产在线观看| 成人a区在线观看| 粉嫩aⅴ一区二区三区四区五区 | 成人丝袜18视频在线观看| 国内一区二区视频| 麻豆成人av在线| 亚洲电影第三页| 亚洲综合一区二区三区| 一区二区三区在线视频免费| 亚洲欧美综合另类在线卡通| 欧美极品少妇xxxxⅹ高跟鞋 | 中文字幕在线不卡| 国产精品免费av| 国产精品不卡视频| 亚洲精品中文在线观看| 亚洲欧美日韩国产综合在线| 亚洲精品欧美激情| 一区二区三区在线视频观看| 亚洲理论在线观看| 亚洲一区中文在线| 自拍偷拍亚洲激情| 洋洋av久久久久久久一区| 亚洲伊人伊色伊影伊综合网| 亚洲一二三四在线| 亚洲国产中文字幕在线视频综合| 午夜伦欧美伦电影理论片| 视频一区在线视频| 国产一区二区成人久久免费影院 | 中文字幕日韩一区| 一区二区三区免费在线观看| 亚洲一区免费在线观看| 老司机一区二区| 不卡电影一区二区三区| 在线看日本不卡| 欧美变态tickling挠脚心| 国产欧美日产一区| 亚洲一区国产视频| 国产在线视频不卡二| 一本色道久久综合精品竹菊| 91精品在线免费观看| 亚洲国产成人午夜在线一区| 一区二区三区产品免费精品久久75 | 日韩一区二区在线观看| 久久久久久久久久久电影| 亚洲蜜臀av乱码久久精品| 日本中文在线一区| 国产成人精品亚洲日本在线桃色| 在线看一区二区| 久久免费国产精品| 一区二区三区鲁丝不卡| 精品在线观看免费| 在线观看日韩av先锋影音电影院| 日韩精品一区国产麻豆| 亚洲欧美日韩电影| 亚洲成人av一区| 成人免费视频网站在线观看| 日韩午夜激情免费电影| 亚洲欧美一区二区三区久本道91|