VirtualBox

Changeset 34884 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Dec 9, 2010 1:24:02 PM (14 years ago)
Author:
vboxsync
Message:

Ogl: make HGSMI be properly disabled for non-WDDM

Location:
trunk/src/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxCrHgsmi.cpp

    r33714 r34884  
    138138}
    139139#else
     140static int vboxCrHgsmiInitPerform(VBOXDISPKMT_CALLBACKS *pCallbacks)
     141{
     142    HRESULT hr = vboxDispKmtCallbacksInit(pCallbacks);
     143    Assert(hr == S_OK);
     144    if (hr == S_OK)
     145    {
     146        /* check if we can create the hgsmi */
     147        PVBOXUHGSMI pHgsmi = VBoxCrHgsmiCreate();
     148        if (pHgsmi)
     149        {
     150            /* yes, we can, so this is wddm mode */
     151            VBoxCrHgsmiDestroy(pHgsmi);
     152            Log(("CrHgsmi: WDDM mode supported\n"));
     153            return 1;
     154        }
     155        vboxDispKmtCallbacksTerm(pCallbacks);
     156    }
     157    Log(("CrHgsmi: unsupported\n"));
     158    return -1;
     159}
     160
    140161VBOXCRHGSMI_DECL(int) VBoxCrHgsmiInit()
    141162{
    142163    if (!g_bVBoxKmtCallbacksInited)
    143164    {
    144         HRESULT hr = vboxDispKmtCallbacksInit(&g_VBoxCrHgsmiKmtCallbacks);
    145         Assert(hr == S_OK);
    146         if (hr == S_OK)
    147             g_bVBoxKmtCallbacksInited = 1;
    148         else
    149             g_bVBoxKmtCallbacksInited = -1;
    150     }
    151 
    152     Assert(g_bVBoxKmtCallbacksInited);
    153     if (g_bVBoxKmtCallbacksInited < 0)
    154     {
    155         Assert(0);
    156         return VERR_NOT_SUPPORTED;
    157     }
    158 
    159     return VINF_SUCCESS;
     165        g_bVBoxKmtCallbacksInited = vboxCrHgsmiInitPerform(&g_VBoxCrHgsmiKmtCallbacks);
     166        Assert(g_bVBoxKmtCallbacksInited);
     167    }
     168
     169    return g_bVBoxKmtCallbacksInited > 0 ? VINF_SUCCESS : VERR_NOT_SUPPORTED;
    160170}
    161171
     
    170180        HRESULT hr = vboxUhgsmiKmtEscCreate(pHgsmiGL, TRUE /* bD3D tmp for injection thread*/);
    171181#endif
    172         Assert(hr == S_OK);
     182        Log(("CrHgsmi: faled to create KmtEsc UHGSMI instance, hr (0x%x)\n", hr));
    173183        if (hr == S_OK)
    174184        {
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxUhgsmiKmt.cpp

    r34345 r34884  
    412412    {
    413413        hr = vboxDispKmtOpenAdapter(&pHgsmi->Callbacks, &pHgsmi->Adapter);
     414#ifdef DEBUG_misha
     415        /* may fail with xpdm driver */
    414416        Assert(hr == S_OK);
     417#endif
    415418        if (hr == S_OK)
    416419        {
     
    625628    {
    626629        NTSTATUS Status = pCallbacks->pfnD3DKMTOpenAdapterFromHdc(&OpenAdapterData);
     630#ifdef DEBUG_misha
     631        /* may fail with xpdm driver */
    627632        Assert(!Status);
     633#endif
    628634        if (!Status)
    629635        {
  • trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c

    r34571 r34884  
    16121612        rc = VBoxCrHgsmiInit(&Callbacks);
    16131613#endif
    1614         AssertRC(rc);
    16151614        if (RT_SUCCESS(rc))
    16161615            bHasHGSMI = 1;
    16171616        else
    16181617            bHasHGSMI = 0;
    1619     }
    1620 
    1621     Assert(bHasHGSMI);
     1618
     1619        crDebug("CrHgsmi is %s", bHasHGSMI ? "ENABLED" : "DISABLED");
     1620    }
     1621
     1622    Assert(bHasHGSMI >= 0);
    16221623
    16231624    return bHasHGSMI;
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