Changeset 71658 in vbox
- Timestamp:
- Apr 4, 2018 2:14:02 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 121685
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVdma.cpp
r71596 r71658 1182 1182 static NTSTATUS vboxVdmaCrCtlGetDefaultClientId(PVBOXMP_DEVEXT pDevExt, uint32_t *pu32ClienID) 1183 1183 { 1184 if (pDevExt->enmHwType != VBOX_HWTYPE_CROGL) 1185 { 1186 /* Should not be called at all in this case. */ 1187 AssertFailed(); 1188 return STATUS_UNSUCCESSFUL; 1189 } 1190 1184 1191 if (!pDevExt->u32CrConDefaultClientID) 1185 1192 { … … 1329 1336 NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData) 1330 1337 { 1338 if (pDevExt->enmHwType != VBOX_HWTYPE_CROGL) 1339 { 1340 /* Not used in this case. */ 1341 return STATUS_SUCCESS; 1342 } 1343 1331 1344 uint32_t u32CrConClientID; 1332 1345 NTSTATUS Status = vboxVdmaCrCtlGetDefaultClientId(pDevExt, &u32CrConClientID); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r71596 r71658 1149 1149 { 1150 1150 #ifdef VBOX_WITH_CROGL 1151 if (pDevExt->f3DEnabled) 1152 { 1153 pDevExt->fTexPresentEnabled = !!(VBoxMpCrGetHostCaps() & CR_VBOX_CAP_TEX_PRESENT); 1154 pDevExt->fCmdVbvaEnabled = !!(VBoxMpCrGetHostCaps() & CR_VBOX_CAP_CMDVBVA); 1151 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 1152 { 1153 if (pDevExt->f3DEnabled) 1154 { 1155 pDevExt->fTexPresentEnabled = !!(VBoxMpCrGetHostCaps() & CR_VBOX_CAP_TEX_PRESENT); 1156 pDevExt->fCmdVbvaEnabled = !!(VBoxMpCrGetHostCaps() & CR_VBOX_CAP_CMDVBVA); 1155 1157 # if 0 1156 pDevExt->fComplexTopologiesEnabled = pDevExt->fCmdVbvaEnabled;1158 pDevExt->fComplexTopologiesEnabled = pDevExt->fCmdVbvaEnabled; 1157 1159 # else 1158 pDevExt->fComplexTopologiesEnabled = FALSE;1160 pDevExt->fComplexTopologiesEnabled = FALSE; 1159 1161 # endif 1162 } 1163 else 1164 { 1165 pDevExt->fTexPresentEnabled = FALSE; 1166 pDevExt->fCmdVbvaEnabled = FALSE; 1167 pDevExt->fComplexTopologiesEnabled = FALSE; 1168 } 1169 #endif 1160 1170 } 1161 1171 else 1162 1172 { 1173 pDevExt->f3DEnabled = FALSE; 1163 1174 pDevExt->fTexPresentEnabled = FALSE; 1164 1175 pDevExt->fCmdVbvaEnabled = FALSE; 1165 1176 pDevExt->fComplexTopologiesEnabled = FALSE; 1166 1177 } 1167 #endif1168 1178 1169 1179 /* Guest supports only HGSMI, the old VBVA via VMMDev is not supported. … … 1367 1377 1368 1378 #ifdef VBOX_WITH_CROGL 1369 if (pDevExt-> u32CrConDefaultClientID)1379 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pDevExt->u32CrConDefaultClientID) 1370 1380 VBoxMpCrCtlConDisconnect(pDevExt, &pDevExt->CrCtlCon, pDevExt->u32CrConDefaultClientID); 1371 1381 … … 2325 2335 memset (pQi, 0, sizeof (VBOXWDDM_QI)); 2326 2336 pQi->u32Version = VBOXVIDEOIF_VERSION; 2337 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 2338 { 2327 2339 #ifdef VBOX_WITH_CROGL 2328 pQi->u32VBox3DCaps = VBoxMpCrGetHostCaps(); 2329 #endif 2340 pQi->u32VBox3DCaps = VBoxMpCrGetHostCaps(); 2341 #endif 2342 } 2343 else 2344 pQi->u32VBox3DCaps = 0; 2330 2345 pQi->cInfos = VBoxCommonFromDeviceExt(pDevExt)->cDisplays; 2331 2346 #ifdef VBOX_WITH_VIDEOHWACCEL … … 2839 2854 /* wait for all current allocation-related ops are completed */ 2840 2855 vboxWddmAllocationCleanup(pDevExt, pAlloc); 2841 if (p Alloc->hSharedHandle && pAlloc->AllocData.hostID)2856 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pAlloc->hSharedHandle && pAlloc->AllocData.hostID) 2842 2857 VBoxVdmaChromiumParameteriCRSubmit(pDevExt, GL_PIN_TEXTURE_CLEAR_CR, pAlloc->AllocData.hostID); 2843 2858 vboxWddmAllocationDestroy(pAlloc); … … 4545 4560 if (pEscape->PrivateDriverDataSize == sizeof (*pEscapeHdr)) 4546 4561 { 4547 pEscapeHdr->u32CmdSpecific = VBoxMpCrGetHostCaps(); 4562 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 4563 pEscapeHdr->u32CmdSpecific = VBoxMpCrGetHostCaps(); 4564 else 4565 pEscapeHdr->u32CmdSpecific = 0; 4548 4566 Status = STATUS_SUCCESS; 4549 4567 } … … 6881 6899 } 6882 6900 6901 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 6902 { 6883 6903 #ifdef VBOX_WITH_CROGL 6884 if (!VBOXWDDM_IS_DISPLAYONLY() && pDevExt->f3DEnabled) 6885 { 6886 VBoxMpCrPackerInit(&pContext->CrPacker); 6887 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, CR_PROTOCOL_VERSION_MAJOR, CR_PROTOCOL_VERSION_MINOR, &pContext->u32CrConClientID); 6888 if (!RT_SUCCESS(rc)) 6889 WARN(("VBoxMpCrCtlConConnect failed rc (%d), ignoring for system context", rc)); 6890 } 6891 #endif 6904 if (!VBOXWDDM_IS_DISPLAYONLY() && pDevExt->f3DEnabled) 6905 { 6906 VBoxMpCrPackerInit(&pContext->CrPacker); 6907 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, CR_PROTOCOL_VERSION_MAJOR, CR_PROTOCOL_VERSION_MINOR, &pContext->u32CrConClientID); 6908 if (!RT_SUCCESS(rc)) 6909 WARN(("VBoxMpCrCtlConConnect failed rc (%d), ignoring for system context", rc)); 6910 } 6911 #endif 6912 } 6892 6913 Status = STATUS_SUCCESS; 6893 6914 } … … 6929 6950 if (pDevExt->f3DEnabled) 6930 6951 { 6931 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, 6932 pInfo->crVersionMajor, pInfo->crVersionMinor, 6933 &pContext->u32CrConClientID); 6934 if (RT_SUCCESS(rc)) 6952 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 6935 6953 { 6936 VBoxMpCrPackerInit(&pContext->CrPacker); 6937 } 6938 else 6939 { 6940 WARN(("VBoxMpCrCtlConConnect failed rc (%d)", rc)); 6941 Status = STATUS_UNSUCCESSFUL; 6954 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, 6955 pInfo->crVersionMajor, pInfo->crVersionMinor, 6956 &pContext->u32CrConClientID); 6957 if (RT_SUCCESS(rc)) 6958 { 6959 VBoxMpCrPackerInit(&pContext->CrPacker); 6960 } 6961 else 6962 { 6963 WARN(("VBoxMpCrCtlConConnect failed rc (%d)", rc)); 6964 Status = STATUS_UNSUCCESSFUL; 6965 } 6942 6966 } 6943 6967 } … … 6981 7005 if (pDevExt->f3DEnabled) 6982 7006 { 6983 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, 6984 pInfo->crVersionMajor, pInfo->crVersionMinor, 6985 &pContext->u32CrConClientID); 6986 if (!RT_SUCCESS(rc)) 7007 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL) 6987 7008 { 6988 WARN(("VBoxMpCrCtlConConnect failed rc (%d)", rc)); 6989 Status = STATUS_UNSUCCESSFUL; 7009 int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon, 7010 pInfo->crVersionMajor, pInfo->crVersionMinor, 7011 &pContext->u32CrConClientID); 7012 if (!RT_SUCCESS(rc)) 7013 { 7014 WARN(("VBoxMpCrCtlConConnect failed rc (%d)", rc)); 7015 Status = STATUS_UNSUCCESSFUL; 7016 } 6990 7017 } 6991 7018 } … … 7118 7145 7119 7146 #ifdef VBOX_WITH_CROGL 7120 if (p Context->u32CrConClientID)7147 if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pContext->u32CrConClientID) 7121 7148 { 7122 7149 VBoxMpCrCtlConDisconnect(pDevExt, &pDevExt->CrCtlCon, pContext->u32CrConClientID); … … 7251 7278 7252 7279 RECT UpdateRect; 7280 RT_ZERO(UpdateRect); 7253 7281 BOOLEAN bUpdateRectInited = FALSE; 7254 7282
Note:
See TracChangeset
for help on using the changeset viewer.