<?xml version="1.0" encoding="UTF-8"?>
<project>
  <created-at type="datetime">2008-09-19T12:43:59-04:00</created-at>
  <demo>&lt;iframe src="http://www.youtube.com/v/AILF3vDu6Bc&amp;hl=en&amp;fs=1" style="width: 400px; height: 300px;"&gt;
&lt;/iframe&gt;</demo>
  <description>OpenGL apps running inside a Virtual Machine (VM) can use VMGL to take advantage of graphics hardware acceleration. VMGL can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions) and Xen paravirtual domains, using XVnc or the virtual framebuffer. Although we haven't tested it, VMGL should work for qemu, KVM, and VirtualBox. VMGL is available for X11-based guest OS's: Linux, FreeBSD and OpenSolaris. Finally, VMGL is GPU-independent: we support ATI, Nvidia and Intel GPUs.</description>
  <documentation>        &lt;table border="0" width="100%"&gt;
&lt;hr color="#C0C0C0" size="1"&gt;&lt;b&gt;
        &lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;What is this:&lt;/font&gt;&lt;/h2&gt;
        &lt;font face="Arial" size="2"&gt;
        &lt;dl&gt;
          &lt;dt&gt;OpenGL apps running inside a Virtual Machine (VM) can use VMGL to take advantage of graphics hardware acceleration.
            VMGL can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions)
            and Xen paravirtual domains, using XVnc or the virtual framebuffer.
            Although we haven't tested it, VMGL should work for qemu, KVM, and
            VIrtualBox.
            VMGL is available for X11-based guest OS's: Linux, FreeBSD and
            OpenSolaris. VMGL is GPU-independent: we support ATI,
            Nvidia and Intel GPUs.&lt;/dt&gt;
        &lt;/dl&gt;
&lt;hr color="#C0C0C0" size="1"&gt;
&lt;img border="0" src="http://www.cs.toronto.edu/~andreslc/vmgl/unreal.png" width="480" height="360"&gt;

        &lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;How to build:&lt;/font&gt;&lt;/h2&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;If you cloned the repository or
        downloaded the tarball:&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Copy the source into your guest (VM
            or domain) and host (dom0, kernel hosting VMware, etc..)&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;

          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Type &amp;quot;make&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;In the guest, type
            &amp;quot;make install-guest&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;In the host, type &amp;quot;make
            install-host&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;RPMs &amp;quot;should just work&amp;quot;.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

              &lt;p&gt;&amp;nbsp;&lt;/td&gt;

&lt;/font&gt;&lt;/b&gt;
&lt;hr color="#C0C0C0" size="1"&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;&lt;a name="software"&gt;&lt;/a&gt;
&lt;/font&gt;&lt;/b&gt;
&lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;How to Use:&lt;/font&gt;&lt;/h2&gt;

&lt;dl&gt;
  &lt;font face="Arial" size="2"&gt;&lt;b&gt;There are two broad types of guests&lt;/b&gt;&lt;/font&gt;
