VirtualBox

Ignore:
Timestamp:
Dec 24, 2010 3:42:36 PM (14 years ago)
Author:
vboxsync
Message:
  1. wddm: 64bit support 2. wddm: installation fixes (64bit support, unsigned driver warning) 3. propper fix for #5438 (compile with disabled CROGL)
Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r34987 r35319  
    119119DLLS.amd64 += VBoxDispD3D-x86
    120120VBoxDispD3D-x86_EXTENDS = VBoxDispD3D
    121 VBoxDispD3D-x86_NAME = VBoxDispD3D32
    122121VBoxDispD3D-x86_BLD_TRG_ARCH = x86
    123122VBoxDispD3D-x86_LIBS = \
    124123        $(VBOX_LIB_IPRT_GUEST_R3_X86) \
    125124        $(VBOX_LIB_VBGL_R3_X86)
    126 
     125VBoxDispD3D-x86_DEFS = $(VBoxDispD3D_DEFS) VBOX_WDDM_WOW64
    127126 ifdef VBOX_WITH_CRHGSMI
    128127#
    129 # VBoxCrHgsmi
     128# VBoxCrHgsmi - Chromium HGSMI API library
    130129#
    131130LIBRARIES += VBoxCrHgsmi
     
    136135        wddm/VBoxUhgsmiKmt.cpp
    137136VBoxCrHgsmi_SDKS        = WINDDKWLH
     137
     138LIBRARIES.amd64 += VBoxCrHgsmi-x86
     139VBoxCrHgsmi-x86_EXTENDS = VBoxCrHgsmi
     140VBoxCrHgsmi-x86_BLD_TRG_ARCH = x86
     141VBoxCrHgsmi-x86_DEFS = $(VBoxCrHgsmi_DEFS) VBOX_WDDM_WOW64
    138142 endif
    139143endif
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp

    r35121 r35319  
    55225522                    pAllocInfo->enmType = VBOXWDDM_ALLOC_TYPE_UMD_RC_GENERIC;
    55235523                    pAllocInfo->fFlags = pResource->Flags;
    5524                     pAllocInfo->hSharedHandle = pAllocation->hSharedHandle;
     5524                    pAllocInfo->hSharedHandle = (uint64_t)pAllocation->hSharedHandle;
    55255525                    pAllocInfo->SurfDesc.width = pSurf->Width;
    55265526                    pAllocInfo->SurfDesc.height = pSurf->Height;
     
    74847484                    pAllocation->hAllocation = pOAI->hAllocation;
    74857485                    pAllocation->enmType = pAllocInfo->enmType;
    7486                     pAllocation->hSharedHandle = pAllocInfo->hSharedHandle;
     7486                    pAllocation->hSharedHandle = (HANDLE)pAllocInfo->hSharedHandle;
    74877487                    pAllocation->SurfDesc = pAllocInfo->SurfDesc;
    74887488                    Assert(pAllocation->hSharedHandle);
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.def

    r33116 r35319  
    1515; */
    1616
    17 LIBRARY VBoxDispD3D
    18 
    1917EXPORTS
    2018        OpenAdapter
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.rc

    r34987 r35319  
    4949         VALUE "InternalName",     "VBoxDispD3D\0"
    5050         VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
     51#ifdef VBOX_WDDM_WOW64
     52         VALUE "OriginalFilename", "VBoxDispD3D-x86.dll\0"
     53#else
    5154         VALUE "OriginalFilename", "VBoxDispD3D.dll\0"
     55#endif
    5256         VALUE "ProductName",      VBOX_PRODUCT " Guest Additions\0"
    5357         VALUE "ProductVersion",   VBOX_VERSION_MAJOR "." VBOX_VERSION_MINOR "." VBOX_VERSION_BUILD ".r" VBOX_SVN_REV "\0"
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3DIf.cpp

    r33836 r35319  
    2727HRESULT VBoxDispD3DOpen(VBOXDISPD3D *pD3D)
    2828{
     29#ifdef VBOX_WDDM_WOW64
     30    pD3D->hD3DLib = LoadLibraryW(L"VBoxD3D9wddm-x86.dll");
     31#else
    2932    pD3D->hD3DLib = LoadLibraryW(L"VBoxD3D9wddm.dll");
     33#endif
    3034    Assert(pD3D->hD3DLib);
    3135    if (pD3D->hD3DLib)
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxUhgsmiKmt.cpp

    r34987 r35319  
    143143        Buf.AllocInfo.enmType = VBOXWDDM_ALLOC_TYPE_UMD_HGSMI_BUFFER;
    144144        Buf.AllocInfo.cbBuffer = cbBuf;
    145         Buf.AllocInfo.hSynch = hSynch;
     145        Buf.AllocInfo.hSynch = (uint64_t)hSynch;
    146146        Buf.AllocInfo.enmSynchType = enmSynchType;
    147147
     
    226226{
    227227    PVBOXUHGSMI_BUFFER_PRIVATE_KMT_ESC pBuffer = VBOXUHGSMIKMTESC_GET_BUFFER(pBuf);
    228     *pvLock = pBuffer->Alloc.pvData + offLock;
     228    *pvLock = (void*)(pBuffer->Alloc.pvData + offLock);
    229229    return VINF_SUCCESS;
    230230}
     
    306306        Buf.AllocInfo.EscapeHdr.escapeCode = VBOXESC_UHGSMI_ALLOCATE;
    307307        Buf.AllocInfo.Alloc.cbData = cbBuf;
    308         Buf.AllocInfo.Alloc.hSynch = hSynch;
     308        Buf.AllocInfo.Alloc.hSynch = (uint64_t)hSynch;
    309309        Buf.AllocInfo.Alloc.enmSynchType = enmSynchType;
    310310
     
    612612        {
    613613            DWORD winEr = GetLastError();
     614#ifdef DEBUG_misha
    614615            Assert(0);
     616#endif
     617            Log((__FUNCTION__": EnumDisplayDevices failed, winEr (%d)\n", winEr));
    615618            hr = HRESULT_FROM_WIN32(winEr);
    616619            Assert(FAILED(hr));
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/dbg/VBoxVideoWinDbg.cpp

    r31885 r35319  
    9999    ULONG64 u64Height;
    100100    ULONG64 u64Bpp = 32;
     101    ULONG64 u64NumColors = 3;
    101102    ULONG64 u64Pitch;
    102103    ULONG64 u64DefaultPitch;
     
    114115    if (!GetExpressionEx(pExpr, &u64Height, &pExpr)) { dprintf("error evaluating height\n"); return; }
    115116    if (!u64Height) { dprintf("height value can not be NULL\n"); return; }
     117
     118    if (pExpr && GetExpressionEx(pExpr, &u64NumColors, &pExpr))
     119    {
     120        if (!u64NumColors) { dprintf("Num Colors value can not be NULL\n"); return; }
     121    }
    116122
    117123    if (pExpr && GetExpressionEx(pExpr, &u64Bpp, &pExpr))
     
    180186        if (uRc)
    181187        {
     188            switch (u64Bpp)
     189            {
     190                case 32:
     191                case 24:
     192                case 16:
     193                    if (u64NumColors != 3)
     194                    {
     195                        dprintf("WARNING: unsupported number colors: (%d)\n", u64NumColors);
     196                    }
     197                    break;
     198                case 8:
     199                    {
     200                        if (u64NumColors == 1)
     201                        {
     202                            ULONG64 cbSize32 = u64DefaultPitch * 4 * u64Height;
     203                            PVOID pvBuf32 = malloc(cbSize32);
     204                            if (pvBuf32)
     205                            {
     206                                byte* pByteBuf32 = (byte*)pvBuf32;
     207                                byte* pByteBuf = (byte*)pvBuf;
     208                                memset(pvBuf32, 0, cbSize32);
     209                                for (UINT i = 0; i < u64Height; ++i)
     210                                {
     211                                    for (UINT j = 0; j < u64Width; ++j)
     212                                    {
     213                                        pByteBuf32[0] = pByteBuf[0];
     214                                        pByteBuf32[1] = pByteBuf[0];
     215                                        pByteBuf32[2] = pByteBuf[0];
     216                                        pByteBuf32 += 4;
     217                                        pByteBuf += 1;
     218                                    }
     219                                }
     220                                free(pvBuf);
     221                                pvBuf = pvBuf32;
     222                                u64DefaultPitch *= 4;
     223                                u64Bpp *= 4;
     224                            }
     225                        }
     226                        else
     227                        {
     228                            dprintf("WARNING: unsupported number colors: (%d)\n", u64NumColors);
     229                        }
     230                    }
     231                    break;
     232            }
    182233            BITMAP Bmp = {0};
    183234            HBITMAP hBmp;
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