this post was submitted on 20 Nov 2023
50 points (100.0% liked)
libre
9836 readers
3 users here now
Welcome to libre
A comm dedicated to the fight for free software with an anti-capitalist perspective.
The struggle for libre computing cannot be disentangled from other forms of socialist reform. One must be willing to reject proprietary software as fiercely as they would reject capitalism. Luckily, we are not alone.
Resources
- Free Software, Free Society provides an excellent primer in the origins and theory around free software and the GNU Project, the pioneers of the Free Software Movement.
- Switch to GNU/Linux! If you're still using Windows in
$CURRENT_YEAR
, flock to Linux Mint!; Apple Silicon users will want to check out Asahi Linux.
Rules
- Be on topic: Posts should be about free software and other hacktivst struggles. Topics about general tech news should be in the technology comm or programming comm. That doesn't mean all posts have to be serious though, memes are welcome!
- Avoid using misleading terms/speading misinformation: Here's a great article about what those words are. In short, try to avoid parroting common Techbro lingo and topics.
- Avoid being confrontational: People are in different stages of liberating their computing, focus on informing rather than accusing. Debatebro nonsense is not tolerated.
- All site-wide rules still apply
Artwork
- Xenia was meant to be an alternative to Tux and was created (licensed under CC0) by Alan Mackey in 1996.
- Comm icon (of Xenia the Linux mascot) was originally created by @ioletsgo
- Comm banner is a close up of "Dorlotons Degooglisons" by David Revoy (CC-BY 4.0) for Framasoft
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It's not always true that steam proton is a downgrade. There are quite a few games, especially old ones, that actually run better with proton than natively on windows. Which is wild, but true.
That is surprising, I might give it a go next time I have an older game that doesn’t run so good under modern Windows.
Proton/Wine is a compatibility layer to translate Windows API calls to POSIX calls. In theory it should actually yield near native performance or better since Vulkan is far more optimized than DirectX.
But yeah, I use Proton and waiting for your vulkan shaders to compile is a little bit of a pain (especially for some games).
While I'll admit I don't have a lot of experience with Proton, I actually spent about 4 years working on a OpenGL based 3D graphics engine for augmented reality research. I've also written engine code in both DirectX and Vulcan but not as much. All this to say I've done some in depth research on Vulkan in the past, and I don't think it's really true to say that it's more optimized. DirectX is probably more optimized, but it is over-optimized for graphics techniques that have been superseded by more modern ones. Vulkan allows more optimized code to be written by giving the application programmer more direct control over graphics card resources. This only works when the program is written to take advantage of this though, if you access a Vulkan driver via a DirectX compatibility layer you are going to get very similar performance to native DirectX because you'll simply recreate all the bottlenecks that Vulkan was designed to avoid.
This gets to the underlying issue with Wine/Proton as a general solution to Linux gaming. So long as the application code was tested, debugged, profiled and optimized on Windows with DirectX it will almost always run better under Windows. The design will take advantage of efficiencies in the original API which will almost certainly not exist after calls are translated to a different API using different underlying OS primitives. The major caveat is older games which are no longer well supported because of changes to Windows system internals since release, these are likely to run as well or better because the assumptions they were optimized for are no longer valid on Windows, but Wine is already designed to compensate for programs written for a very different API.
Sorry for nerding out, but it's a topic I'm actually pretty interested in.
I see that's really interesting. A lot of my impression of Vulkan is that it's a much more modern API.
Though I'd admit that some of these are faulty benchmarks like when some users got better performance on Elden Ring with proton than on native windows (performance metrics varied wildly). It was just nuts to see Linux competing head-to-head with Windows for the first time.
Absolutely, older APIs tried to smooth development by abstracting more from the hardware, Vulkan tries to give the developer as much control as possible. If you know what you're doing you can write more performant games with Vulkan, but on the flip side development is slower. The matters less and less though, as most game dev these days uses middleware like Unity or Unreal which does all the graphics pipeline management for you. This also ties into modern graphics hardware being more configurable than ever, meaning the more restrictive APIs can waste a lot of the hardware's potential.
I did a bit of research after reading your comment and from what I can see, Elden Ring has some bugs in it's rendering pipeline that can cause cached shaders to be recompiled for no reason, this is what causes all the stuttering on Windows. Proton devs managed to write custom implementations of the DirectX functions that it uses incorrectly, to force it to work the way it was presumably intended to. That's awesome to me and really shows off the potential of Proton. Obviously other games which aren't huge releases aren't going to get that kind of treatment, but I can definitely see dedicated communities fixing issues like this in games.
Super cool, I'm glad you mentioned Elden Ring because I hadn't considered Wine/Proton could be used like that.