Changeset 49591 in vbox for trunk/include/VBox/VBoxVideo.h
- Timestamp:
- Nov 20, 2013 5:53:55 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 90796
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxVideo.h
r49507 r49591 1569 1569 /* CrHgsmi command */ 1570 1570 #define VBOXCMDVBVA_OPTYPE_CRCMD 1 1571 /* special case for blitting to primary */1572 #define VBOXCMDVBVA_OPTYPE_BLT_TOPRIMARY 21573 1571 /* blit command that does blitting of allocations identified by VRAM offset or host id 1574 1572 * 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 1576 1578 /* allocation paging transfer request */ 1577 #define VBOXCMDVBVA_OPTYPE_PAGING_TRANSFER 41579 #define VBOXCMDVBVA_OPTYPE_PAGING_TRANSFER 5 1578 1580 /* allocation paging fill request */ 1579 #define VBOXCMDVBVA_OPTYPE_PAGING_FILL 51581 #define VBOXCMDVBVA_OPTYPE_PAGING_FILL 6 1580 1582 /* same as VBOXCMDVBVA_OPTYPE_NOP, but contains VBOXCMDVBVA_HDR data */ 1581 #define VBOXCMDVBVA_OPTYPE_NOPCMD 61583 #define VBOXCMDVBVA_OPTYPE_NOPCMD 7 1582 1584 1583 1585 /* nop - is a one-bit command. The buffer size to skip is determined by VBVA buffer size */ … … 1593 1595 #define VBOXCMDVBVA_OPF_PAGING_TRANSFER_IN 0x20 1594 1596 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 1595 1603 1596 1604 /* trying to make the header as small as possible, … … 1599 1607 typedef struct VBOXCMDVBVA_HDR 1600 1608 { 1601 /* one VBOXCMDVBVA_OPTYPE_XXX, e cxept NOP, see comments above */1609 /* one VBOXCMDVBVA_OPTYPE_XXX, except NOP, see comments above */ 1602 1610 uint8_t u8OpCode; 1603 1611 /* 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) */ 1608 1619 uint8_t u8Flags; 1609 1620 /* one of VBOXCMDVBVA_STATE_XXX*/ … … 1616 1627 }; 1617 1628 /* DXGK DDI fence ID */ 1618 uint32_t u32FenceID;1629 volatile uint32_t u32FenceID; 1619 1630 } VBOXCMDVBVA_HDR; 1620 1631 … … 1622 1633 typedef uint64_t VBOXCMDVBVAPHADDR; 1623 1634 1635 typedef struct VBOXCMDVBVA_CRCMD_BUFFER 1636 { 1637 uint32_t cbBuffer; 1638 VBOXCMDVBVAOFFSET offBuffer; 1639 } VBOXCMDVBVA_CRCMD_BUFFER; 1640 1641 typedef struct VBOXCMDVBVA_CRCMD_CMD 1642 { 1643 uint32_t cBuffers; 1644 VBOXCMDVBVA_CRCMD_BUFFER aBuffers[1]; 1645 } VBOXCMDVBVA_CRCMD_CMD; 1646 1624 1647 typedef struct VBOXCMDVBVA_CRCMD 1625 1648 { 1626 1649 VBOXCMDVBVA_HDR Hdr; 1627 VBOXCMDVBVA OFFSET offCmd;1650 VBOXCMDVBVA_CRCMD_CMD Cmd; 1628 1651 } VBOXCMDVBVA_CRCMD; 1629 1652 … … 1640 1663 { 1641 1664 /** 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; 1646 1669 } VBOXCMDVBVA_RECT; 1647 1670 1648 typedef struct VBOXCMDVBVA_BLT_ TOPRIMARY1671 typedef struct VBOXCMDVBVA_BLT_PRIMARY 1649 1672 { 1650 1673 VBOXCMDVBVA_HDR Hdr; 1651 VBOXCMDVBVA_ALLOCINFO src;1674 VBOXCMDVBVA_ALLOCINFO alloc; 1652 1675 /* the rects count is determined from the command size */ 1653 1676 VBOXCMDVBVA_RECT aRects[1]; 1654 } VBOXCMDVBVA_BLT_ TOPRIMARY;1677 } VBOXCMDVBVA_BLT_PRIMARY; 1655 1678 1656 1679 typedef struct VBOXCMDVBVA_BLT_OFFPRIMSZFMT_OR_ID … … 1663 1686 } VBOXCMDVBVA_BLT_OFFPRIMSZFMT_OR_ID; 1664 1687 1688 typedef struct VBOXCMDVBVA_FLIP 1689 { 1690 VBOXCMDVBVA_HDR Hdr; 1691 VBOXCMDVBVA_ALLOCINFO src; 1692 } VBOXCMDVBVA_FLIP; 1693 1694 typedef 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 1703 typedef struct VBOXCMDVBVA_SYSMEMEL 1704 { 1705 uint32_t cPagesAfterFirst : 12; 1706 VBOXCMDVBVAPHADDR iPage : 52; 1707 } VBOXCMDVBVA_SYSMEMEL; 1708 1665 1709 typedef struct VBOXCMDVBVA_PAGING_TRANSFER 1666 1710 { 1667 1711 VBOXCMDVBVA_HDR Hdr; 1668 VBOXCMDVBVAPHADDR Addr;1669 1712 /* for now can only contain offVRAM. 1670 1713 * paging transfer can NOT be initiated for allocations having host 3D object (hostID) associated */ 1671 1714 VBOXCMDVBVA_ALLOCINFO Alloc; 1715 uint32_t cSysMem; 1716 VBOXCMDVBVA_SYSMEMEL aSysMem[1]; 1672 1717 } VBOXCMDVBVA_PAGING_TRANSFER; 1673 1718
Note:
See TracChangeset
for help on using the changeset viewer.