VirtualBox

Ignore:
Timestamp:
Oct 19, 2010 4:37:06 PM (14 years ago)
Author:
vboxsync
Message:

wddm/3d: chromium hgsmi working (still disabled to make some cleaning)

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r33117 r33241  
    8686 VBoxDispD3D_DEFS   += VBOXWDDM_TEST_UHGSMI
    8787endif
    88 ifdef VBOX_WITH_CRHGSMI
    89  VBoxDispD3D_DEFS   += VBOX_WITH_CRHGSMI
    90 endif
    9188VBoxDispD3D_SOURCES  = \
    9289        wddm/VBoxDispD3D.cpp \
     
    9592    wddm/VBoxDispMp.cpp \
    9693    wddm/VBoxScreen.cpp \
    97     $(if $(VBOX_WITH_CRHGSMI),wddm/VBoxUhgsmiDisp.cpp,) \
    98     $(if $(VBOX_WITH_CRHGSMI),wddm/VBoxUhgsmiKmt.cpp,) \
    9994    wddm/VBoxDispMpTst.cpp \
    10095        wddm/VBoxDispD3D.def \
    10196        wddm/VBoxDispD3D.rc
     97#ifdef VBOX_WITH_CRHGSMI
     98#VBoxDispD3D_SOURCES += \
     99#    wddm/VBoxUhgsmiDisp.cpp \
     100#    wddm/VBoxUhgsmiKmt.cpp
     101#VBoxDispD3D_DEFS   += VBOX_WITH_CRHGSMI
     102#endif
    102103VBoxDispD3D_LIBS     = \
    103104        $(VBOX_LIB_IPRT_GUEST_R3) \
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxCrHgsmi.cpp

    r33171 r33241  
    109109VBOXCRHGSMI_DECL(int) VBoxCrHgsmiTerm()
    110110{
     111    Assert(0);
     112#if 0
    111113    PVBOXUHGSMI_PRIVATE_KMT pHgsmiGL = gt_pHgsmiGL;
    112114    if (pHgsmiGL)
     
    119121    if (g_pfnVBoxDispCrHgsmiTerm)
    120122        g_pfnVBoxDispCrHgsmiTerm();
     123#endif
    121124    return VINF_SUCCESS;
    122125}
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp

    r33216 r33241  
    29032903
    29042904            vboxVDbgPrint(("VBoxDispD3D: DLL loaded.\n"));
    2905 #ifdef VBOXWDDMDISP_DEBUG
     2905#ifdef VBOXWDDMDISP_DEBUG_VEHANDLER
    29062906            vboxVDbgVEHandlerRegister();
    29072907#endif
     
    29392939        case DLL_PROCESS_DETACH:
    29402940        {
    2941 #ifdef VBOXWDDMDISP_DEBUG
     2941#ifdef VBOXWDDMDISP_DEBUG_VEHANDLER
    29422942            vboxVDbgVEHandlerUnregister();
    29432943#endif
     
    80118011    vboxVDbgDoMpPrintF(pDevice, "%s left(%d), top(%d), right(%d), bottom(%d) %s", pPrefix, pRect->left, pRect->top, pRect->right, pRect->bottom, pSuffix);
    80128012}
     8013#endif
     8014
     8015#ifdef VBOXWDDMDISP_DEBUG_VEHANDLER
    80138016
    80148017static PVOID g_VBoxWDbgVEHandler = NULL;
     
    80238026            break;
    80248027        default:
    8025             Assert(0);
     8028            AssertRelease(0);
    80268029            break;
    80278030    }
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3DCmn.h

    r33117 r33241  
    4444# define VBOXWDDMDISP_DEBUG_FLOW
    4545# define VBOXWDDMDISP_DEBUG_DUMPSURFDATA
     46# define VBOXWDDMDISP_DEBUG_VEHANDLER
    4647#endif
     48
     49//#define VBOXWDDMDISP_DEBUG_VEHANDLER
    4750
    4851#if defined(VBOXWDDMDISP_DEBUG) || defined(VBOX_WDDMDISP_WITH_PROFILE) || defined(VBOXWDDM_TEST_UHGSMI)
     
    7073#endif
    7174
     75#ifdef VBOXWDDMDISP_DEBUG_VEHANDLER
     76void vboxVDbgVEHandlerRegister();
     77void vboxVDbgVEHandlerUnregister();
     78#endif
     79
    7280#ifdef VBOXWDDMDISP_DEBUG
    7381extern bool g_VDbgTstDumpEnable;
     
    7785void vboxVDbgDoMpPrintRect(const PVBOXWDDMDISP_DEVICE pDevice, const char * pPrefix, const RECT *pRect, const char * pSuffix);
    7886void vboxVDbgDoMpPrintAlloc(const PVBOXWDDMDISP_DEVICE pDevice, const char * pPrefix, const PVBOXWDDMDISP_RESOURCE pRc, uint32_t iAlloc, const char * pSuffix);
    79 void vboxVDbgVEHandlerRegister();
    80 void vboxVDbgVEHandlerUnregister();
    8187
    8288#define vboxVDbgBreak() AssertBreakpoint()
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxUhgsmiBase.h

    r33171 r33241  
    7777        if (cPages == cBufPages)
    7878        {
     79            *pNumPages = 0;
    7980            fLockFlags.LockEntire = 1;
    8081        }
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxUhgsmiDisp.cpp

    r33216 r33241  
    5353{
    5454    PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuffer = VBOXUHGSMID3D_GET_BUFFER(pBuf);
    55     D3DDDICB_LOCK DdiLock;
     55    D3DDDICB_LOCK DdiLock = {0};
    5656    DdiLock.hAllocation = pBuffer->BasePrivate.hAllocation;
    5757    DdiLock.PrivateDriverData = 0;
     
    6363        return rc;
    6464
    65     DdiLock.pPages = pBuffer->aLockPageIndices;
     65    if (DdiLock.NumPages)
     66        DdiLock.pPages = pBuffer->aLockPageIndices;
     67    else
     68        DdiLock.pPages = NULL;
    6669
    6770    HRESULT hr = pBuffer->pDevice->RtCallbacks.pfnLockCb(pBuffer->pDevice->hDevice, &DdiLock);
     
    107110
    108111    PVBOXUHGSMI_PRIVATE_D3D pPrivate = VBOXUHGSMID3D_GET(pHgsmi);
    109     PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_D3D)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_D3D, aLockPageIndices));
     112    PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_D3D)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_D3D, aLockPageIndices[cPages]));
    110113    Assert(pBuf);
    111114    if (pBuf)
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxUhgsmiKmt.cpp

    r33216 r33241  
    5151{
    5252    PVBOXUHGSMI_BUFFER_PRIVATE_KMT pBuffer = VBOXUHGSMIKMT_GET_BUFFER(pBuf);
    53     D3DKMT_LOCK DdiLock;
     53    D3DKMT_LOCK DdiLock = {0};
    5454    DdiLock.hDevice = pBuffer->pHgsmi->Device.hDevice;
    5555    DdiLock.hAllocation = pBuffer->BasePrivate.hAllocation;
     
    6464        return rc;
    6565
    66     DdiLock.pPages = pBuffer->aLockPageIndices;
     66    if (DdiLock.NumPages)
     67        DdiLock.pPages = pBuffer->aLockPageIndices;
     68    else
     69        DdiLock.pPages = NULL;
    6770
    6871    NTSTATUS Status = pBuffer->pHgsmi->Callbacks.pfnD3DKMTLock(&DdiLock);
     
    111114
    112115    PVBOXUHGSMI_PRIVATE_KMT pPrivate = VBOXUHGSMIKMT_GET(pHgsmi);
    113     PVBOXUHGSMI_BUFFER_PRIVATE_KMT pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_KMT)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_KMT, aLockPageIndices));
     116    PVBOXUHGSMI_BUFFER_PRIVATE_KMT pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_KMT)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_KMT, aLockPageIndices[cPages]));
    114117    Assert(pBuf);
    115118    if (pBuf)
     
    240243HRESULT vboxUhgsmiKmtDestroy(PVBOXUHGSMI_PRIVATE_KMT pHgsmi)
    241244{
     245    Assert(0);
    242246    HRESULT hr = vboxDispKmtDestroyContext(&pHgsmi->Context);
    243247    Assert(hr == S_OK);
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