Hardware accelerated remote X11 feasible? how should i approach this?

i have a desktop and a laptop. my desktop is far more capable than my laptop.
i want to be able to use the full power of my desktop from my laptop when im away.
does there exist any method to run an X11 application in its entirety with a hosts (my dekstop’s) CPU and GPU and simply send the finished image and sound data to an xclient (my laptop) for display? a per-window setup is preferred, but I’m not opposed to capturing the entire framebuffer if that’s what it takes.
i know the bandwidth requirements could be absurd, but thats a problem for another day and another thread. right now I’m trying to just use the hosts GPU. I’ll figure out compression after i get acceleration working.

i know things like VirtualGL and X over SSH exist, but neither of those methods make full use of only the hosts hardware. virtualGL is almost exactly what i want, but its useless for things like Vulkan.

its worth noting that i need such a setup to use my laptop’s sound, and input setup. I want my desktop to only do the heavy lifting for applications.

I haven’t done it before, but I found this article.

Maybe someone else has experience with this?

If bandwidth isn’t a problem… Shouldn’t it be good out of the box?

2 Likes

And that’s where the problem comes in.

remote X11 is not compressed.

Bandwidth will easily eclipse 1Gbps.

Not to mention that you’ll need a quick CPU to hit a sustained 1Gbps over SSH.

1 Like

the problem is i need a way to remotely use the servers GPU at all. X over SSH doesn’t support it.

that wont work. it only solves the OpenGL problem. what about Vulkan then?

that’s why i dont think X over SSH is the best option here.

You probably wont like my answer but I think it really fits best here.

Teamviewer…

It does literally everything you’re asking for. You can sign up for an account and set up unattended access via preset password or just click and off to the races. The only reason not to use it is because its not ‘free as in freedom’.

(╯°□°)╯︵ ┻━┻

Probably best to use a different tool then.

i dont want to have to sign up for anything. i want to use my desktop’s users and passwords setup for authentication.

Have you checked out x2go?

1 Like

from what information i can find on Google, it looks like x2go only accelerates the host GPU for OpenGL < 3.0 applications. my use case would require Vulkan. this is also why VirtualGL isn’t my solution.
i want full use of my hosts 3D accelerator, regardless of which 3D api is used.

if x2go does actually support vulkan, can you link me to documentation? i couldn’t find any during my own research, but i easily could’ve missed something.

Just want to point out that the CPU problem can be solved by not using SSH, since it’s a LAN setup sending data in “plain text” (or rather “plain X”) might be acceptable.

OpenGL over X11 also works, the main caveat is that you can’t use DRI (Direct Rendering Interface) for rendering because that bypasses X11, since the overhead of X11 is the main reason for DRI that might not be a viable option, depending on what exactly one would try to forward.

A bit of searching turned up that there is an X parameter that should enable indirect GLX: +iglx. Not sure how well that will work, or whether it will work at all in OPs case (don’t have a system with X11 I can mess with around at the moment) but it might be something to look into.

2 Likes

indirect rendering only helps to solve the OpenGL part of this task. it does nothing for Vulkan, making this approach useless for me.

if i could just find a way to view my desktop’s raw framebuffer (60 times a second) on my laptop, then this problem solves itself.
correct me if im wrong, but this would require excess of over 5GB/s for a 4K framebuffer.
so this isnt a viable option. my laptop’s NIC is only giggabit.

i might be able to compress the video stream to fix that. but i would still need a way to access the raw framebuffer of my desktop.