VirtualBox

Ignore:
Timestamp:
Apr 16, 2014 8:35:26 AM (11 years ago)
Author:
vboxsync
Message:

wddm/CrCmd: bugfixes + more correct complex command length info data

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp

    r51042 r51081  
    939939    pCmd->u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    940940
    941     pCmd->u32FenceID = u32FenceID;
     941    pCmd->u2.u32FenceID = u32FenceID;
    942942
    943943    VBoxVBVAExBufferEndUpdate(&pVbva->Vbva);
     
    10601060        Assert(pCmd->u8State == VBOXCMDVBVA_STATE_IN_PROGRESS);
    10611061
    1062         u32SubmitFence = ASMAtomicUoReadU32(&pCmd->u32FenceID);
     1062        u32SubmitFence = pCmd->u2.u32FenceID;
    10631063        break;
    10641064    }
     
    10891089        VBOXCMDVBVA_HDR *pCmd = (VBOXCMDVBVA_HDR*)pu8Cmd;
    10901090        uint8_t u8State = pCmd->u8State;
    1091         uint32_t u32FenceID = pCmd->u32FenceID;
     1091        uint32_t u32FenceID = pCmd->u2.u32FenceID;
    10921092
    10931093        Assert(u8State == VBOXCMDVBVA_STATE_IN_PROGRESS
     
    13021302    pCmd->Cmd.Cmd.u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    13031303    pCmd->Cmd.Cmd.u.i8Result = -1;
    1304     pCmd->Cmd.Cmd.u32FenceID = 0;
     1304    pCmd->Cmd.Cmd.u2.u32FenceID = 0;
    13051305
    13061306    return (VBOXCMDVBVA_CRCMD_CMD*)(pCmd+1);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r51042 r51081  
    31233123        NopCmd.u8Flags = 0;
    31243124        NopCmd.u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    3125         NopCmd.u32FenceID = sizeof (VBOXCMDVBVA_HDR);
     3125        NopCmd.u2.complexCmdEl.u16CbCmdHost = sizeof (VBOXCMDVBVA_HDR);
     3126        NopCmd.u2.complexCmdEl.u16CbCmdGuest = 0;
    31263127        cbCmd = sizeof (VBOXCMDVBVA_HDR);
    31273128        pHdr = &NopCmd;
     
    31323133    {
    31333134        pHdr = (VBOXCMDVBVA_HDR*)(((uint8_t*)pSubmitCommand->pDmaBufferPrivateData) + pSubmitCommand->DmaBufferPrivateDataSubmissionStartOffset);
    3134         cbCurCmd = pHdr->u32FenceID & 0xff;
    3135         cbCurDma = pHdr->u32FenceID >> 16;
     3135        cbCurCmd = pHdr->u2.complexCmdEl.u16CbCmdHost;
     3136        cbCurDma = pHdr->u2.complexCmdEl.u16CbCmdGuest;
    31363137    }
    31373138
     
    32013202
    32023203        memcpy(pCurDstCmd, pHdr, cbCurCmd);
    3203         pCurDstCmd->u32FenceID = cbCurCmd;
     3204        pCurDstCmd->u2.complexCmdEl.u16CbCmdGuest = 0;
    32043205
    32053206        phAddr.QuadPart += cbCurDma;
     
    32253226        }
    32263227
    3227         cbCurCmd = pHdr->u32FenceID & 0xff;
    3228         cbCurDma = pHdr->u32FenceID >> 16;
     3228        cbCurCmd = pHdr->u2.complexCmdEl.u16CbCmdHost;
     3229        cbCurDma = pHdr->u2.complexCmdEl.u16CbCmdGuest;
    32293230
    32303231        if (cbCmd < cbCurCmd)
     
    35553556                pHdr->u.u8PrimaryID = 0;
    35563557                pHdr->u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    3557                 pHdr->u32FenceID = cbPrivateData | (cbBuffer << 16);
     3558                pHdr->u2.complexCmdEl.u16CbCmdHost = cbPrivateData;
     3559                pHdr->u2.complexCmdEl.u16CbCmdGuest = cbBuffer;
    35583560                break;
    35593561            }
     
    36303632            pSysMemCmd->Hdr.u.u8PrimaryID = (cbBuffer >> 8) & 0xff;
    36313633            pSysMemCmd->Hdr.u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    3632             pSysMemCmd->Hdr.u32FenceID = cbPrivateData | (cbBuffer << 16);
     3634            pSysMemCmd->Hdr.u2.complexCmdEl.u16CbCmdHost = cbPrivateData;
     3635            pSysMemCmd->Hdr.u2.complexCmdEl.u16CbCmdGuest = cbBuffer;
    36333636            pSysMemCmd->phCmd = 0;
    36343637
     
    36613664            pHdr->u.u8PrimaryID = 0;
    36623665            pHdr->u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    3663             pHdr->u32FenceID = cbPrivateData | (cbBuffer << 16);
     3666            pHdr->u2.complexCmdEl.u16CbCmdHost = cbPrivateData;
     3667            pHdr->u2.complexCmdEl.u16CbCmdGuest = cbBuffer;
    36643668
    36653669            /** @todo: add necessary bits */
     
    60906094
    60916095        pCmd->u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    6092         pCmd->u32FenceID = cbPrivateData | (cbBuffer << 16);
     6096        pCmd->u2.complexCmdEl.u16CbCmdHost = cbPrivateData;
     6097        pCmd->u2.complexCmdEl.u16CbCmdGuest = cbBuffer;
    60936098    }
    60946099    __except (EXCEPTION_EXECUTE_HANDLER)
     
    66436648    pHdr->u8State = VBOXCMDVBVA_STATE_SUBMITTED;
    66446649
    6645     pHdr->u32FenceID = cbPrivateData | (cbBuffer << 16);
     6650    pHdr->u2.complexCmdEl.u16CbCmdHost = cbPrivateData;
     6651    pHdr->u2.complexCmdEl.u16CbCmdGuest = cbBuffer;
    66466652
    66476653    Assert(cbBuffer);
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