- Timestamp:
- Nov 18, 2010 9:47:50 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67925
- Location:
- trunk/src/VBox
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r34163 r34188 5235 5235 { 5236 5236 PVGASTATE pThis = PDMINS_2_DATA(pDevIns, PVGASTATE); 5237 #ifdef VBOX_WITH_VDMA 5238 vboxVDMASaveStateExecPrep(pThis->pVdma, pSSM); 5239 #endif 5237 5240 vgaR3SaveConfig(pThis, pSSM); 5238 5241 vga_save(pSSM, PDMINS_2_DATA(pDevIns, PVGASTATE)); 5239 5242 #ifdef VBOX_WITH_HGSMI 5240 5243 SSMR3PutBool(pSSM, true); 5241 return vboxVBVASaveStateExec(pDevIns, pSSM); 5244 int rc = vboxVBVASaveStateExec(pDevIns, pSSM); 5245 # ifdef VBOX_WITH_VDMA 5246 vboxVDMASaveStateExecDone(pThis->pVdma, pSSM); 5247 # endif 5248 return rc; 5242 5249 #else 5243 5250 SSMR3PutBool(pSSM, false); … … 6429 6436 if(rc == VINF_SUCCESS) 6430 6437 { 6431 /* @todo: perhaps this should be done from some guest->host callback, 6432 * that would as well specify the cmd pool size */ 6433 rc = vboxVDMAConstruct(pThis, &pThis->pVdma, 1024); 6438 rc = vboxVDMAConstruct(pThis, 1024); 6434 6439 AssertRC(rc); 6435 6440 } -
trunk/src/VBox/Devices/Graphics/DevVGA.h
r34129 r34188 550 550 # ifdef VBOX_WITH_VDMA 551 551 typedef struct VBOXVDMAHOST *PVBOXVDMAHOST; 552 int vboxVDMAConstruct(PVGASTATE pVGAState, struct VBOXVDMAHOST **ppVdma,uint32_t cPipeElements);552 int vboxVDMAConstruct(PVGASTATE pVGAState, uint32_t cPipeElements); 553 553 int vboxVDMADestruct(PVBOXVDMAHOST pVdma); 554 554 void vboxVDMAControl(PVBOXVDMAHOST pVdma, PVBOXVDMA_CTL pCmd); 555 555 void vboxVDMACommand(PVBOXVDMAHOST pVdma, PVBOXVDMACBUF_DR pCmd); 556 bool vboxVDMAIsEnabled(PVBOXVDMAHOST pVdma); 556 int vboxVDMASaveStateExecPrep(struct VBOXVDMAHOST *pVdma, PSSMHANDLE pSSM); 557 int vboxVDMASaveStateExecDone(struct VBOXVDMAHOST *pVdma, PSSMHANDLE pSSM); 557 558 # endif /* VBOX_WITH_VDMA */ 558 559 -
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r34141 r34188 1321 1321 } 1322 1322 1323 #ifdef VBOX_WITH_WDDM 1324 /* Size of some additional data. For future extensions. */ 1325 rc = SSMR3PutU32 (pSSM, 4); 1326 AssertRCReturn(rc, rc); 1327 rc = SSMR3PutU32 (pSSM, pVGAState->fGuestCaps); 1328 AssertRCReturn(rc, rc); 1329 #else 1323 1330 /* Size of some additional data. For future extensions. */ 1324 1331 rc = SSMR3PutU32 (pSSM, 0); 1325 1332 AssertRCReturn(rc, rc); 1333 #endif 1326 1334 } 1327 1335 } … … 1520 1528 rc = SSMR3GetU32 (pSSM, &cbExtra); 1521 1529 AssertRCReturn(rc, rc); 1530 #ifdef VBOX_WITH_WDDM 1531 if (cbExtra >= 4) 1532 { 1533 rc = SSMR3GetU32 (pSSM, &pVGAState->fGuestCaps); 1534 AssertRCReturn(rc, rc); 1535 cbExtra -= 4; 1536 } 1537 #endif 1522 1538 if (cbExtra > 0) 1523 1539 { -
trunk/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp
r34182 r34188 83 83 PHGSMIINSTANCE pHgsmi; 84 84 PVGASTATE pVGAState; 85 bool bEnabled;86 85 #ifdef VBOX_VDMA_WITH_WORKERTHREAD 87 86 VBOXVDMAPIPE Pipe; … … 203 202 } 204 203 205 static int vboxVDMACrCtlHgsmiSetup Async(struct VBOXVDMAHOST *pVdma)204 static int vboxVDMACrCtlHgsmiSetup(struct VBOXVDMAHOST *pVdma) 206 205 { 207 206 PVBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP pCmd = (PVBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP)vboxVDMACrCtlCreate( … … 211 210 PVGASTATE pVGAState = pVdma->pVGAState; 212 211 pCmd->pvRamBase = pVGAState->vram_ptrR3; 213 int rc = vboxVDMACrCtlPostAsync(pVGAState, &pCmd->Hdr, vboxVDMACrCtlCbReleaseCmd, NULL); 214 #ifdef DEBUG_misha 212 int rc = vboxVDMACrCtlPost(pVGAState, &pCmd->Hdr); 215 213 AssertRC(rc); 216 #endif217 #if 0218 214 if (RT_SUCCESS(rc)) 219 215 { … … 221 217 } 222 218 vboxVDMACrCtlRelease(&pCmd->Hdr); 223 #endif224 219 return rc; 225 220 } … … 1072 1067 #endif 1073 1068 1074 int vboxVDMAConstruct(PVGASTATE pVGAState, struct VBOXVDMAHOST **ppVdma,uint32_t cPipeElements)1069 int vboxVDMAConstruct(PVGASTATE pVGAState, uint32_t cPipeElements) 1075 1070 { 1076 1071 int rc; … … 1108 1103 # endif 1109 1104 #endif 1110 *ppVdma = pVdma; 1105 pVGAState->pVdma = pVdma; 1106 #ifdef VBOX_WITH_CRHGSMI 1107 rc = vboxVDMACrCtlHgsmiSetup(pVdma); 1108 # ifdef DEBUG_misha 1109 AssertRC(rc); 1110 # endif 1111 #endif 1111 1112 return VINF_SUCCESS; 1112 1113 #ifdef VBOX_VDMA_WITH_WORKERTHREAD … … 1168 1169 int vboxVDMASaveStateExecPrep(struct VBOXVDMAHOST *pVdma, PSSMHANDLE pSSM) 1169 1170 { 1171 #ifdef VBOX_WITH_CRHGSMI 1170 1172 PVGASTATE pVGAState = pVdma->pVGAState; 1171 1173 PVBOXVDMACMD_CHROMIUM_CTL pCmd = (PVBOXVDMACMD_CHROMIUM_CTL)vboxVDMACrCtlCreate( … … 1176 1178 int rc = vboxVDMACrCtlPost(pVGAState, pCmd); 1177 1179 AssertRC(rc); 1180 if (RT_SUCCESS(rc)) 1181 { 1182 rc = vboxVDMACrCtlGetRc(pCmd); 1183 } 1184 vboxVDMACrCtlRelease(pCmd); 1178 1185 return rc; 1179 1186 } 1180 1187 return VERR_NO_MEMORY; 1188 #else 1189 return VINF_SUCCESS; 1190 #endif 1181 1191 } 1182 1192 1183 1193 int vboxVDMASaveStateExecDone(struct VBOXVDMAHOST *pVdma, PSSMHANDLE pSSM) 1184 1194 { 1195 #ifdef VBOX_WITH_CRHGSMI 1185 1196 PVGASTATE pVGAState = pVdma->pVGAState; 1186 1197 PVBOXVDMACMD_CHROMIUM_CTL pCmd = (PVBOXVDMACMD_CHROMIUM_CTL)vboxVDMACrCtlCreate( … … 1191 1202 int rc = vboxVDMACrCtlPost(pVGAState, pCmd); 1192 1203 AssertRC(rc); 1204 if (RT_SUCCESS(rc)) 1205 { 1206 rc = vboxVDMACrCtlGetRc(pCmd); 1207 } 1208 vboxVDMACrCtlRelease(pCmd); 1193 1209 return rc; 1194 1210 } 1195 1211 return VERR_NO_MEMORY; 1212 #else 1213 return VINF_SUCCESS; 1214 #endif 1196 1215 } 1197 1216 … … 1205 1224 { 1206 1225 case VBOXVDMA_CTL_TYPE_ENABLE: 1207 {1208 pVdma->bEnabled = true;1209 1226 pCmd->i32Result = VINF_SUCCESS; 1210 #ifdef VBOX_WITH_CRHGSMI1211 /* @todo: use async completion to ensure we notify a status to guest */1212 int tmpRc = vboxVDMACrCtlHgsmiSetupAsync(pVdma);1213 AssertRC(tmpRc);1214 #endif1215 }1216 1227 break; 1217 1228 case VBOXVDMA_CTL_TYPE_DISABLE: 1218 pVdma->bEnabled = false;1219 1229 pCmd->i32Result = VINF_SUCCESS; 1220 1230 break; … … 1299 1309 AssertRC(tmpRc); 1300 1310 } 1301 1302 bool vboxVDMAIsEnabled(PVBOXVDMAHOST pVdma)1303 {1304 return pVdma->bEnabled;1305 } -
trunk/src/VBox/Main/DisplayImpl.cpp
r34140 r34188 2901 2901 rc = pVMMDev->hgcmHostSvcHandleCreate("VBoxSharedCrOpenGL", &mhCrOglSvc); 2902 2902 2903 if (RT_FAILURE(rc)) 2903 if (RT_SUCCESS(rc)) 2904 { 2905 Assert(mhCrOglSvc); 2906 } 2907 else 2904 2908 { 2905 2909 mhCrOglSvc = NULL;
Note:
See TracChangeset
for help on using the changeset viewer.