-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test on Windows with WSL2 #13
Comments
Hello! I stumbled across this repo today and it looks very interesting. I am curious, would HW acceleration work with WSL? |
That's a very good question to which I don't have an answer. I'm not even sure that WSL will expose the underlying GPU like you do on Linux via We are currently focusing our efforts on Linux, to be fair, the more I think about running GOW on Windows, the more I'm convinced it's not worth the effort compared to just running the .exe |
It might be worth to investigate on https://github.com/microsoft/wslg |
There is a published nvidia guide for WSL2 and docker : https://docs.nvidia.com/cuda/wsl-user-guide/index.html |
Did anyone retried to implement GOW with WSL2 since the addition of systemd and the 2022 new kernel features? |
AFAIK no, and to be fair, I'm not sure I see the point; as things are right now Sunshine works perfectly well natively on Windows, and why would you run games in a Docker container via proton or the likes when you can just run them natively on the host? I'm open to suggestions and POW, but right now, I'm focusing all my efforts in Linux. |
Just tried on my WSL 2 Ubuntu 20.04 install + WSLg + CUDA 11.4 which I use for ML. HeadlessFails to start X11. The suggested hack with EDID did not work. I still get HostI installed and ensured GEdit works. Launching Steam container actually shows Steam login window in Windows, but Sunshine fails to start:
Windows
Two goals really: containerization and running headless (+ as a bonus in arbitrary resolutions and multiple games at once from the same host?) |
After updating wsl with The relevant bits appear to be:
Moonlight complains about access to UDP 47999, which I take it means Sunshine failed to start the control stream. |
Thanks for reporting this, by a quick look at the logs I think you are hitting multiple issues: Issues
Goals
Sunshine supports multiple users sharing a single screen (ex: co-op games). We are building a completely different solution in order to support headless virtual HW accelerated displays for multiple users which is called Wolf. I can only say, keep an eye on this space because we are getting close to something that looks like a solution. 😅 |
|
Any updates with WSL2? I tried the guide for Nvidia but got several issues to run it on ubunutu WSL2 from windows |
Last I've checked WSL2 was still missing both I'm going to implement games-on-whales/gst-wayland-display#4 soon, with that, at least mouse and keyboard should work. Not sure what's the status of HW acceleration in WSL is, but hopefully that should work. Stay tuned! |
Thanks, it would be awesome to make it run through the ubuntu subsystem of windows 10 :) |
Anyone willing to test out the latest on WSL? Checkout the latest quickstart guide |
Me! I'll do it tonight. This is exciting and I have been looking forward to this, great job everyone! |
Do you have updated the instruction for nvidia user in wsl? Because the subsystem recognize the gpu and it is useable, but there is no native driver installed in the subsystem. I had issues to make the container run. |
I assume you followed the wrong tab of the quickstart guide, in WSL2 there's no mention of Anyway, others have reported on Discord that HW acceleration is not properly working; seems that Windows exposes the GPU as a different virtual vendor and our code doesn't recognise that MS specific card. Even with a temporary fix for that it seems that Sway doesn't run in WSL (or at least not without further fixes). If anyone wants to make this work I'm afraid they have to get their hands dirty and write some code! |
I followed the Nvidia tab since my laptop has an Intel iGPU and a NVIDIA dGPU. I'm gonna try using the WSL2 guide. |
looks like I got it to run with WSL but I can't seem to access the web interface either in https://localhost:47984 or http://localhost:47989. Anyone got an idea why? |
В Windows Docker по умолчанию работает с использованием виртуальной машины (через WSL 2 или Hyper-V). Если вы используете --network=host, это может не работать так, как ожидалось, потому что host сеть работает иначе в Windows. Рассмотрите возможность использования портового перенаправления, вместо --network=host: docker run |
From what I remember, you have to get the direct IP of WSL2 and connect to it via that. If you list all network interfaces in the windows command prompt it should show the WSL2's IP. |
Hi. Coming from games-on-whales/wolf#129, I have already tried
Some docker logs from wolf I have noted:
And the encoders being detected now:
Black screen issue persists when running Firefox. I'll include the docker logs for wolf, WolfPulseAudio, and WolfFirefox below. Please note that there is a long string of trace logs in wolf when I am able to move the mouse in the firefox moonlight stream and finally this last log after going in and out of the firefox control which disables my mouse access within it:
240928 wolf docker logs 1.txt Thanks, |
Current docker-compose setup on WSL2:
When I run steam this is what I get:
Shows a black background with a cursor. Never seems to finish loading. |
Correct me if I'm wrong, but WSL 2 doesn't exactly expose the actual graphics card. Instead you'll find it's a Microsoft virtual adapter that's good enough for rendering light weight UI's but doesn't expose any of the actual GPU capabilities. In the case of Wolf, it looks for Intel / Nvidia or AMD gpu's to determine what encoding pipeline to use. if you do the following command in WSL
What adapters are returned? |
So looking at the output, WSL isn't listing your Nvidia cards. instead WSL just has a basic 3d controller (first entry in screen shot). I am not aware of any method to expose your actual graphics card into WSL so that docker can leverage in Wolf. It is this reason why WSL is considered unsupported by Wolf. As understood WSL has a technical limitation that prevent Wolf from being able to leverage the actual graphics card. Given this limitation this its not currently a focus to get it working, but welcome comments / feedback from others who may know how get around this limitation and submit a PR to update our doc's. In the meantime I will review the docs for WSL and call out explicitly the current known limitations as we understand them. |
I dont have any sources off the top of my head besides "trust me", but from doing HyperV GPU-PV(AKA HyperVisor GPU Para-Virtualization) I somewhat recall the GPU being intentionally passed through as a generic/basic 3D Controller by windows due to GPU-PV. Im not certain it also applies to WSL2 but I wouldn't be surprised if it did. I do know for sure that with HyperV GPU-PV it did pass through my RTX 3070 Ti as a basic 3d controller, but I was able to use it to its full effect(most of the time) |
WSL2 is missing the
uinput
kernel module. There's a way to get it which involves recompile the kernel, try following the instructions at https://gist.github.com/cerebrate/d40c89d3fa89594e1b1538b2ce9d2720The text was updated successfully, but these errors were encountered: