Announcement

Collapse
No announcement yet.

VMware's Virtual GPU Driver Is Running Fast

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VMware's Virtual GPU Driver Is Running Fast

    Phoronix: VMware's Virtual GPU Driver Is Running Fast

    For the past few years VMware has been improving the graphics acceleration support that is available via their virtualization platform. VMware -- through their 2008 acquisition of Tungsten Graphics -- has effectively re-written their graphics driver for their virtual "SVGA II" GPU to take advantage of the Gallium3D driver architecture, a new acceleration architecture, and many other improvements. This work has finally come together and is now working rather nicely.

    http://www.phoronix.com/vr.php?view=17048

  • #2
    VMware's Virtual GPU Driver Is Running SLOW

    VMware's Virtual GPU Driver Is Running SLOW. It might be faster than VirtualBox but still super slow. Given that it is only a proxy it should have been around 70-90% the performance of the real driver. I understand the enthusiasm with Gallium3D but the fact is that that arhitecture still has to deliver what it promished long ago.

    Comment


    • #3
      Maybe you should also benchmark with a windows host. (and additionally, with a radeon host maybe)

      Also, without compositing!

      Comment


      • #4
        Can someone go over how everything fits together?

        Does this work when you using a Linux VM inside any host operating system, or is there any other requirements (like a linux host?)

        Comment


        • #5
          Originally posted by smitty3268 View Post
          Does this work when you using a Linux VM inside any host operating system, or is there any other requirements (like a linux host?)
          I have used vmware player on a windows 7 host (HD 6550M) to boot an archlinux vm with the vmwgfx driver and it was very good. I didn't do any benchmarks, but xonotic and unigine sanctuary gave quite good fps. But the mouse in first person shooters that "warp" the mouse didn't work correctly yet (that should work better with vmware workstation). Also, kwin OpenGL compositing worked great.
          From the article it seems that a linux host is doing well too. Maybe the next benchmarks will bring clarity on how well in comparison to a windows host (i.e. the graphics drivers on the windows host).

          Comment


          • #6
            Proxy ...

            Originally posted by zoomblab View Post
            VMware's Virtual GPU Driver Is Running SLOW. It might be faster than VirtualBox but still super slow. Given that it is only a proxy it should have been around 70-90% the performance of the real driver.
            This is of course true to some extent (running accelerated indirect GL rendering on Nvidia's binary driver shows this). One should however consider the type of communication between host and guest and the drawbacks you get for nearly native performance.

            You can directly forward the device ioports and memory to the guest (so called passtrough). That should give you near native performance, but what happens when you move a VM to another host with another graphics card? when you try to restart a suspended VM after, say 10 years, and when you try to run multiple VMs simultaneously?

            You can also forward a GL command subset directly to the host, with something resembling an extended GLX protocol. Should also be pretty fast, but what happens when you try to run Direct3D drivers in the guest? Or run the guest on a host not supporting OpenGL but D3D? Or instantly migrate the VM to another physical host? If this is going to be supported, you will naturally see a performance penalty.

            Comment


            • #7
              My Experience

              Hi there,

              Win 7/64 running on an AMD 5750 with Cat 12.02.

              Installed Ubuntu 12.04 in as a VMWare Workstation 8.01 guest.

              3D and 2D acceleration worked from the get-go. I had to install the VMWare tools in order to obtain auto-screen resizing.
              Performance under compiz is acceptable. Actions, such as dragging windows, appears to have a bit of latency, aside from that, the graphics performance is acceptable for productivity related tasks. In a comment above, someone mentioned mouse issues in 3D games. My feeling is that this may be the same symptom as the window-drag latency I am seeing.

              Is it good enough for games? Not really. Some of the OGL HumbleB games seemed to run well.
              Is it good enough for GL based CAD? Probably not.
              Do 3D demo programs run (glxgears)? Yes
              Can I play Eve Online under Wine on a VM? It opens, and runs, but not really due to performance issues (I'm ranked top 20)
              Do HD movies play? Yes, using XV. XV-Overlay flashes black occasionally, XV-Textured locks up on heavy seeking.
              In five days of usage, I have not experienced a graphics related crash.
              Overall performance is in-line with the article's benchmark results. Between 1/4th and 1/5th the speed of the host.

              My personal conclusion: I was thrilled that everything worked by default. I was thrilled that I could watch movies fullscreen. I was thrilled that I could run OGL cairo-dock without issue. I am optimistic that performance will improve in time. I am saddened that the workstation product is not OSS. I am saddened that OSS VMs do not yet (or can not?) take advantage of the footwork that VMWare Inc has undertaken. It's a good first step, I hope it improves in the near future.

              F
              Last edited by russofris; 02-10-2012, 04:17 PM.

              Comment


              • #8
                Originally posted by russofris View Post
                Actions, such as dragging windows, appears to have a bit of latency, aside from that, the graphics performance is acceptable for productivity related tasks. In a comment above, someone mentioned mouse issues in 3D games. My feeling is that this may be the same symptom as the window-drag latency I am seeing.
                Nope. Try starting a game in, say, openarena. The mouse should jump around completely useless.

                Originally posted by russofris View Post
                Is it good enough for games? Not really. Some of the OGL HumbleB games seemed to run well.
                Well, from the limited experience I have seen from openarena, xonotic (on high and ultra!!) and even ungine sanctuary (radeon driver cannot even run the shaders yet) I say it is at least very near. Why not try some actual games and give reasons why they don't run well enaugh?

                Originally posted by russofris View Post
                Is it good enough for GL based CAD? Probably not.
                Why?

                Originally posted by russofris View Post
                Can I play Eve Online under Wine on a VM? It opens, and runs, but not really due to performance issues (I'm ranked top 20)
                That might be due to the doubled indirection.
                I have tried warcraft 3 in wine and it was more "jerky" than the native games, but kind of playable. But who expects 32 bit windows game -> wine -> 32 bit mesa -> 64 bit linux -> vmwgfx -> windows to be fast? :P

                Originally posted by russofris View Post
                I am saddened that the workstation product is not OSS. I am saddened that OSS VMs do not yet (or can not?) take advantage of the footwork that VMWare Inc has undertaken. It's a good first step, I hope it improves in the near future.
                Yes!
                I personally hope that kvm/qemu picks it up and adds the 3d functionality to their existing vmware virtual driver.

                Comment


                • #9
                  Originally posted by ChrisXY View Post
                  Why not try some actual games and give reasons why they don't run well enaugh?
                  Sorry to hear that your mouse issues are worse than mine. I didn't try additional games simply because I do not own/play more (with the exception of skyrim which I received as a gift)
                  That might be due to the doubled indirection.
                  I have tried warcraft 3 in wine and it was more "jerky" than the native games, but kind of playable. But who expects 32 bit windows game -> wine -> 32 bit mesa -> 64 bit linux -> vmwgfx -> windows to be fast? :P
                  Indeed. At 1024x768 (windowed), it almost appeared playable. I am content with the knowledge that I could make it work in a pinch (to change skills and update market orders), but do not want to give anyone the impression that they can conduct their avatars as-usual inside a VM. Eve is one of those games where, in order to maintain a top 100 PvP slot, you set all graphics options to low, disable sound, and revert to a wired kybd/mouse to trim off a trivial amount of latency. Some of the Top-1K adversaries you encounter are good enough that those miniscule tweaks make a measurable difference in the results of combat.

                  Side note, Ubuntu 12.04 firefox does not appear to have a spell checker by default.

                  Comment


                  • #10
                    Mouse problems and window movement lag

                    Originally posted by ChrisXY View Post
                    Nope. Try starting a game in, say, openarena. The mouse should jump around completely useless.
                    ChrisXY, you should be able to work around this by setting
                    mouse.vusb.enable = "TRUE"
                    in the .vmx file of your VM,
                    and make sure the game isn't picking up the vmware USB mouse as a joystick.

                    There should *not* be any differences in player vs workstation w respect to this AFAICT.

                    For windows gaming, player / workstation is smarter and tries to detect when to switch to gaming mouse mode, linux guest support for that will hopefully be improved in the future.

                    Window movement lagging behind the cursor is improved in workstation 8.0.2 / player 4.0.2 compared to 8.0.1 / 4.0.1. Also when running workstation on linux / X11 hosts, cursor position updates themselves can be a bit jerky when running a heavy 3D workload. This problem is mostly non-existing on windows / mac hosts and will be addressed in future workstation / player releases.

                    Comment


                    • #11
                      Run games with XP under Ubuntu

                      I hope this is not off topic.

                      Is it advisable to run Windows XP as a VMware guest under Ubuntu 12.04 as a host, once it is available? Will most 3D games work in a satisfactory manner?

                      I have a license for XP and I use it to play some games via dual boot which don't work under Wine. e.g. due to GameGuard or other crap.

                      But XP will soon get out of maintenance and I don't want to buy another Windows license.

                      System runs with a contemporary Nvidia card and the Nvidia binary currently on Ubuntu 11.10.

                      Comment


                      • #12
                        For anyone with VMware Workstation 8, note that the graphics acceleration does not work for shared VMs. I had to unshare my ubuntu 12.04 vm in order to see the graphics acceleration in action.

                        Comment


                        • #13
                          I have openSUSE 12.1 as host and openSUSE 12.1 as guest on a Dell XPS 14z laptop - Intel i5-2430M, Intel HD 3000 and Nvidia GT520M (via Nvidia Optimus). And i'm trying to get this working.

                          Just the like the tutorial said I have VMware workstation 8.0.3 build-703057, and upgraded my host system to kernel 3.3.4-22-desktop, have Mesa 8.0.3 and the other dependencies (although I'm not sure which packages I need to install and not to install in openSUSE 12.1 - the amout of packages with intel in the name is confusing!).

                          My problem is two fold:

                          1) Although my host system says I have 3D acceleration glxgears makes the CPU usage jump to 80% - its not supposed to do that? I'm not convinced my system is using 3D acceleration as playing video causes tearing, and uses more CPU than it should.

                          2) When I install the xf-86-video-intel driver in my openSUSE 12.1 guest, it just stops with a blank screen.

                          If you could at least get problem 1 fixed, then that would go along way, trying different combinations of drivers and config is fine in a VM - but I can't mess about with my host system.

                          Part of me just wants to put Ubuntu on it and be done with it! But then I wouldn't learn anything!

                          Help from you experts here would be most welcome!

                          Comment


                          • #14
                            Originally posted by rash.m2k View Post
                            Although my host system says I have 3D acceleration glxgears makes the CPU usage jump to 80% - its not supposed to do that? I'm not convinced my system is using 3D acceleration as playing video causes tearing, and uses more CPU than it should.
                            Running glxgears will pin the CPU on most systems -- the graphics workload is too simple to keep the GPU busy so most of the time is spent in the graphics stack. Try running a shader intensive game instead, something that will make the GPU work hard.

                            Comment


                            • #15
                              Originally posted by bridgman View Post
                              Running glxgears will pin the CPU on most systems -- the graphics workload is too simple to keep the GPU busy so most of the time is spent in the graphics stack. Try running a shader intensive game instead, something that will make the GPU work hard.
                              How about glxspheres?

                              Code:
                              rm@internal:~> glxspheres
                              Polygons in scene: 62464
                              Visual ID of window: 0x93
                              Context is Direct
                              OpenGL Renderer: Mesa DRI Intel(R) Sandybridge Mobile 
                              3.214284 frames/sec - 2.789998 Mpixels/sec
                              2.309206 frames/sec - 1.641661 Mpixels/sec
                              3.551191 frames/sec - 1.687881 Mpixels/sec
                              3.532096 frames/sec - 1.678805 Mpixels/sec
                              3.539815 frames/sec - 1.682474 Mpixels/sec
                              3.542859 frames/sec - 1.683921 Mpixels/sec

                              Code:
                              rm@internal:~> optirun glxspheres
                              Polygons in scene: 62464
                              Visual ID of window: 0x21
                              Context is Direct
                              OpenGL Renderer: GeForce GT 520M/PCIe/SSE2
                              68.489363 frames/sec - 59.448767 Mpixels/sec
                              70.040586 frames/sec - 60.795229 Mpixels/sec
                              65.860829 frames/sec - 57.167200 Mpixels/sec
                              70.228166 frames/sec - 60.958048 Mpixels/sec
                              71.775807 frames/sec - 62.301400 Mpixels/sec
                              72.789950 frames/sec - 63.181677 Mpixels/sec
                              70.925934 frames/sec - 61.563711 Mpixels/sec
                              70.724441 frames/sec - 61.388815 Mpixels/sec
                              ^C[WARN]Received Interrupt signal.
                              Here's my glxinfo (i've removed the extension sections as they were just too much extra info - can post if you want):

                              Code:
                              rm@internal:~> glxinfo
                              name of display: :0
                              display: :0  screen: 0
                              direct rendering: Yes
                              server glx vendor string: SGI
                              server glx version string: 1.4
                              server glx extensions:
                              
                              ...
                              
                              client glx vendor string: Mesa Project and SGI
                              client glx version string: 1.4
                              client glx extensions:
                              
                              ...
                              
                              GLX extensions:                                                                                 
                              
                              ...
                              
                              OpenGL vendor string: Tungsten Graphics, Inc
                              OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile 
                              OpenGL version string: 3.0 Mesa 8.0.2
                              
                              ...
                              
                              glu version: 1.3
                              glu extensions:
                                  GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
                              ...
                              I can clearly see a difference when running glxspeheres with/without optimus (optimus being MUCH faster and smoother), but CPU usage still rockets to 80% percent for both (i.e. on both Intel HD and Nvidia gfx). Also I noticed tha Xorg cpu usage also goes up to 50% along with glxspheres when running with optimus.

                              Shouldn't this be offloaded onto the graphics card only?

                              Here is what I have installed on my system:

                              Code:
                              internal:/home/rm # rpm -qa | grep xf86
                              xf86-input-joystick-1.6.1-3.1.x86_64
                              xf86-video-nv-2.1.18-4.1.x86_64
                              xf86-video-mga-1.5.0-3.1.x86_64
                              xf86-video-vmware-12.0.2-3.1.x86_64
                              xf86-video-glint-1.2.7-3.1.x86_64
                              xf86-video-trident-1.3.5-3.1.x86_64
                              xf86-video-cirrus-1.4.0-3.1.x86_64
                              xf86-input-vmmouse-12.8.0-3.1.x86_64
                              xf86-video-geode-2.11.13-3.1.i586
                              xf86-video-sis-0.10.4-6.1.x86_64
                              xf86-video-mach64-6.9.1-3.1.x86_64
                              xf86-video-ast-0.95.0-3.1.x86_64
                              xf86-video-vesa-2.3.1-3.1.x86_64
                              xf86-video-r128-6.8.2-3.1.x86_64
                              xf86-video-fbdev-0.4.2-4.1.x86_64
                              xf86-input-synaptics-1.6.1-8.1.x86_64
                              libxcb-xf86dri0-1.8.1-6.1.x86_64
                              xf86-input-wacom-0.15.0-5.1.x86_64
                              xf86-video-tga-1.2.1-4.1.x86_64
                              xf86-video-neomagic-1.2.6-3.1.x86_64
                              xf86-video-chips-1.2.4-4.1.x86_64
                              xf86-input-mouse-1.7.2-3.1.x86_64
                              xf86-video-voodoo-1.2.4-4.1.x86_64
                              xf86-video-siliconmotion-1.7.6-3.1.x86_64
                              xf86-video-i128-1.3.5-3.1.x86_64
                              xf86-video-ark-0.7.4-3.1.x86_64
                              xf86-video-v4l-0.2.0-4.1.x86_64
                              xf86-video-dummy-0.3.5-3.1.x86_64
                              xf86-input-void-1.4.0-4.1.x86_64
                              xf86-video-tdfx-1.4.4-3.1.x86_64
                              xf86-video-ati-6.14.4-3.1.x86_64
                              xf86-video-intel-2.19.0-7.1.x86_64
                              xf86-input-keyboard-1.6.1-4.1.x86_64
                              xf86-video-savage-2.3.4-3.1.x86_64
                              xf86-input-evdev-2.7.0-3.1.x86_64
                              xf86-video-newport-0.2.3-4.1.x86_64
                              Code:
                              internal:/home/rm # rpm -qa | grep intel
                              libdrm_intel1-2.4.33-70.1.x86_64
                              vaapi-intel-driver-1.0.17-2.1.x86_64
                              xf86-video-intel-2.19.0-7.1.x86_64
                              intel-gpu-tools-1.2-1.1.x86_64
                              Code:
                              internal:/home/rm # rpm -qa | grep -i mesa
                              Mesa-libGLESv1_CM-devel-8.0.2-132.1.x86_64
                              Mesa-libGL1-8.0.2-132.1.x86_64
                              Mesa-libtxc_dxtn1-32bit-1.0.1.git20110528.1938-5.1.x86_64
                              Mesa-32bit-7.11-11.1.2.x86_64
                              Mesa-libEGL1-8.0.2-132.1.x86_64
                              Mesa-libGL-devel-8.0.2-132.1.x86_64
                              DirectFB-Mesa-1.4.5-20.1.2.x86_64
                              Mesa-libGLESv2-devel-8.0.2-132.1.x86_64
                              libOSMesa8-8.0.2-132.1.x86_64
                              Mesa-libGLESv1_CM1-8.0.2-132.1.x86_64
                              Mesa-libIndirectGL1-8.0.2-132.1.x86_64
                              Mesa-8.0.2-132.1.x86_64
                              Mesa-libEGL-devel-8.0.2-132.1.x86_64
                              Mesa-libtxc_dxtn1-1.0.1.git20110528.1938-5.1.x86_64
                              Mesa-libGLU1-8.0.2-132.1.x86_64
                              Mesa-libglapi0-8.0.2-132.1.x86_64
                              Mesa-libGLU-devel-8.0.2-132.1.x86_64
                              Mesa-libGLESv2-2-8.0.2-132.1.x86_64
                              Mesa-devel-8.0.2-132.1.x86_64
                              Note - I really appreciate any help you can give me, I've posted on quite a few forums but no-one seems to know the answer to this conundrum, the intel drivers website say you just need to install these packages and it should all just work.
                              Last edited by rash.m2k; 05-27-2012, 12:57 PM.

                              Comment

                              Working...
                              X