VirtualBox

Ignore:
Timestamp:
Jul 4, 2013 6:08:11 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86974
Message:

wddm/crOpenGL: some bugfixes, more TexPresent fixes

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPMisc.cpp

    r46876 r46966  
    394394NTSTATUS vboxWddmSwapchainCtxEscape(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_CONTEXT pContext, PVBOXDISPIFESCAPE_SWAPCHAININFO pSwapchainInfo, UINT cbSize)
    395395{
    396     Assert((cbSize >= RT_OFFSETOF(VBOXDISPIFESCAPE_SWAPCHAININFO, SwapchainInfo.ahAllocs[0])));
    397396    if (cbSize < RT_OFFSETOF(VBOXDISPIFESCAPE_SWAPCHAININFO, SwapchainInfo.ahAllocs[0]))
     397    {
     398        WARN(("invalid cbSize1 %d", cbSize));
    398399        return STATUS_INVALID_PARAMETER;
    399     Assert(cbSize >= RT_OFFSETOF(VBOXDISPIFESCAPE_SWAPCHAININFO, SwapchainInfo.ahAllocs[pSwapchainInfo->SwapchainInfo.cAllocs]));
     400    }
     401
    400402    if (cbSize < RT_OFFSETOF(VBOXDISPIFESCAPE_SWAPCHAININFO, SwapchainInfo.ahAllocs[pSwapchainInfo->SwapchainInfo.cAllocs]))
     403    {
    401404        return STATUS_INVALID_PARAMETER;
     405        WARN(("invalid cbSize2 %d", cbSize));
     406    }
    402407
    403408    if (!pSwapchainInfo->SwapchainInfo.winHostID)
    404409    {
    405410        WARN(("Zero winHostID specified!"));
     411        return STATUS_INVALID_PARAMETER;
     412    }
     413
     414    if (!pContext)
     415    {
     416        WARN(("vboxWddmSwapchainCtxEscape: no context specified"));
    406417        return STATUS_INVALID_PARAMETER;
    407418    }
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPTypes.h

    r46757 r46966  
    228228    VBOXDISP_UMHANDLE hSwapchainUm;
    229229    VBOXDISP_KMHANDLE hSwapchainKm;
    230     UINT winHostID;
     230    int32_t winHostID;
    231231    BOOLEAN fExposed;
    232232    POINT Pos;
     
    244244    UINT  EngineAffinity;
    245245    BOOLEAN fRenderFromShadowDisabled;
     246    int32_t hostID;
    246247    uint32_t u32CrConClientID;
    247248    VBOXMP_CRPACKER CrPacker;
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r46885 r46966  
    41104110                break;
    41114111            }
     4112            case VBOXESC_SETCTXHOSTID:
     4113            {
     4114                /* set swapchain information */
     4115                PVBOXWDDM_CONTEXT pContext = (PVBOXWDDM_CONTEXT)pEscape->hContext;
     4116                if (!pContext)
     4117                {
     4118                    WARN(("VBOXESC_SETCTXHOSTID: no context specified"));
     4119                    Status = STATUS_INVALID_PARAMETER;
     4120                    break;
     4121                }
     4122
     4123                if (pEscape->PrivateDriverDataSize != sizeof (VBOXDISPIFESCAPE))
     4124                {
     4125                    WARN(("VBOXESC_SETCTXHOSTID: invalid data size %d", pEscape->PrivateDriverDataSize));
     4126                    Status = STATUS_INVALID_PARAMETER;
     4127                    break;
     4128                }
     4129
     4130                int32_t hostID = (int32_t)pEscapeHdr->u32CmdSpecific;
     4131                if (hostID <= 0)
     4132                {
     4133                    WARN(("VBOXESC_SETCTXHOSTID: invalid hostID %d", hostID));
     4134                    Status = STATUS_INVALID_PARAMETER;
     4135                    break;
     4136                }
     4137
     4138                if (pContext->hostID)
     4139                {
     4140                    WARN(("VBOXESC_SETCTXHOSTID: context already has hostID specified"));
     4141                    Status = STATUS_INVALID_PARAMETER;
     4142                    break;
     4143                }
     4144
     4145                pContext->hostID = hostID;
     4146                Status = STATUS_SUCCESS;
     4147                break;
     4148            }
    41124149            case VBOXESC_SWAPCHAININFO:
    41134150            {
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