VirtualBox

Changeset 19464 in vbox for trunk


Ignore:
Timestamp:
May 6, 2009 9:12:09 PM (16 years ago)
Author:
vboxsync
Message:

HGSMI support makefile fixes, basics for passing ddraw command to host

Location:
trunk
Files:
6 edited

Legend:

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

    r19431 r19464  
    288288#define VBVA_ENABLE       7
    289289#define VBVA_MOUSE_POINTER_SHAPE 8
     290#ifdef VBOX_WITH_VIDEOHWACCEL
     291# define VBVA_INFO_VHWA   9
     292# define VBVA_VHWA_CMD    10
     293
     294typedef enum
     295{
     296    VBVAVHWACMD_TYPE_SURF_CREATE = 1,
     297    VBVAVHWACMD_TYPE_SURF_DESTROY
     298} VBVAVHWACMD_TYPE;
     299
     300typedef struct _VBVAVHWACMD_HDR
     301{
     302    VBVAVHWACMD_TYPE enmCmd;
     303    char body[1];
     304} VBVAVHWACMD_HDR;
     305
     306#define VBVAVHWACMD_SIZE(_tCmd) (RT_OFFSETOF(VBVAVHWACMD_HDR, body) + sizeof(_tCmd))
     307typedef unsigned int VBVAVHWACMD_LENGTH;
     308typedef uint64_t VBVAVHWA_SURFHANDLE;
     309#define VBVAVHWA_SURFHANDLE_INVALID 0
     310#define VBVAVHWACMD_BODY(_p, _t) ((_t*)(_p)->body)
     311
     312typedef struct _VBVAVHWA_RECTL
     313{
     314    int16_t x;
     315    int16_t y;
     316    uint16_t w;
     317    uint16_t h;
     318} VBVAVHWA_RECTL;
     319
     320#define VBVAVHWASURF_PRIMARY      0x00000001
     321#define VBVAVHWASURF_OVERLAY      0x00000002
     322
     323typedef struct _VBVAVHWA_SURFINFO
     324{
     325    uint32_t surfChars;
     326    VBVAVHWA_RECTL rectl;
     327} VBVAVHWA_SURFINFO;
     328
     329typedef struct _VBVAVHWACMD_SURF_CREATE
     330{
     331    union
     332    {
     333        struct
     334        {
     335            VBVAVHWA_SURFINFO SurfInfo;
     336        } in;
     337
     338        struct
     339        {
     340            int rc;
     341            VBVAVHWA_SURFHANDLE hSurf;
     342        } out;
     343    } u;
     344} VBVAVHWACMD_SURF_CREATE;
     345
     346typedef struct _VBVAVHWACMD_SURF_DESTROY
     347{
     348    union
     349    {
     350        struct
     351        {
     352            VBVAVHWA_SURFHANDLE hSurf;
     353        } in;
     354
     355        struct
     356        {
     357            int rc;
     358        } out;
     359    } u;
     360} VBVAVHWACMD_SURF_DESTROY;
     361
     362#endif
     363
    290364
    291365/* VBVACONF32::u32Index */
     
    378452    /* The host result. */
    379453    uint32_t u32Result;
    380    
     454
    381455    /* VBOX_MOUSE_POINTER_* bit flags. */
    382456    uint32_t fu32Flags;
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r17610 r19464  
    3333VBoxDisp_DEFS        += VBOX_VBVA_ADJUST_RECT
    3434#VBoxDisp_DEFS        += LOG_ENABLED
     35ifdef VBOX_WITH_VIDEOHWACCEL
     36VBoxDisp_DEFS        += VBOX_WITH_VIDEOHWACCEL
     37endif
    3538#VBoxDisp_DEFS        += STAT_sunlover
    3639VBoxDisp_SOURCES     = \
     
    5962VBoxDisp_LIBS         += \
    6063        $(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB)
     64VBoxDisp_DEFS += VBOX_WITH_HGSMI
    6165endif
    6266
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h

    r18246 r19464  
    7575{
    7676    ULONG cbVRAM;
    77    
     77
    7878    ULONG offFrameBuffer;
    7979    ULONG cbFrameBuffer;
    80    
     80
    8181    ULONG offDDRAWHeap; //@todo
    8282    ULONG cbDDRAWHeap;
    83    
     83
    8484    ULONG offVBVABuffer;
    8585    ULONG cbVBVABuffer;
    86    
     86
    8787    ULONG offDisplayInformation;
    8888    ULONG cbDisplayInformation;
     
    111111    ULONG   ulMode;                     // Mode the mini-port driver is in.
    112112    LONG    lDeltaScreen;               // Distance from one scan to the next.
    113    
     113
    114114    PVOID   pOffscreenList;             // linked list of DCI offscreen surfaces.
    115115    FLONG   flRed;                      // For bitfields device, Red Mask
     
    128128    BOOL    bSupportDCI;                // Does the miniport support DCI?
    129129    FLONG   flHooks;
    130    
     130
    131131#ifndef VBOX_WITH_HGSMI
    132132    VBVAENABLERESULT vbva;
     
    165165    VBVABUFFER *pVBVA; /* Pointer to the pjScreen + layout->offVBVABuffer. NULL if VBVA is not enabled. */
    166166#endif /* VBOX_WITH_HGSMI */
     167
     168#ifdef VBOX_WITH_VIDEOHWACCEL
     169    BOOLEAN bVHWAEnabled;
     170#endif
    167171};
    168172
    169 #ifdef VBOX_WITH_OPENGL 
    170 typedef struct 
    171 { 
    172     DWORD dwVersion; 
    173     DWORD dwDriverVersion; 
    174     WCHAR szDriverName[256]; 
    175 } OPENGL_INFO, *POPENGL_INFO; 
    176 #endif 
     173#ifdef VBOX_WITH_OPENGL
     174typedef struct
     175{
     176    DWORD dwVersion;
     177    DWORD dwDriverVersion;
     178    WCHAR szDriverName[256];
     179} OPENGL_INFO, *POPENGL_INFO;
     180#endif
    177181
    178182#ifndef VBOX_WITH_HGSMI
     
    245249void drvLoadEng (void);
    246250
     251#ifdef VBOX_WITH_VIDEOHWACCEL
     252VBVAVHWACMD_HDR* vboxVHWACreateCommand (PPDEV ppdev, VBVAVHWACMD_LENGTH cbCmd);
     253void vboxVHWAFreeCommand (PPDEV ppdev, VBVAVHWACMD_HDR* pCmd);
     254void vboxVHWASubmitCommand (PPDEV ppdev, VBVAVHWACMD_HDR* pCmd);
     255#endif
     256
    247257BOOL bIsScreenSurface (SURFOBJ *pso);
    248258
     
    252262    {
    253263        PPDEV ppdev = (PPDEV)pso->dhpdev;
    254    
     264
    255265        if (ppdev)
    256266        {
     
    262272        }
    263273    }
    264    
     274
    265275    return pso;
    266276}
     
    276286        case BMF_32BPP: return 4;
    277287    }
    278    
     288
    279289    return 0;
    280290}
     
    290300#define VRDP_TEXT_MAX_GLYPH_SIZE 0x100
    291301#define VRDP_TEXT_MAX_GLYPHS     0xfe
    292  
     302
    293303BOOL vboxReportText (PPDEV ppdev,
    294304                     VRDPCLIPRECTS *pClipRects,
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/vbox.c

    r19430 r19464  
    5555
    5656    DISPDBG((1, "VBoxDisp::vboxVbvaEnable called\n"));
    57    
     57
    5858    if (!ghsemHwBuffer)
    5959    {
     
    388388
    389389    DISPDBG((1, "VBoxDisp::vboxVbvaEnable called\n"));
    390    
     390
    391391    if (ppdev->bHGSMISupported)
    392392    {
    393393        VBVABUFFER *pVBVA = (VBVABUFFER *)((uint8_t *)ppdev->pjScreen + ppdev->layout.offVBVABuffer);
    394        
     394
    395395        pVBVA->u32HostEvents      = 0;
    396396        pVBVA->u32SupportedOrders = 0;
     
    406406        ppdev->pRecord           = NULL;
    407407        ppdev->pVBVA             = pVBVA;
    408        
     408
    409409        bRc = vboxVBVAInformHost (ppdev, TRUE);
    410410    }
     
    689689    return;
    690690}
     691
     692# ifdef VBOX_WITH_VIDEOHWACCEL
     693
     694VBVAVHWACMD_HDR* vboxVHWACreateCommand (PPDEV ppdev, VBVAVHWACMD_LENGTH cbCmd)
     695{
     696    VBVAVHWACMD_HDR* pHdr = (VBVAVHWACMD_HDR*)HGSMIHeapAlloc (&ppdev->hgsmiDisplayHeap,
     697                              cbCmd,
     698                              HGSMI_CH_VBVA,
     699                              VBVA_VHWA_CMD);
     700    if (!pHdr)
     701    {
     702        DISPDBG((0, "VBoxDISP::vboxVHWACreateCommand: HGSMIHeapAlloc failed\n"));
     703    }
     704
     705    return pHdr;
     706}
     707
     708void vboxVHWAFreeCommand (PPDEV ppdev, VBVAVHWACMD_HDR* pCmd)
     709{
     710    HGSMIHeapFree (&ppdev->hgsmiDisplayHeap, pCmd);
     711}
     712
     713void vboxVHWASubmitCommand (PPDEV ppdev, VBVAVHWACMD_HDR* pCmd)
     714{
     715    vboxHGSMIBufferSubmit (ppdev, pCmd);
     716}
     717
     718# endif
     719
    691720#endif /* VBOX_WITH_HGSMI */
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/Makefile.kmk

    r17583 r19464  
    5959VBoxVideo_LIBS         += \
    6060        $(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB)
     61VBoxVideo_DEFS += VBOX_WITH_HGSMI
    6162endif
    6263
  • trunk/src/VBox/Devices/Makefile.kmk

    r19409 r19464  
    191191 VBoxDD_LIBS           += \
    192192        $(L4_LIBDIR)/libl4sys.p.a
     193endif
     194
     195ifdef VBOX_WITH_HGSMI
     196 VBoxDD_LIBS           += \
     197        $(PATH_LIB)/HGSMIHostR3Lib$(VBOX_SUFF_LIB)
    193198endif
    194199
     
    288293        Network/DevEEPROM.cpp
    289294endif
     295
     296ifdef VBOX_WITH_HGSMI
     297 DevicesR3_DEFS         += VBOX_WITH_HGSMI
     298 DevicesR3_SOURCES      += \
     299        Graphics/DevVGA_VBVA.cpp \
     300        Graphics/HGSMI/HGSMIHost.cpp \
     301        Graphics/HGSMI/HGSMIHostHlp.cpp
     302 
     303endif
     304ifdef VBOX_WITH_VIDEOHWACCEL
     305 DevicesR3_DEFS         += VBOX_WITH_VIDEOHWACCEL
     306endif
     307
    290308
    291309ifdef VBOX_WITH_INIP
     
    451469endif
    452470
     471ifdef VBOX_WITH_HGSMI
     472 VBoxDDGC_DEFS         += VBOX_WITH_HGSMI
     473endif
     474ifdef VBOX_WITH_VIDEOHWACCEL
     475 VBoxDDGC_DEFS         += VBOX_WITH_VIDEOHWACCEL
     476endif
     477
    453478ifdef VBOX_WITH_AHCI
    454479VBoxDDGC_DEFS          += VBOX_WITH_AHCI IN_AHCI_GC
     
    544569        Storage/DevLsiLogicSCSI.cpp
    545570endif
     571
     572ifdef VBOX_WITH_HGSMI
     573 VBoxDDR0_DEFS         += VBOX_WITH_HGSMI
     574endif
     575ifdef VBOX_WITH_VIDEOHWACCEL
     576 VBoxDDGC_DEFS         += VBOX_WITH_VIDEOHWACCEL
     577endif
     578
    546579
    547580ifdef VBOX_WITH_HPET
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