Changeset 51357 in vbox
- Timestamp:
- May 22, 2014 5:11:17 PM (11 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp
r51266 r51357 278 278 LogFlowFunc(("\n")); 279 279 280 vboxVBVAExCtlSubmitEnableDisable(pCtx, pHGSMICtx, false); 281 280 282 pCtx->fHwBufferOverflow = false; 281 283 pCtx->pRecord = NULL; 282 284 pCtx->pVBVA = NULL; 283 284 vboxVBVAExCtlSubmitEnableDisable(pCtx, pHGSMICtx, false);285 285 286 286 return; -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r51328 r51357 968 968 VBoxMPCmnUnmapAdapterMemory(VBoxCommonFromDeviceExt(pDevExt), (void**)&pDevExt->pvVisibleVram); 969 969 970 for (int i = VBoxCommonFromDeviceExt(pDevExt)->cDisplays-1; i >= 0; --i) 971 { 972 rc = vboxVbvaDisable(pDevExt, &pDevExt->aSources[i].Vbva); 970 if (pDevExt->fCmdVbvaEnabled) 971 { 972 rc = VBoxCmdVbvaDisable(pDevExt, &pDevExt->CmdVbva); 973 if (RT_SUCCESS(rc)) 974 { 975 rc = VBoxCmdVbvaDestroy(pDevExt, &pDevExt->CmdVbva); 976 if (RT_FAILURE(rc)) 977 WARN(("VBoxCmdVbvaDestroy failed %d", rc)); 978 } 979 else 980 WARN(("VBoxCmdVbvaDestroy failed %d", rc)); 981 982 } 983 else 984 { 985 for (int i = VBoxCommonFromDeviceExt(pDevExt)->cDisplays-1; i >= 0; --i) 986 { 987 rc = vboxVbvaDisable(pDevExt, &pDevExt->aSources[i].Vbva); 988 AssertRC(rc); 989 if (RT_SUCCESS(rc)) 990 { 991 rc = vboxVbvaDestroy(pDevExt, &pDevExt->aSources[i].Vbva); 992 AssertRC(rc); 993 if (RT_FAILURE(rc)) 994 { 995 /* @todo: */ 996 } 997 } 998 } 999 1000 vboxVideoAMgrDestroy(pDevExt, &pDevExt->AllocMgr); 1001 1002 rc = vboxVdmaDisable(pDevExt, &pDevExt->u.primary.Vdma); 973 1003 AssertRC(rc); 974 1004 if (RT_SUCCESS(rc)) 975 1005 { 976 rc = vboxVbvaDestroy(pDevExt, &pDevExt->aSources[i].Vbva); 1006 #ifdef VBOX_VDMA_WITH_WATCHDOG 1007 vboxWddmWdTerm(pDevExt); 1008 #endif 1009 rc = vboxVdmaDestroy(pDevExt, &pDevExt->u.primary.Vdma); 977 1010 AssertRC(rc); 978 if (RT_FAILURE(rc)) 979 { 980 /* @todo: */ 981 } 982 } 983 } 984 985 vboxVideoAMgrDestroy(pDevExt, &pDevExt->AllocMgr); 986 987 rc = vboxVdmaDisable(pDevExt, &pDevExt->u.primary.Vdma); 988 AssertRC(rc); 989 if (RT_SUCCESS(rc)) 990 { 991 #ifdef VBOX_VDMA_WITH_WATCHDOG 992 vboxWddmWdTerm(pDevExt); 993 #endif 994 rc = vboxVdmaDestroy(pDevExt, &pDevExt->u.primary.Vdma); 995 AssertRC(rc); 996 } 1011 } 1012 } 1013 997 1014 return rc; 998 1015 } -
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r51349 r51357 4650 4650 { 4651 4651 PVGASTATE pThis = IDISPLAYPORT_2_VGASTATE(pInterface); 4652 PDMDEV_ASSERT_EMT(VGASTATE2DEVINS(pThis)); 4652 /* this can be called from CmdVbva thread as a result of VBVA disable, 4653 * there should be no problem with calling it from there afaics */ 4654 // PDMDEV_ASSERT_EMT(VGASTATE2DEVINS(pThis)); 4653 4655 4654 4656 /* This is called both in VBVA mode and normal modes. */ -
trunk/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp
r51349 r51357 150 150 VBVAEXHOST_DATA_TYPE_GUESTCTL 151 151 } VBVAEXHOST_DATA_TYPE; 152 153 static DECLCALLBACK(int) vdmaVBVANotifyDisable(PVGASTATE pVGAState); 154 155 152 156 static VBVAEXHOST_DATA_TYPE VBoxVBVAExHPDataGet(struct VBVAEXHOSTCONTEXT *pCmdVbva, uint8_t **ppCmd, uint32_t *pcbCmd); 153 157 … … 1280 1284 if (fDoHgcmEnable) 1281 1285 { 1286 PVGASTATE pVGAState = pVdma->pVGAState; 1287 1282 1288 /* disable is a bit tricky 1283 1289 * we need to ensure the host ctl commands do not come out of order … … 1285 1291 rc = vboxVDMACrHgcmHandleEnable(pVdma); 1286 1292 if (RT_SUCCESS(rc)) 1287 return rc; 1288 1289 PVGASTATE pVGAState = pVdma->pVGAState; 1293 { 1294 vdmaVBVANotifyDisable(pVGAState); 1295 return VINF_SUCCESS; 1296 } 1297 1290 1298 VBOXCRCMD_SVRENABLE_INFO Info; 1291 1299 Info.hCltScr = pVGAState->pDrv;
Note:
See TracChangeset
for help on using the changeset viewer.