-
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
[Feature] Add an option to run native games that use OpenGL to run on Vulkan using Zink. #432
Comments
thx for the feedback! |
Sorry for my late reply. Of course, if you want or need a break, enjoy it! You have given enough to the community :). The environment variables are as follows:
I will try to see if I can get it in there myself, so will create a PR then! Edit: I suspect this will only be useful for people running with Mesa (so Intel and AMD gpu's). |
I think this would be a fantastic idea! However, I am far from an expert here but I wanted to ask: Are all of those environment variables necessary? When I want to run games with Zink (verified that they are using Zink with MangoHUD and when beneficial, a noticeable performance boost), I typically only need to launch the game with And also, to @frostworx point, these could just be added as variables, but like with having a friendly UI for enabling Gamescope and GameMode I think this would be great for people that might not even know Zink is a thing! 😄 I think having an option for Zink would be great given how useful it is already and how fast it is maturing. If it is added, there should be some information given that it only applies to Intel/AMD and that it only works for OpenGL games. Maybe Zink could be a checkbox, and it would say something like "Use Zink (AMD/Intel)" and then a tooltip with some extra information on what Zink does and as such that it only works for OpenGL games. |
As you might have noticed, I decided to add (basic?) SteamDeck support, so I'm working on it anyway. |
Should be very easy to implement (I'd push it with the first testing Steam Deck support commit) Edit: I'll also add a "Zink" steam category config |
I just pushed this commit, which should do what you want. |
Thanks for the work! I'm interested in testing this out 😄 I'm having a few problems though, I can't enable MangoHUD when using SteamTinkerLaunch (it lists the driver being used). The option in the menus and the custom command don't seem to work for me. I can use MangoHUD normally even for the same game if I add I'll keep working at it! |
I think I may have some problems with mangohud unrelated to STL, however I found something in my research: The extra commands seem to be for NVIDIA: https://forum.manjaro.org/t/how-do-i-force-a-program-to-use-zink/79190/5 There is also a post on GamingOnLinux that claims Zink works on Nvidia: https://www.gamingonlinux.com/2021/06/opengl-over-vulkan-driver-zink-gets-a-huge-performance-boost/ I don't have an Nvidia GPU so I can't test this claim, but I wanted to bring this up just in case :) FWIW: On my 5700XT, running the command
I suppose from here testing would need to be done on Nvidia, to see if the single command is sufficient. If it needs all the flags mentioned, that should be fine, as it does not seem to cause problems at least on AMD. I haven't tested on Intel but I don't see there being any major differences :) EDIT: The Arch Wiki makes note that on Nvidia GPUs, Zink may not be as performant: https://wiki.archlinux.org/title/OpenGL#OpenGL_over_Vulkan_(Zink) - This was also mentioned in a GamingOnLinux comment from the linked post. I guess further testing on Nvidia would dictate how this could be conveyed to the user in the menu, if deemed necessary at all. |
I wasn't able to get MangoHUD to display Zink as the render engine for some reason, and I wasn't able to get MangoHUD to work with SteamTinkerLaunch (probably a separate issue as it seems to work with Vulkan games) but I went ahead and tested BioShock Infinite (a native Linux OpenGL game) anyway.
Given the behaviour is the same with Zink enabled in SteamTinkerLaunch and with a launch option set from Steam without STL, I am inclined to say that the Zink option is working. I would've liked more solid evidence that Zink is definitely being used, but this and also my above test with System Information:
|
Thanks a lot for testing and investigation! I'll leave this issue open as a reminder for me to remove the (AMD/Intel) note from the description and add your manjaro/arch urls into the wiki. |
Sorry for not contributing, was gonna take a look this weekend (busy with other coding project). But I see it is already implemented, great stuff. Thanks! EDIT: Just tested this with Stellaris (native OpenGL 2.1 game) No visual artifact or anything, performance was good, but game started to hang after a minute of so and crashed. No way related to Steamtinkerlaunch, just Zink being immature. But it works, thanks a lot! |
You can see what libraries a process uses, you are using KDE, so if you start KSysGuard, right click a program you can find detailed memory information. Zink should be listed under shared libraries. Easy way to see if a program uses Zink. |
just removed the AMD/Intel notes in the language files Regarding mangohud issues: iirc this was already once reported before: I'll close here anyway, as the original feature request is implemented. If you think this is a steamtinkerlaunch issue, feel free to open a separete issue (or reopen a possibly existing one, which got closed) |
Thanks for the great work! Been using STL for quite a while now, and it is really helps a lot!
I've been testing some games that use OpenGL and running them on Vulkan using Zink. It works pretty well already.
Would it be an idea to add an option to export that environment variable in Steamtinkerlaunch? Would just be for ease of use.
The text was updated successfully, but these errors were encountered: