VirtualBox

Changeset 64114 in vbox


Ignore:
Timestamp:
Sep 30, 2016 7:26:47 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111071
Message:

bugref:8611:3D: X11 Guests ignore CR_VBOX_CAP_HOST_CAPS_NOT_SUFFICIENT: Check for the CR_VBOX_CAP_HOST_CAPS_NOT_SUFFICIENT host capability in the X11 Additions too, and disable 3D pass-through if it is found. This means that the host only supports OpenGL 2.0 or older, most likely Windows host software rendering.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/x11/VBoxClient/check3d.cpp

    r62530 r64114  
    1818#include "VBoxClient.h"
    1919
     20#include <VBox/VBoxGuest.h>
    2021#include <VBox/VBoxGuestLib.h>
     22#include <VBox/HostServices/VBoxCrOpenGLSvc.h>
     23#include "../../common/VBoxGuestLib/VBGLR3Internal.h" /* HACK ALERT! Using vbglR3DoIOCtl directly!! */
    2124
    2225#include <stdlib.h>
     26
     27#define CR_VBOX_CAP_HOST_CAPS_NOT_SUFFICIENT 0x00000020
    2328
    2429static int run(struct VBCLSERVICE **ppInterface, bool fDaemonised)
     
    2631    int rc;
    2732    HGCMCLIENTID cClientID;
     33    CRVBOXHGCMGETCAPS caps;
    2834    LogFlowFunc(("\n"));
    2935
     
    3642    rc = VbglR3HGCMConnect("VBoxSharedCrOpenGL", &cClientID);
    3743    if (RT_FAILURE(rc))
     44        exit(1);
     45    caps.hdr.result      = VERR_WRONG_ORDER;
     46    caps.hdr.u32ClientID = cClientID;
     47    caps.hdr.u32Function = SHCRGL_GUEST_FN_GET_CAPS_LEGACY;
     48    caps.hdr.cParms      = SHCRGL_CPARMS_GET_CAPS_LEGACY;
     49
     50    caps.Caps.type       = VMMDevHGCMParmType_32bit;
     51    caps.Caps.u.value32  = 0;
     52
     53    rc = vbglR3DoIOCtl(VBOXGUEST_IOCTL_HGCM_CALL(sizeof(caps)), &caps, sizeof(caps));
     54    if (RT_FAILURE(rc))
     55        exit(1);
     56    if (caps.Caps.u.value32 & CR_VBOX_CAP_HOST_CAPS_NOT_SUFFICIENT)
    3857        exit(1);
    3958    VbglR3HGCMDisconnect(cClientID);
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