VirtualBox

Ignore:
Timestamp:
Sep 9, 2020 4:04:00 PM (4 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9637. Using DRM client on 32 bit vms

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp

    r85976 r86078  
    744744}
    745745
     746static bool startDRMClient()
     747{
     748    char* argv[] = {NULL};
     749    char* env[] = {NULL};
     750    char szDRMClientPath[RTPATH_MAX];
     751    RTPathExecDir(szDRMClientPath, RTPATH_MAX);
     752    RTPathAppend(szDRMClientPath, RTPATH_MAX, "VBoxDRMClient");
     753    VBClLogInfo("Starting DRM client.\n");
     754    int rc = execve(szDRMClientPath, argv, env);
     755    if (rc == -1)
     756        VBClLogFatalError("execve for % returns the following error %d %s\n", szDRMClientPath, errno, strerror(errno));
     757    /* This is reached only when execve fails. */
     758    return false;
     759}
     760
    746761static bool init()
    747762{
     
    753768    }
    754769    if (isXwayland())
    755     {
    756         char* argv[] = {NULL};
    757         char* env[] = {NULL};
    758         char szDRMClientPath[RTPATH_MAX];
    759         RTPathExecDir(szDRMClientPath, RTPATH_MAX);
    760         RTPathAppend(szDRMClientPath, RTPATH_MAX, "VBoxDRMClient");
    761         int rc = execve(szDRMClientPath, argv, env);
    762         if (rc == -1)
    763             VBClLogFatalError("execve for % returns the following error %d %s\n", szDRMClientPath, errno, strerror(errno));
    764         /* This is reached only when execve fails. */
    765         return false;
    766     }
     770        return startDRMClient();
     771
    767772    x11Connect();
    768773    if (x11Context.pDisplay == NULL)
     
    12251230{
    12261231    XGrabServer(x11Context.pDisplay);
    1227     /* In 32-bit guests GAs build on our release machines causes an xserver lock during vmware_ctrl extention
    1228      * if we do the call withing XGrab. So we disabled this call for 32-bit GAs. */
    1229 #if ARCH_BITS != 32
    12301232    if (x11Context.fWmwareCtrlExtention)
    12311233        callVMWCTRL(paOutputs);
    1232 #endif
     1234
    12331235#ifdef WITH_DISTRO_XRAND_XINERAMA
    12341236    x11Context.pScreenResources = XRRGetScreenResources(x11Context.pDisplay, x11Context.rootWindow);
     
    13261328{
    13271329    RT_NOREF(ppInterface, fDaemonised);
     1330
     1331    /* In 32-bit guests GAs build on our release machines causes an xserver hang.
     1332     * So for 32-bit GAs we use our DRM client. */
     1333#if ARCH_BITS == 32
     1334    startDRMClient();
     1335    return VERR_NOT_AVAILABLE;
     1336#endif
     1337
    13281338    if (!init())
    13291339        return VERR_NOT_AVAILABLE;
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