VirtualBox

Changeset 37840 in vbox


Ignore:
Timestamp:
Jul 8, 2011 11:53:53 AM (14 years ago)
Author:
vboxsync
Message:

wddm: bugfixes

Location:
trunk/src/VBox
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.cpp

    r37734 r37840  
    902902}VBOXWDDMDISP_NSCADD, *PVBOXWDDMDISP_NSCADD;
    903903
    904 static HRESULT vboxWddmNSCAddAlloc(PVBOXWDDMDISP_NSCADD pData, PVBOXWDDMDISP_ALLOCATION pAlloc, BOOL bWrite)
     904static HRESULT vboxWddmNSCAddAlloc(PVBOXWDDMDISP_NSCADD pData, PVBOXWDDMDISP_ALLOCATION pAlloc)
    905905{
    906906    HRESULT hr = S_OK;
     
    909909        memset(pData->pAllocationList, 0, sizeof (D3DDDI_ALLOCATIONLIST));
    910910        pData->pAllocationList[0].hAllocation = pAlloc->hAllocation;
    911         if (bWrite)
     911        if (pAlloc->fDirtyWrite)
    912912            pData->pAllocationList[0].WriteOperation = 1;
    913913
     
    930930
    931931    return hr;
     932}
     933
     934static BOOLEAN vboxWddmDalCheckRemove(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc)
     935{
     936    BOOLEAN fRemoved = FALSE;
     937
     938    if (pAlloc->DirtyAllocListEntry.pNext)
     939    {
     940        RTListNodeRemove(&pAlloc->DirtyAllocListEntry);
     941        pAlloc->fDirtyWrite = FALSE;
     942        fRemoved = TRUE;
     943    }
     944
     945    return fRemoved;
    932946}
    933947
     
    959973        }
    960974
    961         EnterCriticalSection(&pDevice->DirtyAllocListLock);
    962 
    963975        PVBOXWDDMDISP_ALLOCATION pAlloc = RTListGetFirst(&pDevice->DirtyAllocList, VBOXWDDMDISP_ALLOCATION, DirtyAllocListEntry);
    964976        if (pAlloc)
    965977        {
    966             HRESULT tmpHr = vboxWddmNSCAddAlloc(&NscAdd, pAlloc, TRUE);
     978            HRESULT tmpHr = vboxWddmNSCAddAlloc(&NscAdd, pAlloc);
    967979            Assert(tmpHr == S_OK || tmpHr == S_FALSE);
    968980            if (tmpHr == S_OK)
    969981            {
    970                 RTListNodeRemove(&pAlloc->DirtyAllocListEntry);
    971                 LeaveCriticalSection(&pDevice->DirtyAllocListLock);
     982                vboxWddmDalCheckRemove(pDevice, pAlloc);
    972983                continue;
    973984            }
    974 
    975             LeaveCriticalSection(&pDevice->DirtyAllocListLock);
    976 
    977985        }
    978986        else
    979987        {
    980             LeaveCriticalSection(&pDevice->DirtyAllocListLock);
    981988            if (!NscAdd.cAllocations)
    982989                break;
     
    10161023}
    10171024
    1018 static BOOLEAN vboxWddmDalCheckAdd(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc)
    1019 {
    1020     if (!pAlloc->pRc->RcDesc.fFlags.SharedResource)
     1025static BOOLEAN vboxWddmDalCheckAdd(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc, BOOLEAN fWrite)
     1026{
     1027    if (!pAlloc->hSharedHandle) /* only shared resources matter */
    10211028    {
    10221029        Assert(!pAlloc->DirtyAllocListEntry.pNext);
     
    10241031    }
    10251032
    1026     EnterCriticalSection(&pDevice->DirtyAllocListLock);
    10271033    if (!pAlloc->DirtyAllocListEntry.pNext)
    10281034    {
     1035        Assert(!pAlloc->fDirtyWrite);
    10291036        RTListAppend(&pDevice->DirtyAllocList, &pAlloc->DirtyAllocListEntry);
    10301037    }
    1031     LeaveCriticalSection(&pDevice->DirtyAllocListLock);
     1038    pAlloc->fDirtyWrite |= fWrite;
    10321039
    10331040    return TRUE;
     
    10401047        if (pDevice->apRTs[i])
    10411048        {
    1042             vboxWddmDalCheckAdd(pDevice, pDevice->apRTs[i]);
    1043         }
    1044     }
    1045 }
    1046 
    1047 static BOOLEAN vboxWddmDalCheckRemove(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc)
    1048 {
    1049     BOOLEAN fRemoved = FALSE;
    1050 
    1051     EnterCriticalSection(&pDevice->DirtyAllocListLock);
    1052     if (pAlloc->DirtyAllocListEntry.pNext)
    1053     {
    1054         RTListNodeRemove(&pAlloc->DirtyAllocListEntry);
    1055         fRemoved = TRUE;
    1056     }
    1057     LeaveCriticalSection(&pDevice->DirtyAllocListLock);
    1058 
    1059     return fRemoved;
     1049            vboxWddmDalCheckAdd(pDevice, pDevice->apRTs[i], TRUE);
     1050        }
     1051    }
    10601052}
    10611053
     
    23642356                                                TRUE, /*bLockable*/
    23652357                                                &pD3D9NewSurf,
    2366                                                 NULL /* HANDLE* pSharedHandle */
     2358                                                pRT->pAlloc->hSharedHandle ? &pRT->pAlloc->hSharedHandle :  NULL
    23672359                                                );
    23682360                        Assert(tmpHr == S_OK);
     
    34793471    }
    34803472
     3473    vboxWddmDalCheckAddRts(pDevice);
     3474
    34813475    VBOXVDBG_DUMP_DRAWPRIM_LEAVE(pDevice9If);
    34823476
     
    35283522    Assert(hr == S_OK);
    35293523
     3524    vboxWddmDalCheckAddRts(pDevice);
     3525
    35303526    VBOXVDBG_DUMP_DRAWPRIM_LEAVE(pDevice9If);
    35313527
     
    35423538    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    35433539    Assert(0);
     3540    vboxWddmDalCheckAddRts(pDevice);
    35443541    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    35453542    return E_FAIL;
     
    35543551    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    35553552    Assert(0);
     3553    vboxWddmDalCheckAddRts(pDevice);
    35563554    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    35573555    return E_FAIL;
     
    36443642#endif
    36453643
     3644    vboxWddmDalCheckAddRts(pDevice);
     3645
    36463646    VBOXVDBG_DUMP_DRAWPRIM_LEAVE(pDevice9If);
    36473647
     
    36593659    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    36603660    Assert(0);
     3661    vboxWddmDalCheckAddRts(pDevice);
    36613662    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    36623663    return E_FAIL;
     
    36713672    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    36723673    Assert(0);
     3674//    @todo: vboxWddmDalCheckAdd(pDevice);
    36733675    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    36743676    return E_FAIL;
     
    36833685    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    36843686    Assert(0);
     3687//    @todo: vboxWddmDalCheckAdd(pDevice);
    36853688    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    36863689    return E_FAIL;
     
    37523755    {
    37533756        PVBOXWDDMDISP_ALLOCATION pDAlloc = &pDstRc->aAllocations[i];
     3757        vboxWddmDalCheckAdd(pDevice, pDAlloc, TRUE);
     3758    }
     3759
     3760    for (UINT i = 0; i < pSrcRc->cAllocations; ++i)
     3761    {
     3762        PVBOXWDDMDISP_ALLOCATION pDAlloc = &pSrcRc->aAllocations[i];
     3763        vboxWddmDalCheckAdd(pDevice, pDAlloc, FALSE);
    37543764    }
    37553765
     
    48844894                }
    48854895            }
    4886             else if (pResource->Flags.Texture || pResource->Flags.Value == 0)
     4896            else if (VBOXWDDMDISP_IS_TEXTURE(pResource->Flags))
    48874897            {
    48884898                IDirect3DDevice9 * pDevice9If = VBOXDISP_D3DEV(pDevice);
     4899
     4900                if (pResource->Flags.RenderTarget && !pResource->Flags.Texture)
     4901                {
     4902                    bIssueCreateResource = true;
     4903                }
    48894904
    48904905                if (!pResource->Flags.CubeMap)
     
    50405055                    {
    50415056                        PVBOXWDDMDISP_ALLOCATION pAllocation = &pRc->aAllocations[i];
     5057                        HANDLE hSharedHandle = NULL;
    50425058
    50435059                        IDirect3DSurface9* pD3D9Surf;
     
    50495065                                !pResource->Flags.NotLockable /* BOOL Lockable */,
    50505066                                &pD3D9Surf,
    5051                                 NULL /* HANDLE* pSharedHandle */
     5067                                pResource->Flags.SharedResource ? &hSharedHandle : NULL
    50525068                                );
    50535069                        Assert(hr == S_OK);
     
    50575073                            pAllocation->enmD3DIfType = VBOXDISP_D3DIFTYPE_SURFACE;
    50585074                            pAllocation->pD3DIf = pD3D9Surf;
     5075                            Assert(!!(pResource->Flags.SharedResource) == !!(hSharedHandle));
     5076                            pAllocation->hSharedHandle = hSharedHandle;
    50595077                            hr = vboxWddmSurfSynchMem(pRc, pAllocation);
    50605078                            Assert(hr == S_OK);
     
    53385356    Assert(pRc->RcDesc.fFlags.RenderTarget);
    53395357    Assert(pRc->RcDesc.fFlags.Primary);
    5340     Assert(pAlloc->enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    53415358    Assert(pAlloc->hAllocation);
    53425359//    PVBOXWDDMDISP_SCREEN pScreen = &pDevice->aScreens[pRc->RcDesc.VidPnSourceId];
     
    53505367
    53515368#if 0
     5369    Assert(pAlloc->enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    53525370    IDirect3DSurface9 *pSoD3DIfSurf = (IDirect3DSurface9*)pAlloc->pSecondaryOpenedD3DIf;
    53535371    hr = pScreen->pDevice9If->SetRenderTarget(0, pSoD3DIfSurf);
     
    53705388            {
    53715389                D3DLOCKED_RECT LockRect;
     5390                Assert(pAlloc->enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    53725391                IDirect3DSurface9 *pD3DIfSurf = (IDirect3DSurface9*)pAlloc->pD3DIf;
    53735392                hr = pD3DIfSurf->LockRect(&LockRect, NULL /* RECT*/, D3DLOCK_DISCARD);
     
    54445463            Assert(pPrimaryScreen->pDevice9If);
    54455464            IDirect3DSurface9 *pSecondaryRt;
     5465            Assert(pAlloc->enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    54465466            IDirect3DSurface9 *pDataRt = (IDirect3DSurface9*)pAlloc->pSecondaryOpenedD3DIf;
    54475467            Assert(pDataRt);
    5448             Assert(pAlloc->enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    54495468            hr = pDevice->pAdapter->D3D.pfnVBoxWineExD3DDev9Flush((IDirect3DDevice9Ex*)pPrimaryScreen->pDevice9If);
    54505469            Assert(hr == S_OK);
     
    55475566
    55485567        vboxWddmDalNotifyChange(pDevice);
     5568
     5569        VBOXVDBG_DUMP_FLUSH(pDevice->pDevice9If);
    55495570    }
    55505571    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     
    59315952                Assert(pSrcSurfIf);
    59325953
    5933                 VBOXVDBG_DUMP_BLT_ENTER(pSrcSurfIf, &pData->SrcRect, pDstSurfIf, &pData->DstRect);
     5954                VBOXVDBG_DUMP_BLT_ENTER(pSrcRc, pSrcSurfIf, &pData->SrcRect, pDstRc, pDstSurfIf, &pData->DstRect);
    59345955
    59355956                /* we support only Point & Linear, we ignore [Begin|Continue|End]PresentToDwm */
     
    59425963                Assert(hr == S_OK);
    59435964
    5944                 VBOXVDBG_DUMP_BLT_LEAVE(pSrcSurfIf, &pData->SrcRect, pDstSurfIf, &pData->DstRect);
     5965                VBOXVDBG_DUMP_BLT_LEAVE(pSrcRc, pSrcSurfIf, &pData->SrcRect, pDstRc, pDstSurfIf, &pData->DstRect);
    59455966
    59465967                pSrcSurfIf->Release();
     
    59585979
    59595980    PVBOXWDDMDISP_ALLOCATION pDAlloc = &pDstRc->aAllocations[pData->DstSubResourceIndex];
    5960     vboxWddmDalCheckAdd(pDevice, pDAlloc);
     5981    vboxWddmDalCheckAdd(pDevice, pDAlloc, TRUE);
     5982    pDAlloc = &pSrcRc->aAllocations[pData->SrcSubResourceIndex];
     5983    vboxWddmDalCheckAdd(pDevice, pDAlloc, FALSE);
    59615984
    59625985    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     
    59856008
    59866009        pSurfIf->Release();
     6010
     6011        PVBOXWDDMDISP_ALLOCATION pDAlloc = &pRc->aAllocations[pData->SubResourceIndex];
     6012        vboxWddmDalCheckAdd(pDevice, pDAlloc, TRUE);
    59876013    }
    59886014    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     
    59976023    VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice);
    59986024    Assert(0);
     6025//@todo:    vboxWddmDalCheckAdd(pDevice, pDAlloc, TRUE);
    59996026    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    60006027    return E_FAIL;
     
    61186145    {
    61196146        Assert(pRc->cAllocations == 1);
     6147        Assert(pRc->aAllocations[0].enmD3DIfType == VBOXDISP_D3DIFTYPE_SURFACE);
    61206148        pD3D9Surf = (IDirect3DSurface9*)pRc->aAllocations[0].pD3DIf;
    61216149        Assert(pD3D9Surf);
     
    67606788
    67616789                Assert(pRc->RcDesc.fFlags.SharedResource);
    6762                 if (pRc->RcDesc.fFlags.Texture)
     6790                if (VBOXWDDMDISP_IS_TEXTURE(pRc->RcDesc.fFlags))
    67636791                {
    67646792                    IDirect3DDevice9 * pDevice9If = VBOXDISP_D3DEV(pDevice);
     
    67666794                    HANDLE hSharedHandle = pAllocation->hSharedHandle;
    67676795                    Assert(pAllocation->hSharedHandle);
     6796#ifdef DEBUG_misha
     6797                    vboxVDbgPrintR(("\n\n********\nShared Resource (0x%x), (0n%d) openned\n\n\n", hSharedHandle, hSharedHandle));
     6798#endif
    67686799
    67696800                    if (!pRc->RcDesc.fFlags.CubeMap)
     
    69126943        pDevice->ViewPort.MaxZ = 1.;
    69136944
    6914         InitializeCriticalSection(&pDevice->DirtyAllocListLock);
    69156945        RTListInit(&pDevice->DirtyAllocList);
    69166946
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.h

    r36867 r37840  
    3131#define VBOXWDDMDISP_MAX_VERTEX_STREAMS 16
    3232#define VBOXWDDMDISP_MAX_SWAPCHAIN_SIZE 16
     33
     34#define VBOXWDDMDISP_IS_TEXTURE(_f) ((_f).Texture || (_f).Value == 0)
    3335
    3436#ifdef VBOX_WITH_VIDEOHWACCEL
     
    189191#endif
    190192
    191     CRITICAL_SECTION DirtyAllocListLock;
     193    /* no lock is needed for this since we're guaranteed the per-device calls are not reentrant */
    192194    RTLISTNODE DirtyAllocList;
    193195    UINT cRTs;
     
    229231    IUnknown *pSecondaryOpenedD3DIf;
    230232    VBOXDISP_D3DIFTYPE enmD3DIfType;
     233    /* list entry used to add allocation to the dirty alloc list */
    231234    RTLISTNODE DirtyAllocListEntry;
     235    BOOLEAN fDirtyWrite;
    232236    HANDLE hSharedHandle;
    233237    VBOXWDDMDISP_LOCKINFO LockInfo;
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispDbg.cpp

    r37734 r37840  
    5555DWORD g_VBoxVDbgFDumpBlt = 0;
    5656DWORD g_VBoxVDbgFDumpRtSynch = 0;
    57 
     57DWORD g_VBoxVDbgFDumpFlush = 0;
     58DWORD g_VBoxVDbgFDumpShared = 0;
     59
     60DWORD g_VBoxVDbgPid = 0;
    5861typedef enum
    5962{
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispDbg.h

    r37734 r37840  
    109109extern DWORD g_VBoxVDbgFDumpBlt;
    110110extern DWORD g_VBoxVDbgFDumpRtSynch;
     111extern DWORD g_VBoxVDbgFDumpFlush;
     112extern DWORD g_VBoxVDbgFDumpShared;
    111113
    112114void vboxDispLogDrvF(char * szString, ...);
     
    131133VOID vboxVDbgDoDumpRtData(char * pPrefix, IDirect3DDevice9 *pDevice, char * pSuffix);
    132134
     135extern DWORD g_VBoxVDbgPid;
     136#define VBOXVDBG_IS_PID(_pid) ((_pid) == (g_VBoxVDbgPid ? g_VBoxVDbgPid : (g_VBoxVDbgPid = GetCurrentProcessId())))
     137#define VBOXVDBG_IS_DUMP_ALLOWED_PID(_pid) (((int)(_pid)) > 0 ? VBOXVDBG_IS_PID(_pid) : !VBOXVDBG_IS_PID(-((int)(_pid))))
     138
     139#define VBOXVDBG_IS_DUMP_ALLOWED(_type) ( \
     140        g_VBoxVDbgFDump##_type \
     141        && (g_VBoxVDbgFDump##_type == 1 \
     142                || VBOXVDBG_IS_DUMP_ALLOWED_PID(g_VBoxVDbgFDump##_type) \
     143           ) \
     144        )
     145
     146#define VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pRc) (\
     147        (_pRc)->RcDesc.fFlags.SharedResource \
     148        && VBOXVDBG_IS_DUMP_ALLOWED(Shared) \
     149        )
     150
    133151#define VBOXVDBG_DUMP_DRAWPRIM_ENTER(_pDevice) do { \
    134         if (g_VBoxVDbgFDumpDrawPrim) \
     152        if (VBOXVDBG_IS_DUMP_ALLOWED(DrawPrim)) \
    135153        { \
    136154            vboxVDbgDoDumpRt("==>"__FUNCTION__": RenderTarget Dump\n", (_pDevice), "\n"); \
     
    139157
    140158#define VBOXVDBG_DUMP_DRAWPRIM_LEAVE(_pDevice) do { \
    141         if (g_VBoxVDbgFDumpDrawPrim) \
     159        if (VBOXVDBG_IS_DUMP_ALLOWED(DrawPrim)) \
    142160        { \
    143161            vboxVDbgDoDumpRt("<=="__FUNCTION__": RenderTarget Dump\n", (_pDevice), "\n"); \
     
    146164
    147165#define VBOXVDBG_DUMP_SETTEXTURE(_pRc) do { \
    148         if (g_VBoxVDbgFDumpSetTexture) \
     166        if (VBOXVDBG_IS_DUMP_ALLOWED(SetTexture) \
     167                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pRc) \
     168                ) \
    149169        { \
    150170            vboxVDbgDoDumpRcRectByRc("== "__FUNCTION__": Texture Dump\n", _pRc, NULL, "\n"); \
     
    153173
    154174#define VBOXVDBG_DUMP_TEXBLT_ENTER(_pSrcRc, _pSrcRect, _pDstRc, _pDstPoint) do { \
    155         if (g_VBoxVDbgFDumpTexBlt) \
     175        if (VBOXVDBG_IS_DUMP_ALLOWED(TexBlt) \
     176                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pSrcRc) \
     177                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pDstRc) \
     178                ) \
    156179        { \
    157180            RECT _DstRect; \
     
    163186
    164187#define VBOXVDBG_DUMP_TEXBLT_LEAVE(_pSrcRc, _pSrcRect, _pDstRc, _pDstPoint) do { \
    165         if (g_VBoxVDbgFDumpTexBlt) \
     188        if (VBOXVDBG_IS_DUMP_ALLOWED(TexBlt) \
     189                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pSrcRc) \
     190                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pDstRc) \
     191                ) \
    166192        { \
    167193            RECT _DstRect; \
     
    172198    } while (0)
    173199
    174 #define VBOXVDBG_DUMP_BLT_ENTER(_pSrcSurf, _pSrcRect, _pDstSurf, _pDstRect) do { \
    175         if (g_VBoxVDbgFDumpBlt) \
     200#define VBOXVDBG_DUMP_BLT_ENTER(_pSrcRc, _pSrcSurf, _pSrcRect, _pDstRc, _pDstSurf, _pDstRect) do { \
     201        if (VBOXVDBG_IS_DUMP_ALLOWED(Blt) \
     202                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pSrcRc) \
     203                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pDstRc) \
     204                ) \
    176205        { \
    177206            vboxVDbgDoDumpSurfRect("==>"__FUNCTION__" Src:\n", (_pSrcSurf), (_pSrcRect), "\n", true); \
     
    180209    } while (0)
    181210
    182 #define VBOXVDBG_DUMP_BLT_LEAVE(_pSrcSurf, _pSrcRect, _pDstSurf, _pDstRect) do { \
    183         if (g_VBoxVDbgFDumpBlt) \
     211#define VBOXVDBG_DUMP_BLT_LEAVE(_pSrcRc, _pSrcSurf, _pSrcRect, _pDstRc, _pDstSurf, _pDstRect) do { \
     212        if (VBOXVDBG_IS_DUMP_ALLOWED(Blt) \
     213                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pSrcRc) \
     214                || VBOXVDBG_IS_DUMP_SHARED_ALLOWED(_pDstRc) \
     215                ) \
    184216        { \
    185217            vboxVDbgDoDumpSurfRect("<=="__FUNCTION__" Src:\n", (_pSrcSurf), (_pSrcRect), "\n", true); \
     
    189221
    190222#define VBOXVDBG_DUMP_SYNC_RT(_pBbSurf) do { \
    191         if (g_VBoxVDbgFDumpRtSynch) \
     223        if (VBOXVDBG_IS_DUMP_ALLOWED(RtSynch)) \
    192224        { \
    193225            vboxVDbgDoDumpSurfRect("== "__FUNCTION__" Bb:\n", (_pBbSurf), NULL, "\n", true); \
    194226        } \
     227    } while (0)
     228
     229#define VBOXVDBG_DUMP_FLUSH(_pDevice) do { \
     230        if (VBOXVDBG_IS_DUMP_ALLOWED(Flush)) \
     231        { \
     232            vboxVDbgDoDumpRt("== "__FUNCTION__": RenderTarget Dump\n", (_pDevice), "\n"); \
     233        }\
    195234    } while (0)
    196235#else
  • trunk/src/VBox/Additions/WINNT/Graphics/Wine/Makefile.kmk

    r35341 r37840  
    193193wined3dwddm_SDKS           = WINDDKWLH
    194194wined3dwddm_SDKS.amd64     = $(NO_SUCH_VARIABLE)
     195#VBOX_WINE_WITH_IPRT is used for debugging currently to enable Assert & stuff
     196ifdef VBOX_WINE_WITH_IPRT
     197wined3dwddm_LIBS          += \
     198                                                        $(VBOX_LIB_IPRT_GUEST_R3) \
     199                                                        $(VBOX_LIB_VBGL_R3)
     200wined3dwddm_DEFS          += VBOX_WINE_WITH_IPRT
     201endif
    195202
    196203DLLS.amd64 += wined3dwddm-x86
    197204wined3dwddm-x86_EXTENDS    = wined3dwddm
    198205wined3dwddm-x86_BLD_TRG_ARCH = x86
    199 #wined3dwddm-x86_LIBS = \
    200         $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    201         $(VBOX_LIB_VBGL_R3_X86)
     206ifdef VBOX_WINE_WITH_IPRT
     207wined3dwddm-x86_LIBS = \
     208                                                $(VBOX_LIB_IPRT_GUEST_R3_X86) \
     209                                                $(VBOX_LIB_VBGL_R3_X86)
     210endif
    202211wined3dwddm-x86_DEFS       = $(wined3dwddm_DEFS) VBOX_WDDM_WOW64
    203212endif
  • trunk/src/VBox/Additions/WINNT/Graphics/Wine/wined3d/vboxsharedrc.h

    r34987 r37840  
    3535#define VBOXSHRC_IS_INITIALIZED(_o) (!!(VBOXSHRC_GET_SHAREFLAFS(_o) & VBOXSHRC_F_INITIALIZED))
    3636
    37 #ifdef DEBUG_misha
    38 /* just for simplicity */
    39 #ifdef RT_ARCH_X86
    40 #define AssertBreakpoint() do { __asm {int 3} } while (0)
     37#ifdef VBOX_WINE_WITH_IPRT
     38# include <iprt/assert.h>
    4139#else
    42 #define AssertBreakpoint() do { /* @todo */ } while (0)
    43 #endif
    44 #define Assert(_expr) do { \
    45         if (!(_expr)) AssertBreakpoint(); \
    46     } while (0)
    47 #else
    48 #define AssertBreakpoint() do { } while (0)
    49 #define Assert(_expr) do { } while (0)
     40# define AssertBreakpoint() do { } while (0)
     41# define Assert(_expr) do { } while (0)
    5042#endif
    5143
     44
    5245#endif /* #ifndef ___vboxsharedrc_h___ */
  • trunk/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py

    r30974 r37840  
    6666#endif
    6767
    68 #if defined(WINDOWS) && (defined(DEBUG_leo) || defined(DEBUG_ll158262))
     68#if defined(WINDOWS) && (defined(DEBUG_leo) || defined(DEBUG_ll158262) || defined(DEBUG_misha))
    6969# define CR_NO_GL_SYSTEM_PATH 1
    7070#endif
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