VirtualBox

Ignore:
Timestamp:
May 12, 2022 12:07:56 PM (3 years ago)
Author:
vboxsync
Message:

WDDM: D3D10DDI_QUERY_EVENT; SetPredication. bugref:9845

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/common/wddm/VBoxMPIf.h

    r94825 r94990  
    8686    VBOXDXALLOCATIONTYPE_SURFACE = 1,
    8787    VBOXDXALLOCATIONTYPE_SHADERS = 2,
     88    VBOXDXALLOCATIONTYPE_CO      = 3,
    8889    VBOXDXALLOCATIONTYPE_MAX,
    8990    VBOXDXALLOCATIONTYPE_32BIT = 0xFFFFFFFF
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/VBoxMPDX.cpp

    r94975 r94990  
    349349    if (pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SURFACE)
    350350        Status = svgaCreateAllocationSurface(pDevExt, pAllocation, pAllocationInfo);
    351     else if (pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS)
     351    else if (   pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS
     352             || pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_CO)
    352353        Status = svgaCreateAllocationShaders(pAllocation, pAllocationInfo);
    353354    else
     
    373374    if (pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SURFACE)
    374375        Status = svgaDestroyAllocationSurface(pDevExt->pGa->hw.pSvga, pAllocation);
    375     else if (pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS)
     376    else if (   pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS
     377             || pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_CO)
    376378        Status = svgaDestroyAllocationShaders(pDevExt->pGa->hw.pSvga, pAllocation);
    377379    else
     
    462464                }
    463465            }
    464             else if (enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS)
     466            else if (   enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS
     467                     || enmAllocationType == VBOXDXALLOCATIONTYPE_CO)
    465468            {
    466469                if (pAllocation->dx.mobid != SVGA3D_INVALID_ID)
     
    474477        {
    475478            if (   enmAllocationType == VBOXDXALLOCATIONTYPE_SURFACE
    476                 || enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS)
     479                || enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS
     480                || enmAllocationType == VBOXDXALLOCATIONTYPE_CO)
    477481            {
    478482                *(uint32_t *)pPatchAddress = SVGA3D_INVALID_ID;
     
    721725    AssertReturnStmt(NT_SUCCESS(Status), SvgaMobFree(pSvga, pMob), Status);
    722726
    723     pAllocation->dx.mobid = VMSVGAMOB_ID(pMob);
    724 
    725727    uint32_t cbRequired = sizeof(SVGA3dCmdHeader) + sizeof(SVGA3dCmdDefineGBMob64);
    726728    if (pAllocation->dx.desc.enmAllocationType == VBOXDXALLOCATIONTYPE_SURFACE)
     
    740742    RTAvlU32Insert(&pSvga->MobTree, &pMob->core);
    741743    ExReleaseFastMutex(&pSvga->SvgaMutex);
     744
     745    pAllocation->dx.mobid = VMSVGAMOB_ID(pMob);
    742746
    743747    uint8_t *pu8Cmd = (uint8_t *)pBuildPagingBuffer->pDmaBuffer;
     
    820824    if (pBuildPagingBuffer->DmaSize < cbRequired)
    821825    {
    822         SvgaMobFree(pSvga, pMob);
    823826        return STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER;
    824827    }
     
    850853    {
    851854    SVGA3dCmdDestroyGBMob *pCmd = (SVGA3dCmdDestroyGBMob *)pu8Cmd;
    852     pCmd->mobid = VMSVGAMOB_ID(pMob);
     855    pCmd->mobid = pAllocation->dx.mobid;
    853856    pu8Cmd += sizeof(*pCmd);
    854857    }
     
    962965                *(uint32_t *)pPatchAddress = pAllocation->dx.sid;
    963966            }
    964             else if (enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS)
     967            else if (   enmAllocationType == VBOXDXALLOCATIONTYPE_SHADERS
     968                     || enmAllocationType == VBOXDXALLOCATIONTYPE_CO)
    965969            {
    966970                Assert(pAllocation->dx.mobid != SVGA3D_INVALID_ID);
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