VirtualBox

Changeset 35941 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Feb 11, 2011 12:02:24 PM (14 years ago)
Author:
vboxsync
Message:

crOpenGL: fix for huge texture/vertex data transmit on windows guests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c

    r34887 r35941  
    601601
    602602# ifdef RT_OS_WINDOWS
    603     DWORD cbReturned;
     603    DWORD cbReturned, lerr;
    604604
    605605    if (DeviceIoControl (g_crvboxhgcm.hGuestDrv,
     
    612612        return VINF_SUCCESS;
    613613    }
    614     crDebug("vboxCall failed with %x\n", GetLastError());
    615     return VERR_NOT_SUPPORTED;
     614    lerr=GetLastError();
     615    crDebug("vboxCall failed with %x\n", lerr);
     616    /*On windows if we exceed max buffer len, we only get ERROR_GEN_FAILURE, and parms.hdr.result isn't changed.
     617     *Before every call here we set it to VERR_WRONG_ORDER, so checking it here as well.
     618     */
     619    if (ERROR_GEN_FAILURE==lerr && VERR_WRONG_ORDER==((VBoxGuestHGCMCallInfo*)pvData)->result)
     620    {
     621        return VERR_OUT_OF_RANGE;
     622    }
     623    else
     624    {
     625        return VERR_NOT_SUPPORTED;
     626    }
    616627# else
    617628    int rc;
     
    946957    rc = crVBoxHGCMCall(&parms, sizeof(parms));
    947958
    948 #ifdef RT_OS_LINUX
     959#if defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS)
    949960    if (VERR_OUT_OF_RANGE==rc && CR_VBOXHGCM_USERALLOCATED==bufferKind)
    950961    {
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