VirtualBox

Ignore:
Timestamp:
Mar 31, 2014 2:14:11 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
93073
Message:

wddm/DevVga/crOpenGL: new command submission working for 3D

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/common/VBoxMPUtils.cpp

    r46876 r50928  
    2929#ifdef DEBUG_misha
    3030/* specifies whether the vboxVDbgBreakF should break in the debugger
    31  * windbg seems to have some issues when there is a lot ( >~50) of sw breakpoints defined
     31 * windbg seems to have some issues when there is a lot ( >32) of sw breakpoints defined
    3232 * to simplify things we just insert breaks for the case of intensive debugging WDDM driver*/
    3333#ifndef VBOX_WDDM_WIN8
    34 int g_bVBoxVDbgBreakF = false;
    35 int g_bVBoxVDbgBreakFv = false;
     34int g_bVBoxVDbgBreakF = 1;
     35int g_bVBoxVDbgBreakFv = 0;
    3636#else
    37 int g_bVBoxVDbgBreakF = false;
    38 int g_bVBoxVDbgBreakFv = false;
     37int g_bVBoxVDbgBreakF = 1;
     38int g_bVBoxVDbgBreakFv = 0;
    3939#endif
    4040#endif
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp

    r50921 r50928  
    11331133    uint32_t cbInitBuffer = cbBuffer;
    11341134    uint32_t i = 0;
    1135     VBOXCMDVBVAPAGEIDX *pPageNumbers = pCmd->aPageNumbers;
    1136 
    1137     cbBuffer -= RT_OFFSETOF(VBOXCMDVBVA_PAGING_TRANSFER, aPageNumbers);
     1135    VBOXCMDVBVAPAGEIDX *pPageNumbers = pCmd->Data.aPageNumbers;
     1136
     1137    cbBuffer -= RT_OFFSETOF(VBOXCMDVBVA_PAGING_TRANSFER, Data.aPageNumbers);
    11381138
    11391139    for (; i < cPages && cbBuffer >= sizeof (*pPageNumbers); ++i, cbBuffer -= sizeof (*pPageNumbers))
     
    11431143
    11441144    *pcPagesWritten = i;
    1145     Assert(cbInitBuffer - cbBuffer == RT_OFFSETOF(VBOXCMDVBVA_PAGING_TRANSFER, aPageNumbers[i]));
     1145    Assert(cbInitBuffer - cbBuffer == RT_OFFSETOF(VBOXCMDVBVA_PAGING_TRANSFER, Data.aPageNumbers[i]));
    11461146    return cbInitBuffer - cbBuffer;
    11471147}
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r50921 r50928  
    31093109        else
    31103110        {
     3111            Assert(!pSubmitCommand->DmaBufferPrivateDataSubmissionStartOffset);
     3112            Assert(!pSubmitCommand->DmaBufferSubmissionStartOffset);
     3113
    31113114            if (cbCmd < sizeof (VBOXCMDVBVA_HDR))
    31123115            {
     
    31333136                return STATUS_INVALID_PARAMETER;
    31343137            }
    3135             SysMem.iPage = (VBOXCMDVBVAPAGEIDX)(pSubmitCommand->DmaBufferPhysicalAddress.QuadPart >> PAGE_SHIFT);
     3138            SysMem.phCmd = (VBOXCMDVBVAPHADDR)(pSubmitCommand->DmaBufferPhysicalAddress.QuadPart + pSubmitCommand->DmaBufferSubmissionStartOffset);
    31363139
    31373140            cbCmd = sizeof (SysMem);
     
    31423145    else
    31433146    {
     3147        Assert(!pSubmitCommand->DmaBufferPrivateDataSubmissionStartOffset);
     3148        Assert(!pSubmitCommand->DmaBufferSubmissionStartOffset);
     3149
    31443150        if (cbCmd < sizeof (VBOXCMDVBVA_HDR))
    31453151        {
     
    31533159        pHdr = (VBOXCMDVBVA_HDR*)((uint8_t*)pSubmitCommand->pDmaBufferPrivateData + pSubmitCommand->DmaBufferPrivateDataSubmissionStartOffset);
    31543160    }
     3161
    31553162    pHdr->u32FenceID = pSubmitCommand->SubmissionFenceId;
    31563163    int rc = VBoxCmdVbvaSubmit(pDevExt, &pDevExt->CmdVbva, pHdr, cbCmd);
     
    34133420        case DXGK_OPERATION_TRANSFER:
    34143421        {
     3422            if (!pBuildPagingBuffer->Transfer.Flags.AllocationIsIdle)
     3423            {
     3424                WARN(("allocation is not idle"));
     3425                return STATUS_GRAPHICS_ALLOCATION_BUSY;
     3426            }
     3427
     3428            Assert(!pBuildPagingBuffer->Transfer.MdlOffset);
     3429
    34153430            if ((!pBuildPagingBuffer->Transfer.Source.SegmentId) == (!pBuildPagingBuffer->Transfer.Destination.SegmentId))
    34163431            {
     
    34783493            offVRAM += pBuildPagingBuffer->Transfer.TransferOffset + (pBuildPagingBuffer->MultipassOffset << PAGE_SHIFT);
    34793494
    3480             pPaging->Alloc.u.offVRAM = offVRAM;
     3495            pPaging->Data.Alloc.u.offVRAM = offVRAM;
    34813496            if (fIn)
    34823497                pPaging->Hdr.u8Flags |= VBOXCMDVBVA_OPF_PAGING_TRANSFER_IN;
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