VirtualBox

Changeset 71658 in vbox


Ignore:
Timestamp:
Apr 4, 2018 2:14:02 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
121685
Message:

WDDM: miniport adjustments for DevExt changes.

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  
    11821182static NTSTATUS vboxVdmaCrCtlGetDefaultClientId(PVBOXMP_DEVEXT pDevExt, uint32_t *pu32ClienID)
    11831183{
     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
    11841191    if (!pDevExt->u32CrConDefaultClientID)
    11851192    {
     
    13291336NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData)
    13301337{
     1338    if (pDevExt->enmHwType != VBOX_HWTYPE_CROGL)
     1339    {
     1340        /* Not used in this case. */
     1341        return STATUS_SUCCESS;
     1342    }
     1343
    13311344    uint32_t u32CrConClientID;
    13321345    NTSTATUS Status = vboxVdmaCrCtlGetDefaultClientId(pDevExt, &u32CrConClientID);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r71596 r71658  
    11491149            {
    11501150#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);
    11551157# if 0
    1156                     pDevExt->fComplexTopologiesEnabled = pDevExt->fCmdVbvaEnabled;
     1158                        pDevExt->fComplexTopologiesEnabled = pDevExt->fCmdVbvaEnabled;
    11571159# else
    1158                     pDevExt->fComplexTopologiesEnabled = FALSE;
     1160                        pDevExt->fComplexTopologiesEnabled = FALSE;
    11591161# endif
     1162                    }
     1163                    else
     1164                    {
     1165                        pDevExt->fTexPresentEnabled = FALSE;
     1166                        pDevExt->fCmdVbvaEnabled = FALSE;
     1167                        pDevExt->fComplexTopologiesEnabled = FALSE;
     1168                    }
     1169#endif
    11601170                }
    11611171                else
    11621172                {
     1173                    pDevExt->f3DEnabled = FALSE;
    11631174                    pDevExt->fTexPresentEnabled = FALSE;
    11641175                    pDevExt->fCmdVbvaEnabled = FALSE;
    11651176                    pDevExt->fComplexTopologiesEnabled = FALSE;
    11661177                }
    1167 #endif
    11681178
    11691179                /* Guest supports only HGSMI, the old VBVA via VMMDev is not supported.
     
    13671377
    13681378#ifdef VBOX_WITH_CROGL
    1369     if (pDevExt->u32CrConDefaultClientID)
     1379    if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pDevExt->u32CrConDefaultClientID)
    13701380        VBoxMpCrCtlConDisconnect(pDevExt, &pDevExt->CrCtlCon, pDevExt->u32CrConDefaultClientID);
    13711381
     
    23252335                    memset (pQi, 0, sizeof (VBOXWDDM_QI));
    23262336                    pQi->u32Version = VBOXVIDEOIF_VERSION;
     2337                    if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL)
     2338                    {
    23272339#ifdef VBOX_WITH_CROGL
    2328                     pQi->u32VBox3DCaps = VBoxMpCrGetHostCaps();
    2329 #endif
     2340                        pQi->u32VBox3DCaps = VBoxMpCrGetHostCaps();
     2341#endif
     2342                    }
     2343                    else
     2344                        pQi->u32VBox3DCaps = 0;
    23302345                    pQi->cInfos = VBoxCommonFromDeviceExt(pDevExt)->cDisplays;
    23312346#ifdef VBOX_WITH_VIDEOHWACCEL
     
    28392854        /* wait for all current allocation-related ops are completed */
    28402855        vboxWddmAllocationCleanup(pDevExt, pAlloc);
    2841         if (pAlloc->hSharedHandle && pAlloc->AllocData.hostID)
     2856        if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pAlloc->hSharedHandle && pAlloc->AllocData.hostID)
    28422857            VBoxVdmaChromiumParameteriCRSubmit(pDevExt, GL_PIN_TEXTURE_CLEAR_CR, pAlloc->AllocData.hostID);
    28432858        vboxWddmAllocationDestroy(pAlloc);
     
    45454560                if (pEscape->PrivateDriverDataSize == sizeof (*pEscapeHdr))
    45464561                {
    4547                     pEscapeHdr->u32CmdSpecific = VBoxMpCrGetHostCaps();
     4562                    if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL)
     4563                        pEscapeHdr->u32CmdSpecific = VBoxMpCrGetHostCaps();
     4564                    else
     4565                        pEscapeHdr->u32CmdSpecific = 0;
    45484566                    Status = STATUS_SUCCESS;
    45494567                }
     
    68816899            }
    68826900
     6901            if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL)
     6902            {
    68836903#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            }
    68926913            Status = STATUS_SUCCESS;
    68936914        }
     
    69296950                                        if (pDevExt->f3DEnabled)
    69306951                                        {
    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)
    69356953                                            {
    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                                                }
    69426966                                            }
    69436967                                        }
     
    69817005                                if (pDevExt->f3DEnabled)
    69827006                                {
    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)
    69877008                                    {
    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                                        }
    69907017                                    }
    69917018                                }
     
    71187145
    71197146#ifdef VBOX_WITH_CROGL
    7120     if (pContext->u32CrConClientID)
     7147    if (pDevExt->enmHwType == VBOX_HWTYPE_CROGL && pContext->u32CrConClientID)
    71217148    {
    71227149        VBoxMpCrCtlConDisconnect(pDevExt, &pDevExt->CrCtlCon, pContext->u32CrConClientID);
     
    72517278
    72527279    RECT UpdateRect;
     7280    RT_ZERO(UpdateRect);
    72537281    BOOLEAN bUpdateRectInited = FALSE;
    72547282
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette