- Timestamp:
- Aug 7, 2009 8:41:49 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 50836
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c
r22086 r22087 51 51 * Authors: Paulo César Pereira de Andrade <[email protected]> 52 52 */ 53 54 #ifdef DEBUG_michael55 # define DEBUG_VIDEO 156 #endif57 58 #ifdef DEBUG_VIDEO59 60 #define TRACE \61 do { \62 xf86Msg(X_INFO, __PRETTY_FUNCTION__); \63 xf86Msg(X_INFO, ": entering\n"); \64 } while(0)65 #define TRACE2 \66 do { \67 xf86Msg(X_INFO, __PRETTY_FUNCTION__); \68 xf86Msg(X_INFO, ": leaving\n"); \69 } while(0)70 #define TRACE3(...) \71 do { \72 xf86Msg(X_INFO, __PRETTY_FUNCTION__); \73 xf86Msg(X_INFO, __VA_ARGS__); \74 } while(0)75 76 #else /* DEBUG_VIDEO not defined */77 78 #define TRACE do { } while(0)79 #define TRACE2 do { } while(0)80 #define TRACE3(...) do { } while(0)81 82 #endif /* DEBUG_VIDEO not defined */83 84 #define BOOL_STR(a) ((a) ? "TRUE" : "FALSE")85 53 86 54 #include "xorg-server.h" … … 237 205 Bool rc = TRUE; 238 206 239 TRACE 3("width=%d, height=%d\n", width, height);207 TRACE_LOG("width=%d, height=%d\n", width, height); 240 208 /* We only support horizontal resolutions which are a multiple of 8. Round down if 241 209 necessary. */ … … 278 246 scrn->displayWidth = width; 279 247 } 280 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");248 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 281 249 return rc; 282 250 } … … 302 270 303 271 (void) mode; 304 TRACE 3("name=%s, HDisplay=%d, VDisplay=%d\n", adjusted_mode->name,272 TRACE_LOG("name=%s, HDisplay=%d, VDisplay=%d\n", adjusted_mode->name, 305 273 adjusted_mode->HDisplay, adjusted_mode->VDisplay); 306 274 /* We only support horizontal resolutions which are a multiple of 8. Round down if … … 325 293 { 326 294 (void) mode; 327 TRACE 3("name=%s, HDisplay=%d, VDisplay=%d, x=%d, y=%d\n", adjusted_mode->name,295 TRACE_LOG("name=%s, HDisplay=%d, VDisplay=%d, x=%d, y=%d\n", adjusted_mode->name, 328 296 adjusted_mode->HDisplay, adjusted_mode->VDisplay, x, y); 329 297 VBOXSetMode(crtc->scrn, adjusted_mode); … … 378 346 ScrnInfoPtr pScrn = output->scrn; 379 347 int rc = MODE_OK; 380 TRACE 3("HDisplay=%d, VDisplay=%d\n", mode->HDisplay, mode->VDisplay);348 TRACE_LOG("HDisplay=%d, VDisplay=%d\n", mode->HDisplay, mode->VDisplay); 381 349 /* We always like modes specified by the user in the configuration 382 350 * file, as doing otherwise is likely to annoy people. */ … … 387 355 ) 388 356 rc = MODE_BAD; 389 TRACE 3("returning %s\n", MODE_OK == rc ? "MODE_OK" : "MODE_BAD");357 TRACE_LOG("returning %s\n", MODE_OK == rc ? "MODE_OK" : "MODE_BAD"); 390 358 return rc; 391 359 } … … 413 381 Bool isPreferred, Bool isUserDef) 414 382 { 415 TRACE 3("pszName=%s, x=%d, y=%d\n", pszName, x, y);383 TRACE_LOG("pszName=%s, x=%d, y=%d\n", pszName, x, y); 416 384 DisplayModePtr pMode = xnfcalloc(1, sizeof(DisplayModeRec)); 417 385 … … 449 417 VBOXPtr pVBox = VBOXGetRec(pScrn); 450 418 451 TRACE ;419 TRACE_ENTRY(); 452 420 if (vbox_device_available(pVBox)) 453 421 { … … 474 442 FALSE, TRUE); 475 443 } 476 477 TRACE2; 444 TRACE_EXIT(); 478 445 return pModes; 479 446 } … … 551 518 }; 552 519 520 #ifdef VBOX_DRI 521 static const char *drmSymbols[] = { 522 "drmFreeVersion", 523 "drmGetVersion", 524 NULL 525 }; 526 527 static const char *driSymbols[] = { 528 "DRICloseScreen", 529 "DRICreateInfoRec", 530 "DRIDestroyInfoRec", 531 "DRIFinishScreenInit", 532 "DRIGetSAREAPrivate", 533 "DRILock", 534 "DRIMoveBuffersHelper", 535 "DRIQueryVersion", 536 "DRIScreenInit", 537 "DRIUnlock", 538 "GlxSetVisualConfigs", 539 "DRICreatePCIBusID", 540 NULL 541 }; 542 #endif 543 553 544 #ifdef XFree86LOADER 554 545 /* Module loader interface */ … … 594 585 vbeSymbols, 595 586 ramdacSymbols, 587 #ifdef VBOX_DRI 588 drmSymbols, driSymbols, 589 #endif 596 590 NULL); 597 591 return (pointer)TRUE; … … 629 623 ScrnInfoPtr pScrn; 630 624 631 TRACE ;625 TRACE_ENTRY(); 632 626 pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, VBOXPCIchipsets, 633 627 NULL, NULL, NULL, NULL, NULL); … … 651 645 } 652 646 653 TRACE 3("returning %s\n", BOOL_STR(pScrn != NULL));647 TRACE_LOG("returning %s\n", BOOL_STR(pScrn != NULL)); 654 648 return (pScrn != NULL); 655 649 } … … 695 689 pScrn->name = VBOX_NAME; 696 690 pScrn->Probe = VBOXProbe; 697 691 pScrn->PreInit = VBOXPreInit; 698 692 pScrn->ScreenInit = VBOXScreenInit; 699 693 pScrn->SwitchMode = VBOXSwitchMode; … … 909 903 pScrn->bitmapBitOrder = BITMAP_BIT_ORDER; 910 904 905 #ifdef VBOX_DRI 906 /* Load the dri module. */ 907 if (xf86LoadSubModule(pScrn, "dri")) { 908 xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL); 909 } 910 #endif 911 911 return (TRUE); 912 912 } … … 927 927 VBOXPtr pVBox = VBOXGetRec(pScrn); 928 928 929 TRACE 3("enable=%s\n", enable ? "TRUE" : "FALSE");929 TRACE_LOG("enable=%s\n", enable ? "TRUE" : "FALSE"); 930 930 pVBox->accessEnabled = enable; 931 931 pVBox->EnableDisableFBAccess(scrnIndex, enable); 932 TRACE 2;932 TRACE_EXIT(); 933 933 } 934 934 … … 985 985 if (!miSetPixmapDepths()) 986 986 return (FALSE); 987 988 #ifdef VBOX_DRI 989 pVBox->useDRI = VBOXDRIScreenInit(scrnIndex, pScreen, pVBox); 990 #endif 987 991 988 992 /* I checked in the sources, and XFree86 4.2 does seem to support … … 1077 1081 /* Report the largest resolution that we support */ 1078 1082 } 1083 1084 #ifdef VBOX_DRI 1085 if (pVBox->useDRI) 1086 pVBox->useDRI = VBOXDRIFinishScreenInit(pScreen); 1087 #endif 1079 1088 return (TRUE); 1080 1089 } … … 1087 1096 bool rc; 1088 1097 1089 TRACE ;1098 TRACE_ENTRY(); 1090 1099 pVBox->vtSwitch = FALSE; 1100 #ifdef VBOX_DRI 1101 if (pVBox->useDRI) 1102 DRIUnlock(screenInfo.screens[scrnIndex]); 1103 #endif 1091 1104 rc = xf86SetDesiredModes(pScrn); 1092 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1105 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1093 1106 return rc; 1094 1107 } … … 1100 1113 VBOXPtr pVBox = VBOXGetRec(pScrn); 1101 1114 1102 TRACE ;1115 TRACE_ENTRY(); 1103 1116 pVBox->vtSwitch = TRUE; 1104 1117 VBOXSaveRestore(pScrn, MODE_RESTORE); … … 1109 1122 vboxDisableGraphicsCap(pVBox); 1110 1123 } 1111 TRACE2; 1124 #ifdef VBOX_DRI 1125 if (pVBox->useDRI) 1126 DRILock(screenInfo.screens[scrnIndex], 0); 1127 #endif 1128 TRACE_EXIT(); 1112 1129 } 1113 1130 … … 1117 1134 ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 1118 1135 VBOXPtr pVBox = VBOXGetRec(pScrn); 1136 1137 #ifdef VBOX_DRI 1138 if (pVBox->useDRI) 1139 VBOXDRICloseScreen(pScreen, pVBox); 1140 pVBox->useDRI = false; 1141 #endif 1119 1142 1120 1143 if (vbox_device_available(pVBox)) … … 1163 1186 float v; 1164 1187 1165 TRACE 3("HDisplay=%d, VDisplay=%d, flag=%s, pass=%d\n",1188 TRACE_LOG("HDisplay=%d, VDisplay=%d, flag=%s, pass=%d\n", 1166 1189 p->HDisplay, p->VDisplay, flag ? "TRUE" : "FALSE", pass); 1167 1190 if (pass != MODECHECK_FINAL) { … … 1197 1220 xf86DrvMsg(scrn, X_WARNING, "Graphics mode %s rejected by the X server\n", p->name); 1198 1221 } 1199 TRACE 3("returning %d\n", ret);1222 TRACE_LOG("returning %d\n", ret); 1200 1223 return ret; 1201 1224 } … … 1208 1231 Bool rc; 1209 1232 1210 TRACE 3("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay);1233 TRACE_LOG("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay); 1211 1234 pScrn = xf86Screens[scrnIndex]; /* Why does X have three ways of refering to the screen? */ 1212 1235 pVBox = VBOXGetRec(pScrn); … … 1218 1241 if (pVBox->accessEnabled) 1219 1242 pVBox->EnableDisableFBAccess(scrnIndex, TRUE); 1220 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1243 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1221 1244 return rc; 1222 1245 } … … 1232 1255 1233 1256 int bpp = pScrn->depth == 24 ? 32 : 16; 1234 TRACE 3("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay);1257 TRACE_LOG("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay); 1235 1258 pVBox = VBOXGetRec(pScrn); 1236 1259 /* Don't fiddle with the hardware if we are switched … … 1276 1299 } 1277 1300 } 1278 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1301 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1279 1302 return rc; 1280 1303 } … … 1286 1309 ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 1287 1310 1288 TRACE ;1311 TRACE_ENTRY(); 1289 1312 /* Don't fiddle with the hardware if we are switched 1290 1313 * to a virtual terminal. */ … … 1299 1322 vboxEnableVbva(pScrn); 1300 1323 } 1301 TRACE 2;1324 TRACE_EXIT(); 1302 1325 } 1303 1326 … … 1314 1337 Bool rc = TRUE; 1315 1338 1316 TRACE ;1339 TRACE_ENTRY(); 1317 1340 if (NULL == pVBox->base) 1318 1341 { … … 1351 1374 rc = pVBox->base != NULL; 1352 1375 } 1353 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1376 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1354 1377 return rc; 1355 1378 } … … 1360 1383 VBOXPtr pVBox = VBOXGetRec(pScrn); 1361 1384 1362 TRACE ;1385 TRACE_ENTRY(); 1363 1386 if (pVBox->base == NULL) 1364 1387 return; … … 1375 1398 #endif 1376 1399 pVBox->base = NULL; 1377 TRACE 2;1400 TRACE_EXIT(); 1378 1401 } 1379 1402 … … 1390 1413 } while (0) 1391 1414 1392 TRACE ;1415 TRACE_ENTRY(); 1393 1416 for (i = 0; i < numColors; i++) { 1394 1417 idx = indices[i]; … … 1402 1425 VBOXDACDelay(); 1403 1426 } 1404 TRACE 2;1427 TRACE_EXIT(); 1405 1428 } 1406 1429 … … 1476 1499 Bool cont = TRUE; 1477 1500 1478 TRACE ;1501 TRACE_ENTRY(); 1479 1502 if (pVBox->fonts != NULL) 1480 1503 cont = FALSE; … … 1540 1563 WriteMiscOut(miscOut); 1541 1564 } 1542 TRACE 2;1565 TRACE_EXIT(); 1543 1566 } 1544 1567 … … 1549 1572 unsigned char miscOut, attr10, gr1, gr3, gr4, gr5, gr6, gr8, seq2, seq4, scrn; 1550 1573 1551 TRACE ;1574 TRACE_ENTRY(); 1552 1575 if (pVBox->fonts != NULL) 1553 1576 { … … 1611 1634 WriteSeq(0x04, seq4); 1612 1635 } 1613 TRACE 2;1636 TRACE_EXIT(); 1614 1637 } 1615 1638 … … 1620 1643 Bool rc = TRUE; 1621 1644 1622 TRACE ;1645 TRACE_ENTRY(); 1623 1646 if (MODE_QUERY < 0 || function > MODE_RESTORE) 1624 1647 rc = FALSE; … … 1673 1696 } 1674 1697 } 1675 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1698 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1676 1699 return rc; 1677 1700 }
Note:
See TracChangeset
for help on using the changeset viewer.