Live data from Hacker News

X410 – X Server for Windows 10

x410.dev

241–250 of 254 posts

Re: X410 – X Server for Windows 10

#241

For a somewhat alternative if you want to run both Linux and Windows, you can run Linux natively and then run Windows in a VM with GPU passthrough. Then you can use Looking Glass which sends the Windows pixels to a Linux window with native performance. For the Linux machine, you can run it as a host or use something like Proxmox as a hypervisor if you need more VMs or containers. I use this setup to run Windows, macO…

I'm glad someone brought this up. I'm about to build a new rig and was hoping to make it compatible with Looking Glass (I can buy any hardware I need since it's a fresh build), but I can't make sense of the hardware requirements. I was planning on an AMD GPU, since nvidia famously has bad Linux support and I don't want the driver headaches. BUT – all the hardware lists I come across warn you not to buy AMD GPUs becau…

Prop nVidia has fantastic Linux support. I have been running GTX 1060 for about 3 years driving 5 4K screens on Debian 8, 9, and now 10, including video playback with no tearing. Rarely when a card experiences a crash after being fed a corrupt h264 chuck, it freezes for 10-20 seconds but it recovers by itself.

The open source driver... the open source driver crashes at least one a week driving two monitors. I gave up on it.

Re: X410 – X Server for Windows 10

#242

Earlier quoted context omitted.

For the stuff I'm doing (image processing), indirect GL is not an option.

What about VirtualGL? https://www.virtualgl.org/ As I understand it, when you open an OpenGL application inside Xvnc (et al) on :1, a shim is LD_PRELOADed that quietly redirects the OpenGL initialization calls so they create an offscreen buffer associated with Xorg at :0 (which is presumably sitting on a 3D-capable GPU). Said Xorg can be displaying a black screen (or be being used for arbitrary purposes); no windows…

I am using it with qemu to allow Linux guests to use hosts's gpu to do 3d acceleration. It works fairly well except that it seems there is a memory leak in the path somewhere because over time qemu VMs with it enabled grow over the memory allocated to them.

Re: X410 – X Server for Windows 10

#243

Earlier quoted context omitted.

GVT-g works on my mobile Intel GPU.

Do you, or anyone, happen to know, if WSL2 (=HyperV), or any other Hypervisor on Windows supports GVT-g (well), so that (wsl2) linux applications running on-guest can benefit from hardware assisted rendering?

[deleted]

Re: X410 – X Server for Windows 10

#244

Earlier quoted context omitted.

What about VirtualGL? https://www.virtualgl.org/ As I understand it, when you open an OpenGL application inside Xvnc (et al) on :1, a shim is LD_PRELOADed that quietly redirects the OpenGL initialization calls so they create an offscreen buffer associated with Xorg at :0 (which is presumably sitting on a 3D-capable GPU). Said Xorg can be displaying a black screen (or be being used for arbitrary purposes); no windows…

I am using it with qemu to allow Linux guests to use hosts's gpu to do 3d acceleration. It works fairly well except that it seems there is a memory leak in the path somewhere because over time qemu VMs with it enabled grow over the memory allocated to them.

Wait, how does that... ohh, you're forwarding GLX. Ha, that's awesome, I am definitely borrowing that idea :)

The graphics contexts should be well-contained on the host though. That the guest is leaking memory is kind of interesting.

Re: X410 – X Server for Windows 10

#245

Earlier quoted context omitted.

I am using it with qemu to allow Linux guests to use hosts's gpu to do 3d acceleration. It works fairly well except that it seems there is a memory leak in the path somewhere because over time qemu VMs with it enabled grow over the memory allocated to them.

Wait, how does that... ohh, you're forwarding GLX. Ha, that's awesome, I am definitely borrowing that idea :) The graphics contexts should be well-contained on the host though. That the guest is leaking memory is kind of interesting.

