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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? atimach64exa.c

?? x.org上有關ati系列顯卡最新驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
    int       x1,     int       y1,     int       x2,     int       y2){    ScrnInfoPtr pScreenInfo = xf86Screens[pPixmap->drawable.pScreen->myNum];    ATIPtr pATI = ATIPTR(pScreenInfo);    int x = x1;    int y = y1;    int w = x2-x1;    int h = y2-y1;    ATIDRISync(pScreenInfo);    if (pATI->XModifier != 1)    {        x *= pATI->XModifier;        w *= pATI->XModifier;        outf(DST_CNTL, SetBits((x / 4) % 6, DST_24_ROT) |            (DST_X_DIR | DST_Y_DIR | DST_24_ROT_EN));    }    /* Disable clipping if it gets in the way */    ATIMach64ValidateClip(pATI, x, x + w - 1, y, y + h - 1);    ATIMach64WaitForFIFO(pATI, 2);    outf(DST_Y_X, SetWord(x, 1) | SetWord(y, 0));    outf(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));}static void Mach64DoneSolid(PixmapPtr pPixmap) { }/* * Memcpy-based UTS. */static BoolMach64UploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,    char *src, int src_pitch){    char  *dst        = pDst->devPrivate.ptr;    int    dst_pitch  = exaGetPixmapPitch(pDst);    int bpp    = pDst->drawable.bitsPerPixel;    int cpp    = (bpp + 7) / 8;    int wBytes = w * cpp;    exaWaitSync(pDst->drawable.pScreen);    dst += (x * cpp) + (y * dst_pitch);    while (h--) {        memcpy(dst, src, wBytes);        src += src_pitch;        dst += dst_pitch;    }    return TRUE;}/* * Memcpy-based DFS. */static BoolMach64DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h,    char *dst, int dst_pitch){    char  *src        = pSrc->devPrivate.ptr;    int    src_pitch  = exaGetPixmapPitch(pSrc);    int bpp    = pSrc->drawable.bitsPerPixel;    int cpp    = (bpp + 7) / 8;    int wBytes = w * cpp;    exaWaitSync(pSrc->drawable.pScreen);    src += (x * cpp) + (y * src_pitch);    while (h--) {        memcpy(dst, src, wBytes);        src += src_pitch;        dst += dst_pitch;    }    return TRUE;}#include "atimach64render.c"/* Compute log base 2 of val. */static __inline__ int Mach64Log2(int val){    int bits;    for (bits = 0; val != 0; val >>= 1, ++bits)        ;    return bits - 1;}/* * Memory layour for EXA with DRI (no local_textures): * | front  | back   | depth  | textures | pixmaps, xv | c | * * 1024x768@16bpp with 8 MB: * | 1.5 MB | 1.5 MB | 1.5 MB | 0        | ~3.5 MB     | c | * * 1024x768@32bpp with 8 MB: * | 3.0 MB | 3.0 MB | 1.5 MB | 0        | ~0.5 MB     | c | * * "c" is the hw cursor which occupies 1KB */static voidMach64SetupMemEXA(ScreenPtr pScreen){    ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];    ATIPtr pATI = ATIPTR(pScreenInfo);    int cpp = (pScreenInfo->bitsPerPixel + 7) / 8;    /* front and back buffer */    int bufferSize = pScreenInfo->virtualY * pScreenInfo->displayWidth * cpp;    /* always 16-bit z-buffer */    int depthSize  = pScreenInfo->virtualY * pScreenInfo->displayWidth * 2;    ExaDriverPtr pExa = pATI->pExa;    pExa->memoryBase = pATI->pMemory;    pExa->memorySize = pScreenInfo->videoRam * 1024;    pExa->offScreenBase = bufferSize;#ifdef XF86DRI_DEVEL    if (pATI->directRenderingEnabled)    {	ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;	Bool is_pci = pATIDRIServer->IsPCI;	int textureSize = 0;	int pixmapCache = 0;	int next = 0;	/* front buffer */	pATIDRIServer->frontOffset = 0;	pATIDRIServer->frontPitch = pScreenInfo->displayWidth;	next += bufferSize;	/* back buffer */	pATIDRIServer->backOffset = next;	pATIDRIServer->backPitch = pScreenInfo->displayWidth;	next += bufferSize;	/* depth buffer */	pATIDRIServer->depthOffset = next;	pATIDRIServer->depthPitch = pScreenInfo->displayWidth;	next += depthSize;	/* ATIScreenInit does check for the this condition. */	if (next > pExa->memorySize)	{	    xf86DrvMsg(pScreen->myNum, X_WARNING,		"DRI static buffer allocation failed, disabling DRI --"		"need at least %d kB video memory\n", next / 1024 );	    ATIDRICloseScreen(pScreen);	    pATI->directRenderingEnabled = FALSE;	}	/* local textures */	/* Reserve approx. half of offscreen memory for local textures */	textureSize = (pExa->memorySize - next) / 2;	/* In case DRI requires more offscreen memory than available,	 * should not happen as ATIScreenInit would have not enabled DRI */	if (textureSize < 0)	    textureSize = 0;	/* Try for enough pixmap cache for a full viewport */	pixmapCache = (pExa->memorySize - next) - textureSize;	if (pixmapCache < bufferSize)	    textureSize = 0;	/* Don't allocate a local texture heap for AGP unless requested */	if ( !is_pci && !pATI->OptionLocalTextures )	    textureSize = 0;	if (textureSize > 0)	{	    int l = Mach64Log2(textureSize / MACH64_NR_TEX_REGIONS);	    if (l < MACH64_LOG_TEX_GRANULARITY)		l = MACH64_LOG_TEX_GRANULARITY;	    pATIDRIServer->logTextureGranularity = l;	    /* Round the texture size down to the nearest whole number of	     * texture regions.	     */	    textureSize = (textureSize >> l) << l;	}	/* Set a minimum usable local texture heap size.  This will fit	 * two 256x256 textures.  We check this after any rounding of	 * the texture area.	 */	if (textureSize < 256*256 * cpp * 2)	    textureSize = 0;	/* Disable DRI for PCI if cannot allocate a local texture heap */	if ( is_pci && textureSize == 0 )	{	    xf86DrvMsg(pScreen->myNum, X_WARNING,		"Not enough memory for local textures, disabling DRI\n");	    ATIDRICloseScreen(pScreen);	    pATI->directRenderingEnabled = FALSE;	}	pATIDRIServer->textureOffset = next;	pATIDRIServer->textureSize = textureSize;	next += textureSize;	if (pATI->directRenderingEnabled)	    pExa->offScreenBase = next;    }#endif /* XF86DRI_DEVEL */    xf86DrvMsg(pScreen->myNum, X_INFO,        "EXA memory management initialized\n"        "\t base     :  %10p\n"        "\t offscreen: +%10lx\n"        "\t size     : +%10lx\n"        "\t cursor   :  %10p\n",        pExa->memoryBase,        pExa->offScreenBase,        pExa->memorySize,        pATI->pCursorImage);    if (TRUE || xf86GetVerbosity() > 1)    {        int offscreen = pExa->memorySize - pExa->offScreenBase;        int viewport = bufferSize;        int dvdframe = 720*480*cpp; /* enough for single-buffered DVD */        xf86DrvMsg(pScreen->myNum, X_INFO,            "Will use %d kB of offscreen memory for EXA\n"            "\t\t or %5.2f viewports (composite)\n"            "\t\t or %5.2f dvdframes (xvideo)\n",            offscreen / 1024,            1.0 * offscreen / viewport,            1.0 * offscreen / dvdframe);    }#ifdef XF86DRI_DEVEL    if (pATI->directRenderingEnabled)    {        ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;        xf86DrvMsg(pScreen->myNum, X_INFO,                   "Will use back  buffer at offset 0x%x\n",                   pATIDRIServer->backOffset);        xf86DrvMsg(pScreen->myNum, X_INFO,                   "Will use depth buffer at offset 0x%x\n",                   pATIDRIServer->depthOffset);        if (pATIDRIServer->textureSize > 0)        {            xf86DrvMsg(pScreen->myNum, X_INFO,                   "Will use %d kB for local textures at offset 0x%x\n",                   pATIDRIServer->textureSize/1024,                   pATIDRIServer->textureOffset);        }    }#endif /* XF86DRI_DEVEL */    pExa->pixmapOffsetAlign = 64;    pExa->pixmapPitchAlign = 64;    pExa->flags = EXA_OFFSCREEN_PIXMAPS;    pExa->maxX = ATIMach64MaxX;    pExa->maxY = ATIMach64MaxY;}Bool ATIMach64ExaInit(ScreenPtr pScreen){    ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];    ATIPtr pATI = ATIPTR(pScreenInfo);    ExaDriverPtr pExa;    /* FIXME: which chips support EXA ? */    if (pATI->Chip < ATI_CHIP_264CT)    {        xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,            "EXA is not supported for ATI chips earlier than "            "the ATI Mach64.\n");        return FALSE;    }    pExa = exaDriverAlloc();    if (!pExa)        return FALSE;    pATI->pExa = pExa;    pExa->exa_major = 2;    pExa->exa_minor = 0;    Mach64SetupMemEXA(pScreen);    pExa->WaitMarker = Mach64WaitMarker;    pExa->PrepareSolid = Mach64PrepareSolid;    pExa->Solid = Mach64Solid;    pExa->DoneSolid = Mach64DoneSolid;    pExa->PrepareCopy = Mach64PrepareCopy;    pExa->Copy = Mach64Copy;    pExa->DoneCopy = Mach64DoneCopy;    /* EXA hits more optimized paths when it does not have to fallback because     * of missing UTS/DFS, hook memcpy-based UTS/DFS.     */    pExa->UploadToScreen = Mach64UploadToScreen;    pExa->DownloadFromScreen = Mach64DownloadFromScreen;    if (pATI->RenderAccelEnabled) {	if (pATI->Chip >= ATI_CHIP_264GTPRO) {	    /* 3D Rage Pro does not support NPOT textures. */	    pExa->flags |= EXA_OFFSCREEN_ALIGN_POT;	    pExa->CheckComposite = Mach64CheckComposite;	    pExa->PrepareComposite = Mach64PrepareComposite;	    pExa->Composite = Mach64Composite;	    pExa->DoneComposite = Mach64DoneComposite;	} else {	    xf86DrvMsg(pScreen->myNum, X_INFO,		       "Render acceleration is not supported for ATI chips "		       "earlier than the ATI 3D Rage Pro.\n");	    pATI->RenderAccelEnabled = FALSE;	}    }    xf86DrvMsg(pScreen->myNum, X_INFO, "Render acceleration %s\n",	       pATI->RenderAccelEnabled ? "enabled" : "disabled");    if (!exaDriverInit(pScreen, pATI->pExa)) {	xfree(pATI->pExa);	pATI->pExa = NULL;	return FALSE;    }    return TRUE;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品sm在线观看| 99视频精品在线| 欧美挠脚心视频网站| 亚洲一区二区三区四区不卡| 欧美午夜精品一区二区三区| 亚洲午夜久久久久中文字幕久| 欧美无砖专区一中文字| 亚洲成人精品在线观看| 欧美一区二区二区| 国产一区在线观看视频| 中文字幕第一区第二区| 95精品视频在线| 一区二区三区欧美| 欧美一区二区精品在线| 国产精华液一区二区三区| 国产亚洲欧洲997久久综合| 97久久超碰国产精品| 亚洲成人综合视频| 久久麻豆一区二区| 99久久99久久精品国产片果冻| 亚洲精品国久久99热| 日韩欧美中文字幕一区| 懂色中文一区二区在线播放| 亚洲精品午夜久久久| 日韩欧美激情四射| 成人av网站大全| 亚洲成人自拍偷拍| 久久午夜电影网| 色综合色狠狠天天综合色| 日日噜噜夜夜狠狠视频欧美人 | 国产精品美女一区二区三区| 粉嫩13p一区二区三区| 伊人性伊人情综合网| 精品国产凹凸成av人导航| 成人高清av在线| 日本欧美在线观看| 综合欧美亚洲日本| 日韩一卡二卡三卡| 91美女视频网站| 久久精品国产**网站演员| 国产精品理论片| 91精品国产综合久久久蜜臀图片| 国产成人午夜精品5599| 午夜精品在线视频一区| 国产精品国产馆在线真实露脸| 制服丝袜一区二区三区| 91丨九色porny丨蝌蚪| 韩国av一区二区| 亚洲成人动漫在线观看| 国产精品乱码一区二区三区软件| 3d动漫精品啪啪一区二区竹菊| 不卡大黄网站免费看| 国产资源在线一区| 三级一区在线视频先锋 | 欧美成人乱码一区二区三区| 色94色欧美sute亚洲线路二 | 久久久久久久久久久久久夜| 欧美色倩网站大全免费| 99久久婷婷国产综合精品电影| 美女网站色91| 婷婷亚洲久悠悠色悠在线播放| 国产精品久久久久久福利一牛影视| 日韩免费高清电影| 欧美男同性恋视频网站| 在线观看亚洲a| 91在线精品一区二区三区| 国产一区91精品张津瑜| 久久国产精品第一页| 婷婷国产v国产偷v亚洲高清| 一区二区三区在线免费观看 | 欧美成人猛片aaaaaaa| 6080亚洲精品一区二区| 一本一道综合狠狠老| a在线欧美一区| www.欧美日韩国产在线| 国产成人综合在线播放| 国产在线国偷精品产拍免费yy| 蜜臀av性久久久久av蜜臀妖精| 午夜私人影院久久久久| 亚洲小说欧美激情另类| 亚洲国产成人91porn| 亚洲成人激情av| 日本在线不卡视频| 日韩中文字幕91| 日韩激情一二三区| 国产精品一区二区男女羞羞无遮挡| 视频一区二区三区在线| 日本怡春院一区二区| 日本伊人午夜精品| 激情欧美一区二区| 国产99久久久精品| 99在线精品视频| 日本精品视频一区二区三区| 日本精品视频一区二区| 欧美日韩视频在线观看一区二区三区 | 日韩午夜激情免费电影| 日韩欧美黄色影院| 国产亚洲人成网站| 国产精品久久国产精麻豆99网站| 国产精品久久久久精k8 | 日韩专区中文字幕一区二区| 日韩高清在线不卡| 国产精品亚洲一区二区三区在线| 国产成人午夜视频| 在线亚洲高清视频| 日韩精品中文字幕一区二区三区| 精品99一区二区| 中文字幕在线视频一区| 尤物在线观看一区| 久久成人免费网| 99国产精品久| 91精品国产欧美日韩| 久久男人中文字幕资源站| 一区二区三区中文字幕在线观看| 五月天国产精品| 国产精品18久久久久久久久久久久| va亚洲va日韩不卡在线观看| 欧美无乱码久久久免费午夜一区| 精品久久久久久无| 亚洲视频一区二区在线| 久久99久久久久久久久久久| 懂色av一区二区在线播放| 欧美人妇做爰xxxⅹ性高电影 | 91精品国产麻豆| 欧美国产精品一区二区三区| 亚洲国产美国国产综合一区二区| 国模冰冰炮一区二区| 91久久香蕉国产日韩欧美9色| 精品国产免费人成电影在线观看四季| 亚洲国产精品99久久久久久久久| 亚洲国产日韩a在线播放| 国产乱码一区二区三区| 欧美日韩另类一区| 欧美国产精品v| 蜜臀国产一区二区三区在线播放| 99久久精品一区| 欧美刺激脚交jootjob| 亚洲自拍偷拍麻豆| caoporen国产精品视频| 精品成人a区在线观看| 性欧美疯狂xxxxbbbb| 91色.com| 亚洲国产精品高清| 久久99久久99小草精品免视看| 一本一本大道香蕉久在线精品| 久久午夜老司机| 日产欧产美韩系列久久99| 在线欧美日韩精品| 国产精品欧美一区二区三区| 久久99精品国产.久久久久| 欧美日韩中文国产| 亚洲人成亚洲人成在线观看图片| 国产九色sp调教91| 欧美精品一区二区三区视频| 日韩专区在线视频| 欧美日韩一级二级三级| 亚洲综合小说图片| 91在线一区二区三区| 国产精品天干天干在线综合| 久久99久久久欧美国产| 欧美一级二级在线观看| 亚洲va欧美va国产va天堂影院| 97久久精品人人爽人人爽蜜臀| 国产精品三级视频| 成人综合激情网| 日本一区二区三区dvd视频在线| 九九视频精品免费| 日韩精品一区二区三区四区 | 韩日av一区二区| 日韩精品一区二区三区视频在线观看 | 国产精品久久久久久妇女6080| 成人免费观看视频| 国产精品天美传媒| 97久久久精品综合88久久| 中文字幕在线播放不卡一区| 91香蕉视频黄| 亚洲精品久久嫩草网站秘色| 日本乱人伦aⅴ精品| 亚洲一区二区视频在线观看| 欧美日韩aaa| 麻豆精品一区二区av白丝在线| 亚洲精品在线网站| 国产激情精品久久久第一区二区| 欧美激情综合五月色丁香 | 麻豆成人在线观看| 久久无码av三级| 波多野结衣欧美| 亚洲免费成人av| 4438x亚洲最大成人网| 国内成人免费视频| 中文字幕欧美国产| 91久久人澡人人添人人爽欧美| 亚洲一区二区在线播放相泽| 91精品国产欧美日韩| 国产成人午夜高潮毛片| 亚洲品质自拍视频| 欧美一二三四在线| 成人免费va视频| 午夜久久久久久电影| 久久久久99精品一区|