Lines Matching refs:dri

104     use_db = !info->dri->noBackBuffer ? 1 : 0;
111 "[dri] RADEONInitVisualConfigs failed "
178 pConfigs[i].depthSize = info->dri->depthBits;
264 pConfigs[i].depthSize = info->dri->depthBits;
292 info->dri->numVisualConfigs = numConfigs;
293 info->dri->pVisualConfigs = pConfigs;
294 info->dri->pVisualConfigsPriv = pRADEONConfigs;
336 if (!info->dri->pDamage && info->dri->allowPageFlip) {
338 info->dri->pDamage = DamageCreate(NULL, NULL, DamageReportNone, TRUE,
341 if (info->dri->pDamage == NULL) {
344 info->dri->allowPageFlip = 0;
346 DamageRegister(&pPix->drawable, info->dri->pDamage);
369 if (info->dri->pDamage) {
370 RegionPtr pDamageReg = DamageRegion(info->dri->pDamage);
419 *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch)) = (d)
422 (d) = *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch))
426 *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch)) = (d)
429 (d) = *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch))
438 unsigned char *buf = info->FB + info->dri->depthOffset;
609 info->accel_state->dst_pitch_offset = info->dri->backPitchOffset;
637 if (info->dri->depthMoves) {
645 info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset;;
660 info->dri->gartOffset = 0;
663 info->dri->ringStart = info->dri->gartOffset;
664 info->dri->ringMapSize = info->dri->ringSize*1024*1024 + radeon_drm_page_size;
665 info->dri->ringSizeLog2QW = RADEONMinBits(info->dri->ringSize*1024*1024/8)-1;
667 info->dri->ringReadOffset = info->dri->ringStart + info->dri->ringMapSize;
668 info->dri->ringReadMapSize = radeon_drm_page_size;
671 info->dri->bufStart = info->dri->ringReadOffset + info->dri->ringReadMapSize;
672 info->dri->bufMapSize = info->dri->bufSize*1024*1024;
675 info->dri->gartTexStart = info->dri->bufStart + info->dri->bufMapSize;
676 s = (info->dri->gartSize*1024*1024 - info->dri->gartTexStart);
679 info->dri->gartTexMapSize = (s >> l) << l;
680 info->dri->log2GARTTexGran = l;
781 unsigned long mode = drmAgpGetMode(info->dri->drmFD); /* Default mode */
782 unsigned int vendor = drmAgpVendorId(info->dri->drmFD);
783 unsigned int device = drmAgpDeviceId(info->dri->drmFD);
818 if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->dri->agpMode)) {
819 if ((info->dri->agpMode < (is_v3 ? 4 : 1)) ||
820 (info->dri->agpMode > (is_v3 ? 8 : 4)) ||
821 (info->dri->agpMode & (info->dri->agpMode - 1))) {
824 "%dx\n", info->dri->agpMode, is_v3 ? "4, 8" : "1, 2, 4",
826 info->dri->agpMode = defaultMode;
830 info->dri->agpMode = defaultMode;
832 xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->dri->agpMode);
837 switch (info->dri->agpMode) {
845 switch (info->dri->agpMode) {
873 info->dri->agpMode = 8; /* doesn't matter at this point */
883 if (drmAgpEnable(info->dri->drmFD, mode) < 0) {
885 drmAgpRelease(info->dri->drmFD);
915 OUTMC(pScrn, RV515_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
918 OUTMC(pScrn, R520_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
921 OUTMC(pScrn, RS690_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
923 OUTREG(RADEON_AGP_BASE, drmAgpBase(info->dri->drmFD));
933 if (drmAgpAcquire(info->dri->drmFD) < 0) {
943 if ((ret = drmAgpAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024, 0, NULL,
944 &info->dri->agpMemHandle)) < 0) {
946 drmAgpRelease(info->dri->drmFD);
951 info->dri->gartSize*1024,
952 (unsigned int)info->dri->agpMemHandle);
954 if (drmAgpBind(info->dri->drmFD,
955 info->dri->agpMemHandle, info->dri->gartOffset) < 0) {
957 drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle);
958 drmAgpRelease(info->dri->drmFD);
962 if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize,
963 DRM_AGP, DRM_READ_ONLY, &info->dri->ringHandle) < 0) {
970 (unsigned int)info->dri->ringHandle);
972 if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
973 &info->dri->ring) < 0) {
979 (unsigned long)info->dri->ring);
981 if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize,
982 DRM_AGP, DRM_READ_ONLY, &info->dri->ringReadPtrHandle) < 0) {
989 (unsigned int)info->dri->ringReadPtrHandle);
991 if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
992 &info->dri->ringReadPtr) < 0) {
999 (unsigned long)info->dri->ringReadPtr);
1001 if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
1002 DRM_AGP, 0, &info->dri->bufHandle) < 0) {
1009 (unsigned int)info->dri->bufHandle);
1011 if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
1012 &info->dri->buf) < 0) {
1019 (unsigned long)info->dri->buf);
1021 if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize,
1022 DRM_AGP, 0, &info->dri->gartTexHandle) < 0) {
1029 (unsigned int)info->dri->gartTexHandle);
1031 if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
1032 &info->dri->gartTex) < 0) {
1039 (unsigned long)info->dri->gartTex);
1054 ret = drmScatterGatherAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024,
1055 &info->dri->pciMemHandle);
1062 info->dri->gartSize*1024, info->dri->pciMemHandle);
1066 if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize,
1067 DRM_SCATTER_GATHER, flags, &info->dri->ringHandle) < 0) {
1073 "[pci] ring handle = 0x%08lx, size = 0x%08x\n", info->dri->ringHandle, info->dri->ringMapSize);
1075 if ((ret = drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
1076 &info->dri->ring)) < 0) {
1082 (unsigned long)info->dri->ring);
1085 *(unsigned long *)(pointer)info->dri->ring);
1087 if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize,
1088 DRM_SCATTER_GATHER, flags, &info->dri->ringReadPtrHandle) < 0) {
1095 info->dri->ringReadPtrHandle);
1097 if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
1098 &info->dri->ringReadPtr) < 0) {
1105 (unsigned long)info->dri->ringReadPtr);
1108 *(unsigned long *)(pointer)info->dri->ringReadPtr);
1110 if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
1111 DRM_SCATTER_GATHER, 0, &info->dri->bufHandle) < 0) {
1118 info->dri->bufHandle);
1120 if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
1121 &info->dri->buf) < 0) {
1128 (unsigned long)info->dri->buf);
1131 *(unsigned long *)(pointer)info->dri->buf);
1133 if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize,
1134 DRM_SCATTER_GATHER, 0, &info->dri->gartTexHandle) < 0) {
1141 info->dri->gartTexHandle);
1143 if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
1144 &info->dri->gartTex) < 0) {
1151 (unsigned long)info->dri->gartTex);
1162 info->dri->registerSize = info->MMIOSize;
1163 if (drmAddMap(info->dri->drmFD, info->MMIOAddr, info->dri->registerSize,
1164 DRM_REGISTERS, DRM_READ_ONLY, &info->dri->registerHandle) < 0) {
1168 "[drm] register handle = 0x%08lx\n", info->dri->registerHandle);
1193 drmInfo.gart_size = info->dri->gartSize*1024*1024;
1194 drmInfo.ring_size = info->dri->ringSize*1024*1024;
1198 drmInfo.depth_bpp = (info->dri->depthBits - 8) * 2;
1200 drmInfo.front_offset = info->dri->frontOffset;
1201 drmInfo.front_pitch = info->dri->frontPitch * cpp;
1202 drmInfo.back_offset = info->dri->backOffset;
1203 drmInfo.back_pitch = info->dri->backPitch * cpp;
1204 drmInfo.depth_offset = info->dri->depthOffset;
1205 drmInfo.depth_pitch = info->dri->depthPitch * drmInfo.depth_bpp / 8;
1207 drmInfo.fb_offset = info->dri->fbHandle;
1208 drmInfo.mmio_offset = info->dri->registerHandle;
1209 drmInfo.ring_offset = info->dri->ringHandle;
1210 drmInfo.ring_rptr_offset = info->dri->ringReadPtrHandle;
1211 drmInfo.buffers_offset = info->dri->bufHandle;
1212 drmInfo.gart_textures_offset= info->dri->gartTexHandle;
1214 if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT,
1235 drmHeap.size = info->dri->gartTexMapSize;
1237 if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_INIT_HEAP,
1244 info->dri->gartTexMapSize);
1254 info->dri->bufNumBufs = drmAddBufs(info->dri->drmFD,
1255 info->dri->bufMapSize / RADEON_BUFFER_SIZE,
1258 info->dri->bufStart);
1260 if (info->dri->bufNumBufs <= 0) {
1267 info->dri->bufNumBufs, RADEON_BUFFER_SIZE);
1269 if (!(info->dri->buffers = drmMapBufs(info->dri->drmFD))) {
1276 info->dri->buffers->count);
1285 if (!info->dri->irq) {
1286 info->dri->irq = drmGetInterruptFromBusID(
1287 info->dri->drmFD,
1292 if ((drmCtlInstHandler(info->dri->drmFD, info->dri->irq)) != 0) {
1297 info->dri->irq = 0;
1312 if (info->dri->irq)
1315 info->dri->irq);
1331 info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset;
1351 "[dri] RADEONDRIGetVersion failed (libdri too old)\n"
1352 "[dri] Disabling DRI.\n");
1360 "[dri] RADEONDRIGetVersion failed because of a version mismatch.\n"
1361 "[dri] This driver was built with %d.%d.x, which is too new;\n"
1362 "[dri] libdri reports a version of %d.%d.%d."
1363 "[dri] A server upgrade may be needed.\n"
1364 "[dri] Disabling DRI.\n",
1370 "[dri] RADEONDRIGetVersion failed because of a version mismatch.\n"
1371 "[dri] This driver was built with %d.%d.x, which is too old;\n"
1372 "[dri] libdri reports a version of %d.%d.%d."
1373 "[dri] This driver needs to be upgraded/rebuilt.\n"
1374 "[dri] Disabling DRI.\n",
1382 info->dri->pLibDRMVersion = drmGetLibVersion(info->dri->drmFD);
1383 if (info->dri->pLibDRMVersion == NULL) {
1385 "[dri] RADEONDRIGetVersion failed because libdrm is really "
1387 "[dri] Disabling DRI.\n");
1390 if (info->dri->pLibDRMVersion->version_major != 1 ||
1391 info->dri->pLibDRMVersion->version_minor < 2) {
1394 "[dri] RADEONDRIGetVersion failed because of a "
1396 "[dri] libdrm module version is %d.%d.%d but "
1398 "[dri] Disabling DRI.\n",
1399 info->dri->pLibDRMVersion->version_major,
1400 info->dri->pLibDRMVersion->version_minor,
1401 info->dri->pLibDRMVersion->version_patchlevel);
1402 drmFreeVersion(info->dri->pLibDRMVersion);
1403 info->dri->pLibDRMVersion = NULL;
1424 "[dri] RADEONDRIGetVersion failed to open the DRM\n"
1425 "[dri] Disabling DRI.\n");
1430 info->dri->pKernelDRMVersion = drmGetVersion(fd);
1432 if (info->dri->pKernelDRMVersion == NULL) {
1434 "[dri] RADEONDRIGetVersion failed to get the DRM version\n"
1435 "[dri] Disabling DRI.\n");
1453 if (info->dri->pKernelDRMVersion->version_major != req_major) {
1459 "[dri] RADEONDRIGetVersion failed because of a version mismatch.\n"
1460 "[dri] This chipset requires a kernel module version of %d.%d.%d,\n"
1461 "[dri] but the kernel reports a version of %d.%d.%d."
1462 "[dri] Make sure your module is loaded prior to starting X, and\n"
1463 "[dri] that this driver was built with support for KMS.\n"
1464 "[dri] Aborting.\n",
1466 info->dri->pKernelDRMVersion->version_major,
1467 info->dri->pKernelDRMVersion->version_minor,
1468 info->dri->pKernelDRMVersion->version_patchlevel);
1469 drmFreeVersion(info->dri->pKernelDRMVersion);
1470 info->dri->pKernelDRMVersion = NULL;
1472 } else if (info->dri->pKernelDRMVersion->version_minor < req_minor ||
1473 (info->dri->pKernelDRMVersion->version_minor == req_minor &&
1474 info->dri->pKernelDRMVersion->version_patchlevel < req_patch)) {
1477 "[dri] RADEONDRIGetVersion failed because of a version mismatch.\n"
1478 "[dri] This chipset requires a kernel module version of %d.%d.%d,\n"
1479 "[dri] but the kernel reports a version of %d.%d.%d."
1480 "[dri] Try upgrading your kernel.\n"
1481 "[dri] Disabling DRI.\n",
1483 info->dri->pKernelDRMVersion->version_major,
1484 info->dri->pKernelDRMVersion->version_minor,
1485 info->dri->pKernelDRMVersion->version_patchlevel);
1486 drmFreeVersion(info->dri->pKernelDRMVersion);
1487 info->dri->pKernelDRMVersion = NULL;
1503 if (info->directRenderingEnabled && info->dri->pKernelDRMVersion->version_minor >= 28) {
1532 info->dri->DRICloseScreen = NULL;
1540 "[dri] RADEONInitVisualConfigs failed "
1558 info->dri->pDRIInfo = pDRIInfo;
1583 pDRIInfo->frameBufferPhysicalAddress = (void *)(uintptr_t)info->LinearAddr + info->dri->frontOffset;
1615 DRIDestroyInfoRec(info->dri->pDRIInfo);
1616 info->dri->pDRIInfo = NULL;
1658 if (!DRIScreenInit(pScreen, pDRIInfo, &info->dri->drmFD)) {
1660 "[dri] DRIScreenInit failed. Disabling DRI.\n");
1701 DRIGetDeviceInfo(pScreen, &info->dri->fbHandle,
1713 xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[dri] Visual configs initialized\n");
1725 pScreen->CloseScreen = info->dri->DRICloseScreen;
1740 info->dri->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
1741 /* info->dri->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */
1778 pRADEONDRI = (RADEONDRIPtr)info->dri->pDRIInfo->devPrivate;
1787 pRADEONDRI->AGPMode = info->dri->agpMode;
1789 pRADEONDRI->frontOffset = info->dri->frontOffset;
1790 pRADEONDRI->frontPitch = info->dri->frontPitch;
1791 pRADEONDRI->backOffset = info->dri->backOffset;
1792 pRADEONDRI->backPitch = info->dri->backPitch;
1793 pRADEONDRI->depthOffset = info->dri->depthOffset;
1794 pRADEONDRI->depthPitch = info->dri->depthPitch;
1795 pRADEONDRI->textureOffset = info->dri->textureOffset;
1796 pRADEONDRI->textureSize = info->dri->textureSize;
1797 pRADEONDRI->log2TexGran = info->dri->log2TexGran;
1799 pRADEONDRI->registerHandle = info->dri->registerHandle;
1800 pRADEONDRI->registerSize = info->dri->registerSize;
1802 pRADEONDRI->statusHandle = info->dri->ringReadPtrHandle;
1803 pRADEONDRI->statusSize = info->dri->ringReadMapSize;
1805 pRADEONDRI->gartTexHandle = info->dri->gartTexHandle;
1806 pRADEONDRI->gartTexMapSize = info->dri->gartTexMapSize;
1807 pRADEONDRI->log2GARTTexGran = info->dri->log2GARTTexGran;
1808 pRADEONDRI->gartTexOffset = info->dri->gartTexStart;
1815 info->dri->DRICloseScreen = pScreen->CloseScreen;
1836 if (info->dri->pKernelDRMVersion->version_minor >= 9) {
1853 _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_RESUME);
1899 REGION_UNINIT(pScreen, &info->dri->driRegion);
1902 if (info->dri->irq) {
1904 drmCtlUninstHandler(info->dri->drmFD);
1905 info->dri->irq = 0;
1910 if (info->dri->buffers) {
1911 drmUnmapBufs(info->dri->buffers);
1912 info->dri->buffers = NULL;
1918 drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT,
1922 if (info->dri->gartTex) {
1923 drmUnmap(info->dri->gartTex, info->dri->gartTexMapSize);
1924 info->dri->gartTex = NULL;
1926 if (info->dri->buf) {
1927 drmUnmap(info->dri->buf, info->dri->bufMapSize);
1928 info->dri->buf = NULL;
1930 if (info->dri->ringReadPtr) {
1931 drmUnmap(info->dri->ringReadPtr, info->dri->ringReadMapSize);
1932 info->dri->ringReadPtr = NULL;
1934 if (info->dri->ring) {
1935 drmUnmap(info->dri->ring, info->dri->ringMapSize);
1936 info->dri->ring = NULL;
1938 if (info->dri->agpMemHandle != DRM_AGP_NO_HANDLE) {
1939 drmAgpUnbind(info->dri->drmFD, info->dri->agpMemHandle);
1940 drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle);
1941 info->dri->agpMemHandle = DRM_AGP_NO_HANDLE;
1942 drmAgpRelease(info->dri->drmFD);
1944 if (info->dri->pciMemHandle) {
1945 drmScatterGatherFree(info->dri->drmFD, info->dri->pciMemHandle);
1946 info->dri->pciMemHandle = 0;
1949 if (info->dri->pciGartBackup) {
1950 free(info->dri->pciGartBackup);
1951 info->dri->pciGartBackup = NULL;
1958 if (info->dri->pDRIInfo) {
1959 if (info->dri->pDRIInfo->devPrivate) {
1960 free(info->dri->pDRIInfo->devPrivate);
1961 info->dri->pDRIInfo->devPrivate = NULL;
1963 DRIDestroyInfoRec(info->dri->pDRIInfo);
1964 info->dri->pDRIInfo = NULL;
1966 if (info->dri->pVisualConfigs) {
1967 free(info->dri->pVisualConfigs);
1968 info->dri->pVisualConfigs = NULL;
1970 if (info->dri->pVisualConfigsPriv) {
1971 free(info->dri->pVisualConfigsPriv);
1972 info->dri->pVisualConfigsPriv = NULL;
1976 /* Use callbacks from dri.c to support pageflipping mode for a single
2018 REGION_SUBTRACT(pScreen, &region, pReg, &info->dri->driRegion);
2035 dst_pitch_offset = src_pitch_offset + (info->dri->backOffset >> 10);
2072 xa + info->dri->backX,
2073 ya + info->dri->backY,
2087 DamageEmpty(info->dri->pDamage);
2098 if (info->dri->allowPageFlip) {
2151 if (info->dri->backArea) {
2152 xf86FreeOffscreenArea(info->dri->backArea);
2153 info->dri->backArea = NULL;
2164 if (height < (info->dri->depthTexLines + info->dri->backLines)) {
2178 - info->dri->depthTexLines
2179 - info->dri->backLines,
2186 info->dri->backArea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
2187 info->dri->backLines,
2190 if (!info->dri->backArea)
2195 info->dri->depthTexArea = xf86AllocateOffscreenArea(pScreen,
2197 info->dri->depthTexLines,
2200 if (!info->dri->depthTexArea)
2209 info->dri->have3DWindows = 1;
2229 drmCommandNone(info->dri->drmFD, DRM_RADEON_FLIP);
2236 xf86FreeOffscreenArea(info->dri->backArea);
2237 info->dri->backArea = NULL;
2242 "[dri] RADEONDRITransitionTo2d: "
2248 xf86FreeOffscreenArea(info->dri->depthTexArea);
2251 info->dri->have3DWindows = 0;
2271 REGION_UNINIT(pScreen, &info->dri->driRegion);
2272 REGION_NULL(pScreen, &info->dri->driRegion);
2281 REGION_UNION(pScreen, &info->dri->driRegion, &pWin->clipList,
2282 &info->dri->driRegion);
2295 info->dri->pKernelDRMVersion->version_minor < 19)
2302 if (info->dri->pKernelDRMVersion->version_minor < 26)
2303 info->dri->pciGartSize = 32768;
2305 info->dri->pciGartSize = RADEONDRIGetPciAperTableSize(pScrn);
2308 info->dri->pciGartBackup = xnfcalloc(1, info->dri->pciGartSize);
2309 if (info->dri->pciGartBackup == NULL)
2312 info->dri->pciGartOffset = (info->FbMapSize - info->FbSecureSize);
2323 num_pages = (info->dri->pciAperSize * 1024 * 1024) / 4096;
2343 ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SETPARAM,