This is qemu 4.2.0 configure command line that built what i needed to support this ( Debain 10's qemu did not have virgl support ). Spice did not work me, SDL did.

  PKG_CONFIG_PATH=/opt/virgl-0.8.1/lib/pkgconfig/ ./configure --prefix=/opt/qemu-4.2.0 --enable-spice --enable-kvm --enable-linux-aio --target-list=x86_64-softmmu --enable-sdl --enable-gtk --enable-opengl --enable-virglrenderer --extra-ldflags=-L/opt/libepoxy-1.5.4/lib/
And this is the command line to launch a guest:

  export QEMU_PA_LATENCY_OUT=20
  export QEMU_PA_SAMPLES=44100

  ${QEMU_BIN} -name "${NAME}" -m size=${RAM_SIZE} -machine accel=kvm -drive format=raw,aio=native,cache=none,if=virtio,file=${VMDIR}/${VM} -netdev tap,id=mynet0,ifname=${VMTAP},script=no,downscript=no -device e1000,netdev=mynet0,mac=${VMMAC} -vga virtio -display sdl,gl=on -soundhw hda -audiodev pa,id=pa1
Oh and when I say it is working "fairly well" I mean the a guest with a single vCPU runs a spinning cube with no sweat, not to mention glxgears etc. Just for a test I have done 4 guests ( one per physical core ) doing gears and spinning cube each in addition to the host itself doing spinning cube with no issue.

If only I could figure out how to fix this memory leak.

Re: X410 – X Server for Windows 10

#246

Earlier quoted context omitted.

For the stuff I'm doing (image processing), indirect GL is not an option.

In those cases I prefer using Xpra, configured to use the regular Xorg server operating on the GPU. It would be nice if there was a X11 "media" extension to transport encoded image streams (aka video) with server side decoding into Pixmaps, Xv or SHM buffers.

Really stupid question if I may:

4k @32 bit color is ~3.5Gbit/sec at 60 fps or 1.6Gbit/sec for 30fps.

Modern video cards and CPUs are fast. With no optimizations I can screen grab a fully rendered X11 4k x 5 screen in ~100ms on i7-4790 CPU from a GTX 1060 ( did it yesterday when I discovered that Looking Glass does not support Linux guest). Some people that I know who are in the graphics business claim that using MIT shared memory extension they can do nearly 1000 fps for a single 4k screen.

Iperf (TCP) with no network optimization and no shared memory a-la Looking Glass between host and guest gets 2.5Gbit/sec.

Why not just do a PCI pass through to a virtualized ( or dedicated ) graphics card to guest, run an X server on it and stream raw frames from guest to host? It surely can do at least 30fps on a modern workstation or over a 10G network with no frame loss.

Re: X410 – X Server for Windows 10

#247

Earlier quoted context omitted.

> We now resort to using VNC solutions. Isn's this just ... > graphics are now drawn as bitmap at server side and sent in whole to the client. ?

Yes, but with multiple compression technology available. I use RealVNC where there is only one knob for controlling image quality, but in TightVNC for example there's a choice of using zlib, RRE, hextile and its very own Tight encoding[1]. The problem with Qt over X is that it tries to send every frame on every redraw event. With VNC this is automatically limited by the frame rate. [1] https://www.tightvnc.com/vncvie…

If you are to run a spinning cube test you will see that VNC cannot handle motion graphics well.

Re: X410 – X Server for Windows 10

#248

Earlier quoted context omitted.

In those cases I prefer using Xpra, configured to use the regular Xorg server operating on the GPU. It would be nice if there was a X11 "media" extension to transport encoded image streams (aka video) with server side decoding into Pixmaps, Xv or SHM buffers.

Really stupid question if I may: 4k @32 bit color is ~3.5Gbit/sec at 60 fps or 1.6Gbit/sec for 30fps. Modern video cards and CPUs are fast. With no optimizations I can screen grab a fully rendered X11 4k x 5 screen in ~100ms on i7-4790 CPU from a GTX 1060 ( did it yesterday when I discovered that Looking Glass does not support Linux guest). Some people that I know who are in the graphics business claim that using MIT…

> Why not just do a PCI pass through (…)?

Because we're talking about remote desktop over low bandwidth connections. If push comes to shove you can use Xpra over dial-up.

Of course the more elegant solution then is to use some virtio based graphics pass-through driver doing all that, without running MIT-SHM screen grabber X11 clients shoving around frames. I want less kludges, not more.

Re: X410 – X Server for Windows 10

#249

Earlier quoted context omitted.

Really stupid question if I may: 4k @32 bit color is ~3.5Gbit/sec at 60 fps or 1.6Gbit/sec for 30fps. Modern video cards and CPUs are fast. With no optimizations I can screen grab a fully rendered X11 4k x 5 screen in ~100ms on i7-4790 CPU from a GTX 1060 ( did it yesterday when I discovered that Looking Glass does not support Linux guest). Some people that I know who are in the graphics business claim that using MIT…

> Why not just do a PCI pass through (…)? Because we're talking about remote desktop over low bandwidth connections. If push comes to shove you can use Xpra over dial-up. Of course the more elegant solution then is to use some virtio based graphics pass-through driver doing all that, without running MIT-SHM screen grabber X11 clients shoving around frames. I want less kludges, not more.

> Because we're talking about remote desktop over low bandwidth connections.

I'm presuming this implies there's already a non-theoretical solution for remote desktop over high bandwidth connections ( say over 10Gbit/sec ) that would allow me to run a spinning cube at 30 frames per second at 4k without frame drops? What is it? I have been looking for one for years!

> Of course the more elegant solution then is to use some virtio based graphics pass-through driver doing all that, without running MIT-SHM screen grabber X11 clients shoving around frames. I want less kludges, not more.

That would be Looking Glass, but its author's position is (paraphrasing) "Stuff like this already exists for Linux so there's no support for a Linux guest". Alas, no one can point to it.

Re: X410 – X Server for Windows 10

#250

Earlier quoted context omitted.

I dual boot right now and hop into Windows only for games. Wine is janky so that's not a good solution. I've been a pretty devoted Linux user for close to 20 years but I'm starting to seriously consider switching to a WSL setup in the future.

You can try a Windows VM with GPU passthrough, there's Looking Glass with transparently sends the VM pixels to a Linux window with native performance. https://looking-glass.hostfission.com

Thanks, I'll take a look at this!
Post reply on HN