I have a Windows pc that I use to connect to my Ubuntu PC over ssh that I use as a server (18.04) that is connected only to the internet and power (No monitor). When I run glxgears -info I only get 8-10 fps while having a graphics card. When I run it as xvfb-run glxgears -info I get 2000~ fps (Which I assume because it uses my GPU to render). But I can't get xvfb-run to display in my Xming X server. Running glxgears -info displays in Xming but as I said, low performance, etc. How Can I make xvfb to display in Xming on my Windows machine? Or is there an easier/better way to do this? Thanks!

1 Answer 1


If you run an Xserver to display remote Xclients (e.g. glxgears), you are stuck with the X display protocol which has poor performance, especially over slow links.

You get better performance with Xvnc, but it will normally use a virtual framebuffer and not benefit from the GPU on your Ubuntu machine. Enter virtualgl, this is what you need for your objective. It is not trivial to set up, but there are good references out there, this one specifically for Ubuntu.



  • Thanks! I'll try and will let you know if it works
    – user396583
    Feb 22, 2020 at 13:40
  • So, the cause of poor performance isn't becouse it uses onboard graphics, but x server?
    – user396583
    Feb 22, 2020 at 13:55
  • @fedqx I'm no expert on Xvfb, but I think your issue between Xvfb and remote X is not 3D Acceleration related, but just 2D performance. You can improve that by just replacing X by Xvnc (use tightvnc encoding). If you additionally want your GPU to handle 3D acceleration (OpenGL), then you can get extra benefit from virtualgl
    – ppenguin
    Feb 22, 2020 at 14:04
  • I followed the instructions, but somehow broke the system (PuTTY X11 proxy: Unsupported authorization protocol ) so I had to uninstall it. but thank you for helping.
    – user396583
    Feb 22, 2020 at 15:31
  • 1
    @fedqx: The PuTTY error is unrelated or due to wrong configuration. If you are using Xvnc, you should be using normal tunneling (e.g. ssh -L 5901:localhost:5901 user@remotehost and connect your vnc client using localhost:5901), or if you're on a trusted LAN you could do without tunneling...
    – ppenguin
    Feb 22, 2020 at 16:15

You must log in to answer this question.