&lt;/dl&gt;

        &lt;ul&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;Guest without a framebuffer using Xvnc:
            &lt;/font&gt;&lt;/b&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt; restart vncserver after
            installation.&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Guest with a framebuffer using Xorg:
            modify Xorg configuration in the guest to include the vmglext module,
            i.e.&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;dl&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;in
            /etc/X11/xorg.conf:&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;

          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            Section &amp;quot;Module&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            ...&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            Load &amp;quot;vmglext&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;

          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            ...&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;and
            restart Xorg.&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt&gt;&amp;nbsp;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Then, for
            all types of guests,
            connect from the host to the domain using a viewer:&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
        &lt;/dl&gt;
        &lt;ul&gt;

          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;Vncviewer for guest with Xvnc, Xen
            paravirtual guest with vncfb, or Xen HVM guest with vnc qemu-dm
            output.&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;We provide a patch to enable sdlfb
            for Xen paravirtual guests, and qemu-dm with sdl output for Xen HVM
            guests.&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;dl&gt;
          &lt;dt style="line-height: 150%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;After
            authentication the viewer will output:&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 150%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            &amp;quot;Set GLSTUB var in the guest to point to port
            &amp;lt;something&amp;gt;&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;

          &lt;dt style="line-height: 150%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Usually
            &amp;lt;something&amp;gt; is 7001. In the guest
            set the environment variable&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 150%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            GLSTUB = &amp;lt;host_hostname&amp;gt;:&amp;lt;port_viewer_told_you&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 150%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;and
            things should work.&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;

          &lt;dt style="line-height: 150%"&gt;&amp;nbsp;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;You can
            also use VMGL with X forwarding, regardless of the type of guest.
            Start stub-daemon in the host, enable X forwarding from guest to
            host, and set GLSTUB in the guest to &amp;lt;host_hostname&amp;gt;:7000. Try
            your GL apps now.&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 150%"&gt;&amp;nbsp;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;CAUTION:
            In all cases, ports in the range of the 7000's have to remain open
            between guest and host.&lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt style="line-height: 150%"&gt;&amp;nbsp;&lt;/dt&gt;
          &lt;dt style="line-height: 100%"&gt;&lt;font face="Arial" size="2"&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="../software/vmware_helper.tgz"&gt;&lt;u&gt;NEW&lt;/u&gt;&lt;/a&gt;&lt;b&gt;, VMware:
            Is not easy to compose the 3D output on VMware's closed source GUI. Your best bet is to &amp;quot;guess&amp;quot; the XID of
            the GUI window and pass it to stub-daemon with the -v switch. This &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="../software/vmware_helper.tgz"&gt;link&lt;/a&gt;&lt;b&gt;

            will provide you with a tiny library I use to interpose bteween
            VMware's GUI and X and find out the XID's used. I recommend you use
            vnc or X forwarding to bypass this problem altogether.&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;/dt&gt;
        &lt;/dl&gt;
&lt;hr color="#C0C0C0" size="1"&gt;
        &lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;How to get Xen dom0 GPU kernel modules:&lt;/font&gt;&lt;/h2&gt;
        &lt;dl&gt;
          &lt;dt&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;A separate prerequisite for Xen is to
            enable direct rendering on your dom0. You can check this by looking
            into the output of glxinfo. &lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;
          &lt;dt&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;This depends on your graphics card: &lt;/b&gt;&lt;/font&gt;&lt;/dt&gt;

        &lt;/dl&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Intel cards such as i915: Kernel
        modules are already part of the dom0 kernel tree. You should already
        have direct rendering enabled in dom0.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;ATI: In the tarball/repository source
        tree, cd into fglrx and follow the instructions there. Or install &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="../software/fglrx-kmod-xen-8.28.8-1.i386.rpm"&gt; this
        rpm&lt;/a&gt;&lt;b&gt; in dom0. What is provided in this page has only beent tested
        to work for an ATI Radeon X600 (PCI express) and a handful of
        applications. Remember to modprobe fglrx, modify /etc/X11/xorg.conf to
        use the fglrx driver, and restart X.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;NVIDIA: Patch &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://lists.xensource.com/archives/html/xen-devel/2006-03/msg00615.html"&gt;here&lt;/a&gt;&lt;b&gt;.
        Also, &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://rpm.livna.org"&gt;livna&lt;/a&gt;&lt;b&gt;

        provides rpm's for this (kmod-nvidia-xen0). Remember to modprobe nvidia,
        modify /etc/X11/xorg.conf to use the nvidia driver, and restart X.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;hr color="#C0C0C0" size="1"&gt;
        &lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;Capabilites&lt;/font&gt;&lt;/h2&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Roughly speaking, OpenGL up to version
        1.5 is supported (sorry, no 2.0 shading languages,) with the following
        exceptions: &lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;OpenGL 1.2 imaging functions related to histogram, min/max, convolution
            and colortables (like you really needed them...)&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;/li&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;Display lists aren't fully
            conformant: GL_COMPILE_AND_EXECUTE mode may not work reliably, specifically if there
            is a glGet* call between glNewList and glEndList which gets state that
            was set by a previous command compiled/executed inside the display list.&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;

        &lt;/ul&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Roughly speaking (deja vu) GLX version
        1.3 is supported, with the following exceptions:&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;glXCopyContext&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;glXCreateGLXPixmap&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;glXDestroyGLXPixmap&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;glXWaitGL&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;

          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;glXWaitX&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
          &lt;li&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;None of the GLX 1.3
            functions related to Pbuffers or visual configs are implemented.&lt;/font&gt;&lt;/b&gt;&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;For more in-depth info, look into cr/doc/conformance.html
        and cr/glapi_parser/APIspec.txt in the source tree, or /usr/share/doc/xen-gl/cr/conformance.html
        if you've used an rpm.&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;hr color="#C0C0C0" size="1"&gt;
