4 ms·
My guesses: 1) Nvidia and AMD both do per-game optimizations in the drivers themselves. Though my understand is that Nvidia has more resources dedicated to thi
by kyrra 10y ago
My guesses:
1) Nvidia and AMD both do per-game optimizations in the drivers themselves. Though my understand is that Nvidia has more resources dedicated to this. They will send 1 or 2 people to the studios of AAA game devs nearer release to help the company optimize their game plus to add "hacks" into their own drivers to work around inefficiencies in those games.
If they opened sourced their drivers, that work would be made free to AMD and other drivers.
2) "Benchmark Cheating". Graphics Drivers do lots of optimizations depending on the specific application. I'd wager that this includes popular benchmark apps.
3) Patent lawsuits. There are a massive number of patents around the graphics word. Obscuring how a driver works probably helps protect them somewhat from potential patent litigation.
- orik 10y agoHere's a quote from another hn user robert_foss from the discussion on the Apple / Imagination Technologies thread. 'In the GPU space it is impossible to not infringe on the IP of other vendors. In fact it is the major reason GPU vendors give for not having an open source driver. I have spoken to the CTO (Jem Davies) of ARM about the GPU drivers and open sourcing them more than once. And every time I've gotten the reply: "No, we can't, it opens us up to IP infringement suits."' https://news.ycombinator.com/item?id=14021299 https://news.ycombinator.com/item?id=14021299
- xorcist 10y agoIntel GPU drivers are completely open source, are they not? That clearly makes it not impossible, if they cared enough.
- true_religion 10y agoIntel is #1 in the chip technology field though. They are in a special position where it would be suicidal to sue them.
- thomastjeffery 10y agoAbsolutely. AMD is moving strongly in that direction too. This is just one of many sad excuses to continue a moronic, and frankly harmful practice.
- kimixa 10y agoBoth AMD's and Intel's OSS drivers are 'clean room' separate codebases to their internal closed drivers. It may be that they are specifically avoiding some features/rewriting possibly infringing code in these cases. As far as I know, we have yet to have an open driver to get the same performance as their closed windows ones in all cases. There may be reasons behind that.
- JoshTriplett 10y ago> They will send 1 or 2 people to the studios of AAA game devs nearer release to help the company optimize their game plus to add "hacks" into their own drivers to work around inefficiencies in those games. Depending on the nature of the hacks, there's not necessarily anything wrong with that. It's common for drivers, even Open Source drivers, to detect common patterns of API misuse that would otherwise hurt performance, and transform them into patterns that achieve the same effect more efficiently. But that only applies if you can detect the inefficiency by pattern, rather than by application name. If the driver does the latter, then yeah, it'd be hard to Open Source that.
- ekianjo 10y ago> But that only applies if you can detect the inefficiency by pattern, rather than by application name. Nvidia "experience" driver management software "optimizes" how games run by finding the .exe name of the game. Change the .exe filename, and your performance drops. So they are doing exactly what you suggested they might be doing.
- pandaman 10y agoThat's because drivers do not look for API "patterns of inefficiencies". The optimizations are either in global settings like resource distribution (found through extensive profiling so impossible to do automatically in the driver) or optimized shaders (again, guided by profiling and not even possible at the app level since the game cannot ship with the native shader code). If you ever wrote C/C++ code with the performance requirements you know that different programs will run fastest with different compiler options, drivers provide these optimal options for the different games and if you change the name of the game the options are likely to become non-optimal.
- ekianjo 10y ago> Nvidia and AMD both do per-game optimizations in the drivers themselves It's worse than that. Most DirectX code is incorrect to begin with, and GPU manufacturers tailor their drivers to make stuff that should not be valid run for specific games. hence the "the way it's meant to be played" and the nonsense of newer drivers bringing 20-30% performance increase for recent games.
- thomastjeffery 10y agoThose guesses are likely right on the mark. A company like NVIDIA uses excuses like this to avoid change, and after years of trying them, believes them. The sad fact is that these are entirely unreasonable claims, and that it would be wholely in NVIDIA's favor to open their drivers. 1) If they release the bulk of their driver work under a BSD-like licence, they can still keep those patches secret. It would even be to NVIDIA's advantage to do this, since game devs would be able to work with the original driver codebase, and know what to expect from it; and therefore write better code in the first place. 2) Same as #1 3) Intel has open drivers. AMDGPU is open. This is a sad excuse, not a valid reason.
- infodroid 10y agoI don't buy it... You can easily ship a "plain vanilla" open source GPU driver separate from the proprietary "game optimizer" code, because the former doesn't block the availability of the latter. And if you suspect a GPU driver is cheating on a benchmark, or you have grounds to sue for IP/patent infringement, you don't need to have the source code for that. Any sufficiently motivated organization can verify that right now by disassembling the binary driver.
- oakwhiz 10y agoThe real meaning behind patent infringement concerns is that the source code contains clues to the "secret sauce" that the binaries don't make readily accessible. So publishing the source is publishing the restricted IP. Whereas their license to use the IP allows publishing of the binaries.
- infodroid 10y agoThere's no way to avoid giving away clues to "secret sauce" when releasing a driver, and keeping the source code closed doesn't change that. I don't see how the degree of accessibility is relevant. The fact is that clues to IP can't be removed when compiling the source to binary form, because implementation details can't be hidden. So the status quo is that they are already public. Granted, it takes more skill and patience to analyze the clues in this form, but any competent hacker can do it. And the absence of names and comments in the binary makes the job harder, but doesn't actually remove the significant clues. And while it's true that these drivers might be using licensed code, which restricts publication of its source code, this seems like a poor excuse for keeping all the code proprietary. The existence of licensed code doesn't block releasing the rest of the code. And I'm willing to bet there is an army of volunteers out there that is more than happy to write a clean room replacement for the licensed parts, if the vendor can't do it, given the opportunity.