X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Fvmware-guest.html;h=c43873984117401ba5ed72bc7cf71794155e93af;hb=e51bf4914c4412644b4049385286596abead22d8;hp=284c6c261d21d32ae8392728960e6b5355e85103;hpb=005c8e01062e8e88a86904b955d5422742bd32e7;p=mesa.git diff --git a/docs/vmware-guest.html b/docs/vmware-guest.html index 284c6c261d2..c4387398411 100644 --- a/docs/vmware-guest.html +++ b/docs/vmware-guest.html @@ -2,23 +2,23 @@ - VMware guest GL driver + VMware SVGA3D Guest Driver
-

The Mesa 3D Graphics Library

+ The Mesa 3D Graphics Library
-

VMware guest GL driver

+

VMware SVGA3D Guest Driver

This page describes how to build, install and use the -VMware guest GL driver +VMware guest GL driver (aka the SVGA or SVGA3D driver) for Linux using the latest source code. This driver gives a Linux virtual machine access to the host's GPU for hardware-accelerated 3D. @@ -30,6 +30,7 @@ MacOS are all supported. With the August 2015 Workstation 12 / Fusion 8 releases, OpenGL 3.3 is supported in the guest. This requires: +

-

Otherwise, OpenGL 2.1 is supported.

+

+With the Fall 2018 Workstation 15 / Fusion 11 releases, additional +features are supported in the driver: +

+

+This requires version 2.15.0 or later of the vmwgfx kernel module and +the VM must be configured for hardware version 16 or later. +

+

OpenGL 3.3 support can be disabled by setting the environment variable SVGA_VGPU10=0. @@ -62,9 +79,9 @@ these instructions explain what to do. For more information about the X components see these wiki pages at x.org:

@@ -82,8 +99,8 @@ The components involved in this include:

All of these components reside in the guest Linux virtual machine. On the host, all you're doing is running VMware -Workstation or -Fusion. +Workstation or +Fusion.

@@ -95,7 +112,7 @@ On the host, all you're doing is running VMware
  • Ubuntu: For ubuntu you need to install a number of build dependencies.
       sudo apt-get install git-core
    -  sudo apt-get install automake libtool libpthread-stubs0-dev
    +  sudo apt-get install ninja-build meson libpthread-stubs0-dev
       sudo apt-get install xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev
       sudo apt-get install libxcb-glx0-dev libxrender-dev
       sudo apt-get build-dep libgl1-mesa-dri libxcb-glx0-dev
    @@ -104,14 +121,14 @@ On the host, all you're doing is running VMware
       
       sudo yum install mesa-libGL-devel xorg-x11-server-devel xorg-x11-util-macros
       sudo yum install libXrender-devel.i686
    -  sudo yum install automake gcc libtool expat-devel kernel-devel git-core
    +  sudo yum install ninja-build meson gcc expat-devel kernel-devel git-core
       sudo yum install makedepend flex bison
       

    Depending on your Linux distro, other packages may be needed. -The configure scripts should tell you what's missing. +Meson should tell you what's missing.

    @@ -126,7 +143,7 @@ Begin by saving your current directory location:
    • Mesa/Gallium master branch. This code is used to build libGL, and the direct rendering svga driver for libGL, vmwgfx_dri.so, and the X acceleration library libxatracker.so.x.x.x.
      -  git clone git://anongit.freedesktop.org/git/mesa/mesa
      +  git clone https://gitlab.freedesktop.org/mesa/mesa.git
         
    • VMware Linux guest kernel module. Note that this repo contains the complete DRM and TTM code. The vmware-specific driver is really only the files prefixed with vmwgfx.
      @@ -136,7 +153,7 @@ Begin by saving your current directory location:
       Most distros ship with this but it's safest to install a newer version.
       To get the latest code from git:
         
      -  git clone git://anongit.freedesktop.org/git/mesa/drm
      +  git clone https://gitlab.freedesktop.org/mesa/drm.git
         
    • xf86-video-vmware. The chainloading driver, vmware_drv.so, the legacy driver vmwlegacy_drv.so, and the vmwgfx driver vmwgfx_drv.so.
      @@ -148,54 +165,91 @@ To get the latest code from git:
       

      Building the Code

        -
      • Build libdrm: If you're on a 32-bit system, you should skip the --libdir configure option. Note also the comment about toolchain libdrm above. +
      • +

        +Determine where the GL-related libraries reside on your system and set +the LIBDIR environment variable accordingly. +

        +For 32-bit Ubuntu systems: +
        +  export LIBDIR=/usr/lib/i386-linux-gnu
        +
        +For 64-bit Ubuntu systems: +
        +  export LIBDIR=/usr/lib/x86_64-linux-gnu
        +
        +For 32-bit Fedora systems: +
        +  export LIBDIR=/usr/lib
        +
        +For 64-bit Fedora systems: +
        +  export LIBDIR=/usr/lib64
        +
        + +
      • + +
      • Build libdrm:
           cd $TOP/drm
        -  ./autogen.sh --prefix=/usr --libdir=/usr/lib64
        -  make
        -  sudo make install
        +  meson builddir --prefix=/usr --libdir=${LIBDIR}
        +  ninja -C builddir
        +  sudo ninja -C builddir install
           
        -
      • Build Mesa and the vmwgfx_dri.so driver, the vmwgfx_drv.so xorg driver, the X acceleration library libxatracker. +
      • +

        Build Mesa and the vmwgfx_dri.so driver, the vmwgfx_drv.so xorg driver, the X acceleration library libxatracker. The vmwgfx_dri.so is used by the OpenGL libraries during direct rendering, and by the Xorg server during accelerated indirect GL rendering. The libxatracker library is used exclusively by the X server to do render, copy and video acceleration: -
        +

        + The following configure options doesn't build the EGL system. -
        -As before, if you're on a 32-bit system, you should skip the --libdir -configure option.
           cd $TOP/mesa
        -  ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa --disable-dri3
        -  make
        -  sudo make install
        +  meson builddir --prefix=/usr --libdir=${LIBDIR} -Dgallium-drivers=svga -Ddri-drivers=swrast -Dgallium-xa=true -Ddri3=false
        +  ninja -C builddir
        +  sudo ninja -C builddir install
           
        +

        Note that you may have to install other packages that Mesa depends upon if they're not installed in your system. You should be told what's missing. -
        -
        +

        -
      • xf86-video-vmware: Now, once libxatracker is installed, we proceed with building and replacing the current Xorg driver. First check if your system is 32- or 64-bit. If you're building for a 32-bit system, you will not be needing the --libdir=/usr/lib64 option to autogen. +
      • xf86-video-vmware: Now, once libxatracker is installed, we proceed with +building and replacing the current Xorg driver. +First check if your system is 32- or 64-bit.
           cd $TOP/xf86-video-vmware
        -  ./autogen.sh --prefix=/usr --libdir=/usr/lib64
        +  ./autogen.sh --prefix=/usr --libdir=${LIBDIR}
           make
           sudo make install
           
        +
      • vmwgfx kernel module. First make sure that any old version of this kernel module is removed from the system by issuing -
        +
           sudo rm /lib/modules/`uname -r`/kernel/drivers/gpu/drm/vmwgfx.ko*
        -  
        -Then -
        +
        +Build and install: +
           cd $TOP/vmwgfx
           make
           sudo make install
        -  sudo cp 00-vmwgfx.rules /etc/udev/rules.d
        -  sudo depmod -ae
        -  
        + sudo depmod -a +
        +If you're using a Ubuntu OS: +
        +  sudo update-initramfs -u
        +
        +If you're using a Fedora OS: +
        +  sudo dracut --force
        +
        +Add 'vmwgfx' to the /etc/modules file: +
        +  echo vmwgfx | sudo tee -a /etc/modules
        +
        Note: some distros put DRM kernel drivers in different directories. For example, sometimes vmwgfx.ko might be found in @@ -260,7 +314,7 @@ If OpenGL 3.3 is not working (you only get OpenGL 2.1):
      • Make sure the vmwgfx kernel module is version 2.9.0 or later.
      • Check the vmware.log file for errors.
      • Run 'dmesg | grep vmwgfx' and look for "DX: yes". - +