Changeset 17318 in vbox for trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo_15.c
- Timestamp:
- Mar 3, 2009 9:24:52 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo_15.c
r16753 r17318 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 TRACE 2;444 TRACE_EXIT(); 477 445 return pModes; 478 446 } … … 550 518 }; 551 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 552 544 #ifdef XFree86LOADER 553 545 /* Module loader interface */ … … 593 585 vbeSymbols, 594 586 ramdacSymbols, 587 #ifdef VBOX_DRI 588 drmSymbols, driSymbols, 589 #endif 595 590 NULL); 596 591 return (pointer)TRUE; … … 628 623 ScrnInfoPtr pScrn; 629 624 630 TRACE ;625 TRACE_ENTRY(); 631 626 pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, VBOXPCIchipsets, 632 627 NULL, NULL, NULL, NULL, NULL); … … 650 645 } 651 646 652 TRACE 3("returning %s\n", BOOL_STR(pScrn != NULL));647 TRACE_LOG("returning %s\n", BOOL_STR(pScrn != NULL)); 653 648 return (pScrn != NULL); 654 649 } … … 694 689 pScrn->name = VBOX_NAME; 695 690 pScrn->Probe = VBOXProbe; 696 691 pScrn->PreInit = VBOXPreInit; 697 692 pScrn->ScreenInit = VBOXScreenInit; 698 693 pScrn->SwitchMode = VBOXSwitchMode; … … 908 903 pScrn->bitmapBitOrder = BITMAP_BIT_ORDER; 909 904 905 #ifdef VBOX_DRI 906 /* Load the dri module. */ 907 if (xf86LoadSubModule(pScrn, "dri")) { 908 xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL); 909 } 910 #endif 910 911 return (TRUE); 911 912 } … … 926 927 VBOXPtr pVBox = VBOXGetRec(pScrn); 927 928 928 TRACE 3("enable=%s\n", enable ? "TRUE" : "FALSE");929 TRACE_LOG("enable=%s\n", enable ? "TRUE" : "FALSE"); 929 930 pVBox->accessEnabled = enable; 930 931 pVBox->EnableDisableFBAccess(scrnIndex, enable); 931 TRACE 2;932 TRACE_EXIT(); 932 933 } 933 934 … … 984 985 if (!miSetPixmapDepths()) 985 986 return (FALSE); 987 988 #ifdef VBOX_DRI 989 pVBox->useDRI = VBOXDRIScreenInit(scrnIndex, pScreen, pVBox); 990 #endif 986 991 987 992 /* I checked in the sources, and XFree86 4.2 does seem to support … … 1076 1081 /* Report the largest resolution that we support */ 1077 1082 } 1083 1084 #ifdef VBOX_DRI 1085 if (pVBox->useDRI) 1086 pVBox->useDRI = VBOXDRIFinishScreenInit(pScreen); 1087 #endif 1078 1088 return (TRUE); 1079 1089 } … … 1086 1096 bool rc; 1087 1097 1088 TRACE ;1098 TRACE_ENTRY(); 1089 1099 pVBox->vtSwitch = FALSE; 1100 #ifdef VBOX_DRI 1101 if (pVBox->useDRI) 1102 DRIUnlock(screenInfo.screens[scrnIndex]); 1103 #endif 1090 1104 rc = xf86SetDesiredModes(pScrn); 1091 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1105 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1092 1106 return rc; 1093 1107 } … … 1099 1113 VBOXPtr pVBox = VBOXGetRec(pScrn); 1100 1114 1101 TRACE ;1115 TRACE_ENTRY(); 1102 1116 pVBox->vtSwitch = TRUE; 1103 1117 VBOXSaveRestore(pScrn, MODE_RESTORE); … … 1108 1122 vboxDisableGraphicsCap(pVBox); 1109 1123 } 1110 TRACE2; 1124 #ifdef VBOX_DRI 1125 if (pVBox->useDRI) 1126 DRILock(screenInfo.screens[scrnIndex], 0); 1127 #endif 1128 TRACE_EXIT(); 1111 1129 } 1112 1130 … … 1116 1134 ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 1117 1135 VBOXPtr pVBox = VBOXGetRec(pScrn); 1136 1137 #ifdef VBOX_DRI 1138 if (pVBox->useDRI) 1139 VBOXDRICloseScreen(pScreen, pVBox); 1140 pVBox->useDRI = false; 1141 #endif 1118 1142 1119 1143 if (vbox_device_available(pVBox)) … … 1162 1186 float v; 1163 1187 1164 TRACE 3("HDisplay=%d, VDisplay=%d, flag=%s, pass=%d\n",1188 TRACE_LOG("HDisplay=%d, VDisplay=%d, flag=%s, pass=%d\n", 1165 1189 p->HDisplay, p->VDisplay, flag ? "TRUE" : "FALSE", pass); 1166 1190 if (pass != MODECHECK_FINAL) { … … 1196 1220 xf86DrvMsg(scrn, X_WARNING, "Graphics mode %s rejected by the X server\n", p->name); 1197 1221 } 1198 TRACE 3("returning %d\n", ret);1222 TRACE_LOG("returning %d\n", ret); 1199 1223 return ret; 1200 1224 } … … 1207 1231 Bool rc; 1208 1232 1209 TRACE 3("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay);1233 TRACE_LOG("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay); 1210 1234 pScrn = xf86Screens[scrnIndex]; /* Why does X have three ways of refering to the screen? */ 1211 1235 pVBox = VBOXGetRec(pScrn); … … 1217 1241 if (pVBox->accessEnabled) 1218 1242 pVBox->EnableDisableFBAccess(scrnIndex, TRUE); 1219 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1243 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1220 1244 return rc; 1221 1245 } … … 1231 1255 1232 1256 int bpp = pScrn->depth == 24 ? 32 : 16; 1233 TRACE 3("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay);1257 TRACE_LOG("HDisplay=%d, VDisplay=%d\n", pMode->HDisplay, pMode->VDisplay); 1234 1258 pVBox = VBOXGetRec(pScrn); 1235 1259 /* Don't fiddle with the hardware if we are switched … … 1275 1299 } 1276 1300 } 1277 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1301 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1278 1302 return rc; 1279 1303 } … … 1285 1309 ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; 1286 1310 1287 TRACE ;1311 TRACE_ENTRY(); 1288 1312 /* Don't fiddle with the hardware if we are switched 1289 1313 * to a virtual terminal. */ … … 1298 1322 vboxEnableVbva(pScrn); 1299 1323 } 1300 TRACE 2;1324 TRACE_EXIT(); 1301 1325 } 1302 1326 … … 1313 1337 Bool rc = TRUE; 1314 1338 1315 TRACE ;1339 TRACE_ENTRY(); 1316 1340 if (NULL == pVBox->base) 1317 1341 { … … 1350 1374 rc = pVBox->base != NULL; 1351 1375 } 1352 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1376 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1353 1377 return rc; 1354 1378 } … … 1359 1383 VBOXPtr pVBox = VBOXGetRec(pScrn); 1360 1384 1361 TRACE ;1385 TRACE_ENTRY(); 1362 1386 if (pVBox->base == NULL) 1363 1387 return; … … 1374 1398 #endif 1375 1399 pVBox->base = NULL; 1376 TRACE 2;1400 TRACE_EXIT(); 1377 1401 } 1378 1402 … … 1389 1413 } while (0) 1390 1414 1391 TRACE ;1415 TRACE_ENTRY(); 1392 1416 for (i = 0; i < numColors; i++) { 1393 1417 idx = indices[i]; … … 1401 1425 VBOXDACDelay(); 1402 1426 } 1403 TRACE 2;1427 TRACE_EXIT(); 1404 1428 } 1405 1429 … … 1475 1499 Bool cont = TRUE; 1476 1500 1477 TRACE ;1501 TRACE_ENTRY(); 1478 1502 if (pVBox->fonts != NULL) 1479 1503 cont = FALSE; … … 1539 1563 WriteMiscOut(miscOut); 1540 1564 } 1541 TRACE 2;1565 TRACE_EXIT(); 1542 1566 } 1543 1567 … … 1548 1572 unsigned char miscOut, attr10, gr1, gr3, gr4, gr5, gr6, gr8, seq2, seq4, scrn; 1549 1573 1550 TRACE ;1574 TRACE_ENTRY(); 1551 1575 if (pVBox->fonts != NULL) 1552 1576 { … … 1610 1634 WriteSeq(0x04, seq4); 1611 1635 } 1612 TRACE 2;1636 TRACE_EXIT(); 1613 1637 } 1614 1638 … … 1619 1643 Bool rc = TRUE; 1620 1644 1621 TRACE ;1645 TRACE_ENTRY(); 1622 1646 if (MODE_QUERY < 0 || function > MODE_RESTORE) 1623 1647 rc = FALSE; … … 1672 1696 } 1673 1697 } 1674 TRACE 3("returning %s\n", rc ? "TRUE" : "FALSE");1698 TRACE_LOG("returning %s\n", rc ? "TRUE" : "FALSE"); 1675 1699 return rc; 1676 1700 }
Note:
See TracChangeset
for help on using the changeset viewer.