VirtualBox

Changeset 49591 in vbox for trunk/include/VBox/VBoxVideo.h


Ignore:
Timestamp:
Nov 20, 2013 5:53:55 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
90796
Message:

wddm: more on new comand mechanism, guest side almost done, some cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxVideo.h

    r49507 r49591  
    15691569/* CrHgsmi command */
    15701570#define VBOXCMDVBVA_OPTYPE_CRCMD                        1
    1571 /* special case for blitting to primary */
    1572 #define VBOXCMDVBVA_OPTYPE_BLT_TOPRIMARY                2
    15731571/* blit command that does blitting of allocations identified by VRAM offset or host id
    15741572 * for VRAM-offset ones the size and format are same as primary */
    1575 #define VBOXCMDVBVA_OPTYPE_BLT_OFFPRIMSZFMT_OR_ID       3
     1573#define VBOXCMDVBVA_OPTYPE_BLT_OFFPRIMSZFMT_OR_ID       2
     1574/* flip */
     1575#define VBOXCMDVBVA_OPTYPE_FLIP                         3
     1576/* ColorFill */
     1577#define VBOXCMDVBVA_OPTYPE_CLRFILL                      4
    15761578/* allocation paging transfer request */
    1577 #define VBOXCMDVBVA_OPTYPE_PAGING_TRANSFER              4
     1579#define VBOXCMDVBVA_OPTYPE_PAGING_TRANSFER              5
    15781580/* allocation paging fill request */
    1579 #define VBOXCMDVBVA_OPTYPE_PAGING_FILL                  5
     1581#define VBOXCMDVBVA_OPTYPE_PAGING_FILL                  6
    15801582/* same as VBOXCMDVBVA_OPTYPE_NOP, but contains VBOXCMDVBVA_HDR data */
    1581 #define VBOXCMDVBVA_OPTYPE_NOPCMD                       6
     1583#define VBOXCMDVBVA_OPTYPE_NOPCMD                       7
    15821584
    15831585/* nop - is a one-bit command. The buffer size to skip is determined by VBVA buffer size */
     
    15931595#define VBOXCMDVBVA_OPF_PAGING_TRANSFER_IN              0x20
    15941596
     1597/* VBOXCMDVBVA_OPTYPE_BLT_PRIMARY specific flags*/
     1598/* if set - src is a primary id */
     1599#define VBOXCMDVBVA_OPF_ALLOC_SRCPRIMARY               0x20
     1600/* if set - dst is a primary id */
     1601#define VBOXCMDVBVA_OPF_ALLOC_DSTPRIMARY               0x10
     1602
    15951603
    15961604/* trying to make the header as small as possible,
     
    15991607typedef struct VBOXCMDVBVA_HDR
    16001608{
    1601     /* one VBOXCMDVBVA_OPTYPE_XXX, ecxept NOP, see comments above */
     1609    /* one VBOXCMDVBVA_OPTYPE_XXX, except NOP, see comments above */
    16021610    uint8_t u8OpCode;
    16031611    /* command-specific
    1604      * VBOXCMDVBVA_OPTYPE_CRCMD - must be null
    1605      * VBOXCMDVBVA_OPTYPE_BLT_TOPRIMARY - OR-ed VBOXCMDVBVA_OPF_ALLOC_XXX flags
    1606      * VBOXCMDVBVA_OPTYPE_BLT_OFFPRIMSZFMT_OR_ID - OR-ed VBOXCMDVBVA_OPF_ALLOC_XXX flags
    1607      * VBOXCMDVBVA_OPTYPE_NOP - must be null */
     1612     * VBOXCMDVBVA_OPTYPE_CRCMD                     - must be null
     1613     * VBOXCMDVBVA_OPTYPE_BLT_PRIMARY             - OR-ed VBOXCMDVBVA_OPF_ALLOC_XXX flags
     1614     * VBOXCMDVBVA_OPTYPE_BLT_OFFPRIMSZFMT_OR_ID    - OR-ed VBOXCMDVBVA_OPF_ALLOC_XXX flags
     1615     * VBOXCMDVBVA_OPTYPE_PAGING_TRANSFER           - must be null
     1616     * VBOXCMDVBVA_OPTYPE_PAGING_FILL               - must be null
     1617     * VBOXCMDVBVA_OPTYPE_NOPCMD                    - must be null
     1618     * VBOXCMDVBVA_OPTYPE_NOP                       - not applicable (as the entire VBOXCMDVBVA_HDR is not valid) */
    16081619    uint8_t u8Flags;
    16091620    /* one of VBOXCMDVBVA_STATE_XXX*/
     
    16161627    };
    16171628    /* DXGK DDI fence ID */
    1618     uint32_t u32FenceID;
     1629    volatile uint32_t u32FenceID;
    16191630} VBOXCMDVBVA_HDR;
    16201631
     
    16221633typedef uint64_t VBOXCMDVBVAPHADDR;
    16231634
     1635typedef struct VBOXCMDVBVA_CRCMD_BUFFER
     1636{
     1637    uint32_t cbBuffer;
     1638    VBOXCMDVBVAOFFSET offBuffer;
     1639} VBOXCMDVBVA_CRCMD_BUFFER;
     1640
     1641typedef struct VBOXCMDVBVA_CRCMD_CMD
     1642{
     1643    uint32_t cBuffers;
     1644    VBOXCMDVBVA_CRCMD_BUFFER aBuffers[1];
     1645} VBOXCMDVBVA_CRCMD_CMD;
     1646
    16241647typedef struct VBOXCMDVBVA_CRCMD
    16251648{
    16261649    VBOXCMDVBVA_HDR Hdr;
    1627     VBOXCMDVBVAOFFSET offCmd;
     1650    VBOXCMDVBVA_CRCMD_CMD Cmd;
    16281651} VBOXCMDVBVA_CRCMD;
    16291652
     
    16401663{
    16411664   /** Coordinates of affected rectangle. */
    1642    int16_t x;
    1643    int16_t y;
    1644    uint16_t w;
    1645    uint16_t h;
     1665   int16_t xLeft;
     1666   int16_t yTop;
     1667   int16_t xRight;
     1668   int16_t yBottom;
    16461669} VBOXCMDVBVA_RECT;
    16471670
    1648 typedef struct VBOXCMDVBVA_BLT_TOPRIMARY
     1671typedef struct VBOXCMDVBVA_BLT_PRIMARY
    16491672{
    16501673    VBOXCMDVBVA_HDR Hdr;
    1651     VBOXCMDVBVA_ALLOCINFO src;
     1674    VBOXCMDVBVA_ALLOCINFO alloc;
    16521675    /* the rects count is determined from the command size */
    16531676    VBOXCMDVBVA_RECT aRects[1];
    1654 } VBOXCMDVBVA_BLT_TOPRIMARY;
     1677} VBOXCMDVBVA_BLT_PRIMARY;
    16551678
    16561679typedef struct VBOXCMDVBVA_BLT_OFFPRIMSZFMT_OR_ID
     
    16631686} VBOXCMDVBVA_BLT_OFFPRIMSZFMT_OR_ID;
    16641687
     1688typedef struct VBOXCMDVBVA_FLIP
     1689{
     1690    VBOXCMDVBVA_HDR Hdr;
     1691    VBOXCMDVBVA_ALLOCINFO src;
     1692} VBOXCMDVBVA_FLIP;
     1693
     1694typedef struct VBOXCMDVBVA_CLRFILL
     1695{
     1696    VBOXCMDVBVA_HDR Hdr;
     1697    VBOXCMDVBVA_ALLOCINFO dst;
     1698    VBOXCMDVBVA_RECT aRects[1];
     1699} VBOXCMDVBVA_CLRFILL;
     1700
     1701#define VBOXCMDVBVA_SYSMEMEL_CPAGES_MAX  0x1000
     1702
     1703typedef struct VBOXCMDVBVA_SYSMEMEL
     1704{
     1705    uint32_t cPagesAfterFirst  : 12;
     1706    VBOXCMDVBVAPHADDR iPage    : 52;
     1707} VBOXCMDVBVA_SYSMEMEL;
     1708
    16651709typedef struct VBOXCMDVBVA_PAGING_TRANSFER
    16661710{
    16671711    VBOXCMDVBVA_HDR Hdr;
    1668     VBOXCMDVBVAPHADDR Addr;
    16691712    /* for now can only contain offVRAM.
    16701713     * paging transfer can NOT be initiated for allocations having host 3D object (hostID) associated */
    16711714    VBOXCMDVBVA_ALLOCINFO Alloc;
     1715    uint32_t cSysMem;
     1716    VBOXCMDVBVA_SYSMEMEL aSysMem[1];
    16721717} VBOXCMDVBVA_PAGING_TRANSFER;
    16731718
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