3 ms·
I think we're starting to see more of this sort of thing happening now with Proton and Wine gaining prominence in the Linux community. Some games (Elden Ring co
by hodgehog11 4mo ago
I think we're starting to see more of this sort of thing happening now with Proton and Wine gaining prominence in the Linux community. Some games (Elden Ring comes to mind) have bad enough PC ports when they come out that the compatibility layer can incorporate a hotfix to improve performance, while users of the software on the original platform still had to suffer.
- Gigachad 4mo agoFairly sure GPU drivers do the same thing where they include a ton of per game tweaks to make them run faster. It does feel like a fragile way of doing things where an external component that should be agnostic to the software running ends up including a handful of junk trying to fix stuff that should have been fixed by the consumer of the driver.
- Guvante 4mo agoIt goes the other way too, sometimes you trigger some optimization silliness in the driver and the game needs to adapt to avoid it.
- rickdeckard 4mo agothen the driver gets updated and the game either continues to optimize (wrong) or branches out into code that was written before that driver came out and generally wasn't that well tested, and the circle continues... It's the life of a (game) developer...
- zoenolan 4mo agoThe big one I remember was many applications, not just games assuming the buffer swap was performed by a blit into the display buffer, not an framebuffer pointer update. They relied on the previous frames data still being in the back buffer. For those applications you were forced to blit the buffer, not swap the pointer and take a performance hit. I also remember a media player being called out by name in the code for doing invalid operations, needing a work around and code to detect it was running just to function.
- anilakar 4mo agoGPU driver packages are already a huge collection of workarounds for bad game engine coding. An Nvidia employee once told me that one of the easiest ways to squeeze out a few extra frames on your old machine is to rename the game executable to hl2.exe.
- proton_9 4mo agoThis sounds like a really interesting story, would like to read more on why half life 2 specifically? the game itself was pretty well optimized and ran on really low end hardware even back in the day.
- db48x 4mo agoBecause everyone reported performance metrics using it as a benchmark. Higher number = more sales.
- murderfs 4mo agoIf you go back 5 years, everyone was using Quake 3 Arena as the benchmark. ATI got in some hot water because if you renamed quake3.exe to quack3.exe, your FPS would drop by 15%, because they were silently reducing quality to juice their benchmark numbers.
- tester756 4mo ago5 or 50? I'd say 5 years ago it was already Witcher 3, Cyberpunk 2077, GTA 5, etc.
- Klayy 4mo ago5 years before hl2
- jkrejcha 4mo agoApparently people did this with the DirectX "3D Tunnel" demo as well[1] back over 20 years ago. Also there was one "that checked if you were printing a specific string used by a popular benchmark program. If so, then it only drew the string a quarter of the time and merely returned without doing anything the other three quarters of the time". [1]: https://devblogs.microsoft.com/oldnewthing/20040305-00/?p=40373 https://devblogs.microsoft.com/oldnewthing/20040305-00/?p=40...
- harrall 4mo agoA big portion of GPU driver updates are actually just that, same with Windows updates. Windows 95 patched a bug in SimCity just to get it to work.
- AHTERIX5000 4mo agoYep, someone needs to do the same workarounds Windows drivers do but on Linux and the translation layer is a good spot for them, look at https://github.com/HansKristian-Work/vkd3d-proton/blob/938d762f533f836900f0c3799a302db22718f633/libs/vkd3d/device.c#L606 https://github.com/HansKristian-Work/vkd3d-proton/blob/938d7... for example