VirtualBox

Changeset 74493 in vbox


Ignore:
Timestamp:
Sep 27, 2018 11:46:54 AM (6 years ago)
Author:
vboxsync
Message:

WDDM: union for context specific data. bugref:8893

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Video
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/common/wddm/VBoxMPIf.h

    r74477 r74493  
    271271    /* true if d3d false if ddraw */
    272272    VBOXWDDM_CONTEXT_TYPE enmType;
    273     uint32_t crVersionMajor;
    274     uint32_t crVersionMinor;
    275     /* we use uint64_t instead of HANDLE to ensure structure def is the same for both 32-bit and 64-bit
    276      * since x64 kernel driver can be called by 32-bit UMD */
    277     uint64_t hUmEvent;
    278     /* info to be passed to UMD notification to identify the context */
    279     uint64_t u64UmInfo;
     273    union
     274    {
     275        struct
     276        {
     277            uint32_t crVersionMajor;
     278            uint32_t crVersionMinor;
     279            /* we use uint64_t instead of HANDLE to ensure structure def is the same for both 32-bit and 64-bit
     280             * since x64 kernel driver can be called by 32-bit UMD */
     281            uint64_t hUmEvent;
     282            /* info to be passed to UMD notification to identify the context */
     283            uint64_t u64UmInfo;
     284        } vbox;
     285    } u;
    280286} VBOXWDDM_CREATECONTEXT_INFO, *PVBOXWDDM_CREATECONTEXT_INFO;
    281287
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispCm.cpp

    r72621 r74493  
    124124        Info.enmType = VBOXWDDM_CONTEXT_TYPE_CUSTOM_3D;
    125125#ifdef VBOX_WITH_CROGL
    126         Info.crVersionMajor = CR_PROTOCOL_VERSION_MAJOR;
    127         Info.crVersionMinor = CR_PROTOCOL_VERSION_MINOR;
     126        Info.u.vbox.crVersionMajor = CR_PROTOCOL_VERSION_MAJOR;
     127        Info.u.vbox.crVersionMinor = CR_PROTOCOL_VERSION_MINOR;
    128128#else
    129129        WARN(("not expected"));
    130         Info.crVersionMajor = 0;
    131         Info.crVersionMinor = 0;
     130        Info.u.vbox.crVersionMajor = 0;
     131        Info.u.vbox.crVersionMinor = 0;
    132132#endif
    133133        fIsCrContext = TRUE;
     
    138138        fIsCrContext = FALSE;
    139139    }
    140     Info.hUmEvent = (uintptr_t)g_pVBoxCmMgr.Session.hEvent;
    141     Info.u64UmInfo = (uintptr_t)pContext;
     140    Info.u.vbox.hUmEvent = (uintptr_t)g_pVBoxCmMgr.Session.hEvent;
     141    Info.u.vbox.u64UmInfo = (uintptr_t)pContext;
    142142
    143143    if (VBOXDISPMODE_IS_3D(pDevice->pAdapter))
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispKmt.cpp

    r69500 r74493  
    376376    Info.u32IfVersion = 9;
    377377    Info.enmType = enmType;
    378     Info.crVersionMajor = crVersionMajor;
    379     Info.crVersionMinor = crVersionMinor;
    380     Info.hUmEvent = (uintptr_t)hEvent;
    381     Info.u64UmInfo = u64UmInfo;
     378    Info.u.vbox.crVersionMajor = crVersionMajor;
     379    Info.u.vbox.crVersionMinor = crVersionMinor;
     380    Info.u.vbox.hUmEvent = (uintptr_t)hEvent;
     381    Info.u.vbox.u64UmInfo = u64UmInfo;
    382382    D3DKMT_CREATECONTEXT ContextData = {0};
    383383    ContextData.hDevice = pDevice->hDevice;
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r74477 r74493  
    69456945                            {
    69466946                                pContext->enmType = VBOXWDDM_CONTEXT_TYPE_CUSTOM_3D;
    6947                                 Status = vboxVideoCmCtxAdd(&pDevice->pAdapter->CmMgr, &pContext->CmContext, (HANDLE)pInfo->hUmEvent, pInfo->u64UmInfo);
     6947                                Status = vboxVideoCmCtxAdd(&pDevice->pAdapter->CmMgr, &pContext->CmContext, (HANDLE)pInfo->u.vbox.hUmEvent, pInfo->u.vbox.u64UmInfo);
    69486948                                AssertNtStatusSuccess(Status);
    69496949                                if (Status == STATUS_SUCCESS)
    69506950                                {
    6951                                     if (pInfo->crVersionMajor || pInfo->crVersionMinor)
     6951                                    if (pInfo->u.vbox.crVersionMajor || pInfo->u.vbox.crVersionMinor)
    69526952                                    {
    69536953                                        if (pDevExt->f3DEnabled)
     
    69566956                                            {
    69576957                                                int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon,
    6958                                                     pInfo->crVersionMajor, pInfo->crVersionMinor,
     6958                                                    pInfo->u.vbox.crVersionMajor, pInfo->u.vbox.crVersionMinor,
    69596959                                                    &pContext->u32CrConClientID);
    69606960                                                if (RT_SUCCESS(rc))
     
    70047004                        if (Status == STATUS_SUCCESS)
    70057005                        {
    7006                             if (pInfo->crVersionMajor || pInfo->crVersionMinor)
     7006                            if (pInfo->u.vbox.crVersionMajor || pInfo->u.vbox.crVersionMinor)
    70077007                            {
    70087008                                if (pDevExt->f3DEnabled)
     
    70117011                                    {
    70127012                                        int rc = VBoxMpCrCtlConConnect(pDevExt, &pDevExt->CrCtlCon,
    7013                                             pInfo->crVersionMajor, pInfo->crVersionMinor,
     7013                                            pInfo->u.vbox.crVersionMajor, pInfo->u.vbox.crVersionMinor,
    70147014                                            &pContext->u32CrConClientID);
    70157015                                        if (!RT_SUCCESS(rc))
     
    70527052                    {
    70537053                        pContext->enmType = pInfo->enmType;
    7054                         Status = vboxVideoCmCtxAdd(&pDevice->pAdapter->SeamlessCtxMgr, &pContext->CmContext, (HANDLE)pInfo->hUmEvent, pInfo->u64UmInfo);
     7054                        Status = vboxVideoCmCtxAdd(&pDevice->pAdapter->SeamlessCtxMgr, &pContext->CmContext, (HANDLE)pInfo->u.vbox.hUmEvent, pInfo->u.vbox.u64UmInfo);
    70557055                        if (!NT_SUCCESS(Status))
    70567056                        {
Note: See TracChangeset for help on using the changeset viewer.

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