&lt;h2&gt;&lt;font face="Arial" size="3" color="#111111"&gt;Other stuff&lt;/font&gt;&lt;/h2&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;This project has been graciously
        sponsored by &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://www.google.com"&gt;Google&lt;/a&gt;&lt;b&gt;

        through their &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://code.google.com/summerofcode.html"&gt;Summer
        of Code 2006&lt;/a&gt;&lt;b&gt; program, with mentoring by &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://dave.recoil.org/"&gt; Dave Scott&lt;/a&gt;&lt;b&gt; and &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://anil.recoil.org/"&gt; Anil
        Madhavapeddy&lt;/a&gt;&lt;b&gt; from &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://www.xensource.com/"&gt;Xensource&lt;/a&gt;&lt;b&gt;.
        &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://code.google.com/soc/xensource/appinfo.html?csaid=1FD779F0E713E523"&gt;Here&lt;/a&gt;&lt;b&gt;

        is the original project proposal.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;The code is distributed under the &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5"&gt;Modified
        BSD licence&lt;/a&gt;&lt;b&gt; (listed in the &amp;quot;General&amp;quot; section of the
        hyperlink.) Other &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://www.gnu.org/philosophy/free-sw.html"&gt; Free Software&lt;/a&gt;&lt;b&gt; licences apply as specified by the
        authors of code reused in the context of this project.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;References:&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://chromium.sourceforge.net/"&gt;Chromium&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;Jacob Gorm-Hansen's similar &lt;/b&gt;&lt;a style="text-decoration: none; font-weight: 700; font-style: normal" href="http://www.diku.dk/hjemmesider/ansatte/jacobg/gfx/"&gt;project&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;
        &lt;/ul&gt;
&lt;hr color="#C0C0C0" size="1"&gt;&lt;b&gt;&lt;font face="Arial" size="2"&gt;
&lt;/font&gt;&lt;/b&gt;
        &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;i&gt;Last Updated September 20th, 2008&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

      &lt;p&gt;&amp;nbsp;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td width="849"&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;


</documentation>
  <downloads>&lt;dl&gt;
          
          &lt;dt&gt;Subversion &lt;a href="https://vmgl.svn.sourceforge.net/viewvc/vmgl"&gt;repository
            &lt;/a&gt;hosted by sourceforge&lt;/dt&gt;

          &lt;dd&gt;svn co https://vmgl.svn.sourceforge.net/svnroot/vmgl&lt;/dd&gt;
          &lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
          &lt;dt&gt;Tarballs (repository
            snapshot):&amp;nbsp; &lt;/dt&gt;
          &lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            &lt;a href="http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.gz"&gt;vmgl-0.1.tar.gz&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            &lt;/dt&gt;
          &lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

            &lt;a href="http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.bz2"&gt;vmgl-0.1.tar.bz2&lt;/a&gt;&lt;/dt&gt;
          &lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
          &lt;dt&gt;Distribution agnostic
            RPMs:&amp;nbsp; &lt;/font&gt;&lt;/dt&gt;
          &lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            &lt;a href="http://www.cs.toronto.edu/~andreslc/software/vmgl-host-0.1-1.i386.rpm"&gt;vmgl-host-0.1-1.i386.rpm&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/dt&gt;
          &lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
            &lt;a href="http://www.cs.toronto.edu/~andreslc/software/vmgl-guest-0.1-1.i386.rpm"&gt;vmgl-guest-0.1-1.i386.rpm&lt;/a&gt;&lt;/dt&gt;

			&lt;dt&gt;&amp;nbsp;&lt;/dt&gt;

          

        &lt;/dl&gt;</downloads>
  <id type="integer">7</id>
  <title>VMGL: OpenGL Hardware 3D Acceleration for Virtual Machines</title>
  <updated-at type="datetime">2008-10-08T23:37:03-04:00</updated-at>
</project>
