VirtualBox

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


Ignore:
Timestamp:
May 30, 2023 9:55:50 AM (20 months ago)
Author:
vboxsync
Message:

WDDM: SVGADevCapRead. bugref:9845

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

Legend:

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

    r99997 r100010  
    497497    {
    498498        for (i = 0; i < RT_ELEMENTS(pSvgaInfo->au32Caps); ++i)
    499         {
    500             SVGARegWrite(pSvga, SVGA_REG_DEV_CAP, i);
    501             pSvgaInfo->au32Caps[i] = SVGARegRead(pSvga, SVGA_REG_DEV_CAP);
    502         }
     499            pSvgaInfo->au32Caps[i] = SVGADevCapRead(pSvga, i);
    503500    }
    504501
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/SvgaHw.h

    r98103 r100010  
    7676}
    7777
     78DECLINLINE(uint32_t) SVGADevCapRead(PVBOXWDDM_EXT_VMSVGA pSvga, uint32_t idx)
     79{
     80    KIRQL OldIrql;
     81    KeAcquireSpinLock(&pSvga->HwSpinLock, &OldIrql);
     82
     83    ASMOutU32(SVGAPort(pSvga, SVGA_INDEX_PORT), SVGA_REG_DEV_CAP);
     84    ASMOutU32(SVGAPort(pSvga, SVGA_VALUE_PORT), idx);
     85    uint32_t const u32Value = ASMInU32(SVGAPort(pSvga, SVGA_VALUE_PORT));
     86
     87    KeReleaseSpinLock(&pSvga->HwSpinLock, OldIrql);
     88    return u32Value;
     89}
     90
    7891DECLINLINE(volatile void *) SVGAFifoPtrFromOffset(PVBOXWDDM_EXT_VMSVGA pSvga, uint32_t u32Offset)
    7992{
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