4 ms·
> Typically many game developers have no clue about Linux programming either. So poor performance doesn't surprise me. But ultimately, this is a weakness of th
by exelius 11y ago
> Typically many game developers have no clue about Linux programming either. So poor performance doesn't surprise me.
But ultimately, this is a weakness of the Linux platform.
Most games today are cross-platform, so there is a core set of assets and code that has to remain the same across every platform to ensure the game plays the same way. This means that (for right now, anyway - Vulkan was designed to help with this situation) most hardware-specific workarounds/optimizations have to be done in the drivers -- and there are LOTS of them. Game-specific things like "run this shader code, but this model of card has graphical bugs when features x, y and z are active together so stealth disable feature x" or "this card supports this transform algorithm but its output is inconsistent with the version we developed it with, so disable it for this hardware" happen at the driver level. Same thing happens on consoles, but they usually have more direct control over the hardware so console developers have gotten used to this type of driver optimization.
This optimization doesn't happen on Linux (or Mac for that matter), so any games that get ported are just unoptimized.
- geofft 11y agoWouldn't that happen if you're running the proprietary drivers? I thought in general the proprietary drivers are built from the same core codebase across multiple platforms -- once you've gotten past the WGL, GLX, etc. bindings, and you have some system call for getting data to and from the card, the rest of the driver should be basically the same across platforms. And similarly the games themselves are the same across platforms, apart from their end of the WGL or GLX or whatever bindings. So anything in the driver that says `if (!strcmp(name, "Portal 2"))` is going to be equally applicable regardless of whether it's a Portal 2 compiled for Windows, Mac, or Linux. It's certainly a weakness of the all-free-software subset of the Linux platform (at least on Nvidia or AMD), but that's not the only option.
- SXX 11y agoOverall i'm not agree with statement, but what he was talking about is that Windows drivers have tons of hacks to optimize certain D3D code paths that used by most games and sometimes even fully replace whole shaders with GPU vendor one.
- geofft 11y agoWhy wouldn't those hacks happen on Linux? I guess the reason is that they're specific to Direct3D and not OpenGL, but for those games that do OpenGL on Windows (which I think is somewhat common), wouldn't the same hacks be present in the Linux OpenGL drivers as the Windows OpenGL ones?
- SXX 11y agoOf course they would and that is reason why I don't agree with the statement. Even AMD had profile for Valve games that improved performance on their blob and Nvidia had several different profiles some of which come from Windows drivers: to be exact one for id Software games that was always using OpenGL on Windows. Of course there is open source drivers that will likely never support game-specific optimizations since for them codebase quality and overall performance is more important than few tricks that make specific games faster.
- exelius 11y agoOpenGL is actually not all that common on Windows anymore -- D3D is more performant, and having a a DX11 compatible card isn't as big of a hurdle these days. Also, the big engines all support both for cross-platform reasons, but most devs will default to D3D on Windows because it's more likely to work consistently across various permutations of hardware/OS/peripherals (IMO this is more because Windows sucks; but Microsoft is well versed in the very specific ways that Windows sucks so they can work around them). : When I say "Windows sucks", I'm just talking about the complexity inherent in dealing with a consumer operating system designed to run on arbitrary 3rd party hardware. APIs like DirectX/Direct3D provide an abstraction layer that make the complexity more manageable; and they have a benefit in that they are provided by Microsoft.
- warkid 11y agoThey present on Windows because gpu (driver) vendors choose spend tons of their money to make them happen. And they spend their money exactly why? Because they see their profit in Windows pc market.
- 11y ago
- shmerl 11y ago> But ultimately, this is a weakness of the Linux platform. No, it's a weakness of developers who do something without knowing what they are doing. As I said, not everyone is like that. > This optimization doesn't happen on Linux It now does, with Vulkan.