VirtualBox

Changeset 64743 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Nov 24, 2016 4:18:03 PM (8 years ago)
Author:
vboxsync
Message:

WDDM: bugref:8668: Fixed incorrect filling of DMA buffers in DxgkDdiPresentLegacy (ColorFill branch)

File:
1 edited

Legend:

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

    r64736 r64743  
    66916691        Assert(pPresent->SubRectCnt > pPresent->MultipassOffset);
    66926692        UINT cbRects = (pPresent->SubRectCnt - pPresent->MultipassOffset) * sizeof (RECT);
    6693         pPresent->pDmaBufferPrivateData = (uint8_t*)pPresent->pDmaBufferPrivateData + cbHead + cbRects;
    66946693        pPresent->pDmaBuffer = ((uint8_t*)pPresent->pDmaBuffer) + VBOXWDDM_DUMMY_DMABUFFER_SIZE;
    66956694        Assert(pPresent->DmaSize >= VBOXWDDM_DUMMY_DMABUFFER_SIZE);
     
    67026701            memcpy(&pCF->ClrFill.Rects.aRects[pPresent->MultipassOffset], pPresent->pDstSubRects, cbRects);
    67036702            pCF->ClrFill.Rects.cRects += cbRects/sizeof (RECT);
     6703
     6704            pPresent->pDmaBufferPrivateData = (uint8_t*)pPresent->pDmaBufferPrivateData + cbHead + cbRects;
    67046705        }
    67056706        else
     
    67076708            UINT cbFitingRects = (cbCmd/sizeof (RECT)) * sizeof (RECT);
    67086709            Assert(cbFitingRects);
    6709             memcpy(&pCF->ClrFill.Rects.aRects[pPresent->MultipassOffset], pPresent->pDstSubRects, cbFitingRects);
     6710            memcpy(&pCF->ClrFill.Rects.aRects[0], pPresent->pDstSubRects, cbFitingRects);
    67106711            cbCmd -= cbFitingRects;
    67116712            pPresent->MultipassOffset += cbFitingRects/sizeof (RECT);
    67126713            pCF->ClrFill.Rects.cRects += cbFitingRects/sizeof (RECT);
    67136714            Assert(pPresent->SubRectCnt > pPresent->MultipassOffset);
     6715
     6716            pPresent->pDmaBufferPrivateData = (uint8_t*)pPresent->pDmaBufferPrivateData + cbHead + cbFitingRects;
    67146717            Status = STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER;
    67156718        }
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