VirtualBox

Changeset 49365 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Nov 1, 2013 3:15:27 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
90406
Message:

wddm: basics for ring buffer-based command submission

Location:
trunk/include/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/HGSMI/HGSMIChSetup.h

    r44528 r49365  
    4545/* HGSMI setup and configuration data structures. */
    4646/* host->guest commands pending, should be accessed under FIFO lock only */
    47 #define HGSMIHOSTFLAGS_COMMANDS_PENDING 0x1
     47#define HGSMIHOSTFLAGS_COMMANDS_PENDING    0x1
    4848/* IRQ is fired, should be accessed under VGAState::lock only  */
    49 #define HGSMIHOSTFLAGS_IRQ              0x2
     49#define HGSMIHOSTFLAGS_IRQ                 0x2
    5050#ifdef VBOX_WITH_WDDM
    5151/* one or more guest commands is completed, should be accessed under FIFO lock only */
  • trunk/include/VBox/VBoxVideo.h

    r49332 r49365  
    853853#define VBVA_SCANLINE_CFG    13 /* configures scanline, see VBVASCANLINECFG below */
    854854#define VBVA_SCANLINE_INFO   14 /* requests scanline info, see VBVASCANLINEINFO below */
     855#define VBVA_CMDVBVA_ENABLE  15 /* enables command ring buffer VBVA */
     856#define VBVA_CMDVBVA_SUBMIT  16 /* inform host about VBVA Command submission */
     857#define VBVA_CMDVBVA_FLUSH   17 /* inform host about VBVA Command submission */
    855858
    856859/* host->guest commands */
     
    945948
    946949} VBVAFLUSH;
     950
     951typedef struct VBVACMDVBVASUBMIT
     952{
     953    uint32_t u32Reserved;
     954} VBVACMDVBVASUBMIT;
     955
     956/* flush is requested because due to guest command buffer overflow */
     957#define VBVACMDVBVAFLUSH_F_GUEST_BUFFER_OVERFLOW 1
     958
     959typedef struct VBVACMDVBVAFLUSH
     960{
     961    uint32_t u32Flags;
     962} VBVACMDVBVAFLUSH;
     963
    947964
    948965/* VBVAINFOSCREEN::u8Flags */
     
    15431560} VBOXVDMACMD_CHROMIUM_CTL_CRCONNECT, *PVBOXVDMACMD_CHROMIUM_CTL_CRCONNECT;
    15441561
     1562/* ring command buffer dr */
     1563#define VBOXCMDVBVA_STATE_SUBMITTED   1
     1564#define VBOXCMDVBVA_STATE_CANCELLED   2
     1565#define VBOXCMDVBVA_STATE_IN_PROGRESS 3
     1566/* the "completed" state is signalled via the ring buffer values */
     1567
     1568/* CrHgsmi command */
     1569#define VBOXCMDVBVA_OPTYPE_CRCMD 1
     1570/* blit command (e.g. shadow to primary) */
     1571#define VBOXCMDVBVA_OPTYPE_BLT   2
     1572/* nop - is a one-bit command. The buffer size to skip is determined by VBVA buffer size */
     1573#define VBOXCMDVBVA_OPTYPE_NOP   0x80
     1574
     1575/* trying to make the header as small as possible,
     1576 * we'd have pretty few op codes actually, so 8bit is quite enough,
     1577 * we will be able to extend it in any way. */
     1578typedef struct VBOXCMDVBVA_HDR
     1579{
     1580    /* one VBOXCMDVBVA_OPTYPE_XXX, ecxept NOP, see comments above */
     1581    uint8_t u8OpCode;
     1582    /* reserved, must be null */
     1583    uint8_t u8Reserved;
     1584    /* one of VBOXCMDVBVA_STATE_XXX*/
     1585    volatile uint8_t u8State;
     1586    /* result, 0 on success, otherwise contains the failure code TBD */
     1587    int8_t u8Result;
     1588    /* DXGK DDI fence ID */
     1589    uint32_t u32FenceID;
     1590} VBOXCMDVBVA_HDR;
     1591
     1592typedef struct VBOXCMDVBVA_CRCMD
     1593{
     1594    VBOXCMDVBVA_HDR Hdr;
     1595    VBOXVIDEOOFFSET offCmd;
     1596} VBOXCMDVBVA_CRCMD;
     1597
    15451598# pragma pack()
    15461599
  • trunk/include/VBox/VMMDev.h

    r48934 r49365  
    20862086#define VBVA_F_MODE_VRDP_ORDER_MASK (0x00000008)
    20872087
     2088#define VBVA_F_STATE_PROCESSING     (0x00010000)
     2089
    20882090#define VBVA_F_RECORD_PARTIAL       (0x80000000)
    20892091/** @} */
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