6 ms·
Nvidia has confirmed a driver bug resulting in a loss of performance on Linux
- HarryHirsch 9y agoSupposedly with the latest driver some websites (even popular ones like Reddit) have stopped working: https://bugzilla.mozilla.org/show_bug.cgi?id=1382358 https://bugzilla.mozilla.org/show_bug.cgi?id=1382358 https://bugs.gentoo.org/639250 https://bugs.gentoo.org/639250 The complexity of modern computing is truly terrifying.
- leeoniya 9y agothere was a quote by some well known graybeard that went something like "Computers are so incredibly complex, the fact that they boot at all, let alone do anything useful, is simply astounding".
- simion314 9y agoA bit off topic, I do not understand why it is acceptable to have game optimization put inside the driver and not optimize the game, it seems like all the time there is a driver update and the nvidia auto-updater thing failed for me when I tried it.
- TillE 9y agoAs I understand it, this typically involves writing shaders which are logically equivalent but better optimized for the particular hardware. It's an odd situation, but probably better than asking game developers to learn enough intimate hardware details to write their own optimized shaders for each GPU type.
- simion314 9y agoWon't it make more sense to send the shaders to the developers? I have no idea how the driver does this patching but if the game is patched won't that be then easier when a new version of the game or a game with same engine is created? I remember that for a game you had to rename it's binary so the driver would be tricked to apply an optimization, I do not remember the details but the slow game was using same engine as first one.
- sebazzz 9y agoI am unable to find the comment on Reddit, but there was a post explaining basically that GPU drivers, NVidia at least, are often very game optimized and hack built on top of hack. The drivers are very complex.
- city41 9y agoAre all games able to benefit if it's in the driver?
- cwyers 9y agoNo. Basically, here's what happens: * Each game comes with a bunch of shaders, which are written in some low-level language and compiled to bytecode which is compiled for the specific graphics card on your machine at runtime by the driver. * For commercially important games, Nvidia will have someone manually tune the shaders for best performance on Nvidia's architecture. * When a driver supporting that game is released, the driver has copies of those tuned shaders, and when it's asked to compile a shader it has a tuned copy of, instead of compiling it it just emits the copy of the shader that it came with.
- varelse 9y agoNVIDIA driver stability as of CUDA 9 or so has been craptastic IMO. I am seeing all sorts of strange slowdowns and app crashes that just weren't there pre-CUDA 9. I would assume this is related to changes made for Volta support in some way, but who knows for sure? Where this hits the most is with end users of my 2 codebases who struggle to understand why things just stop working correctly. Each time (so far) it turns out to be shortly after upgrading their system to a post CUDA 9 driver/toolkit. The fix for now is simple since there's no consumer Volta GPU. Hope they get this straightened out. As for game-specific optimizations, I spent 5 years on the DirectX team writing those. I see those as part of the value-add of a HW vendor personally. But to your point, I also occasionally spent a week or 2 embedded with game developers to incorporate those optimizations into game engines with mixed results. When game developers refused to do so because reasons(tm), we occasionally overrode their intent within the driver because our reasons(tm). Old timers (2003-2005) might remember NVIDIA getting called out for this by HW web sites when the shader compilers could not come close to hand-optimized code. I never understood the fuss myself and I try not to work with the sorts who agreed with it. Life is just too short.
- simion314 9y agoThanks for your replay, from an engendering point of view feels very dirty to fill your code base with workarounds, can't Nvidia and AMD put presure/shame on bad developers? About vulkan , since some game developers have problems with high level APIs would Vulkan be harder to code for?
- FreezerburnV 9y agoThe problem here is that the games being manually optimized by the graphics card vendors can have pretty horrendous code. To the point that I remember reading a post at some point about a large game not even calling glEnd after a glBegin. So these big companies get the graphics card companies to manually go through and hack together some specialized code (including the shader code that will replace the shader code written by the big game company) to fix up how the game works, and optimize it so it works well. Part of the reason for this is that it's so incredibly difficult to get to the "happy path" of a GPU when writing graphics code. (at least, with more complicated APIs. I think the newer things like DirectX 12 or Vulkan provide a much lower-level set of primitives to allow the developer to get to that happy path much easier, rather than doing 5 incantations in a magic circle to get there) The underlying state machine and code for a driver is incredibly complicated, and the only people who know how it really works and can view code at all levels of the software are the employees of the graphics card vendor. So they're the only ones who can truly squeeze every ounce out of the hardware/software.
- simion314 9y agoI read about the story, but why not contact the game developers and send them the information? It would be like Firefox or Chrome would have a database of broken websites, and when you navigate on that website would monkey patch the site JS/CSS/HMTL to make it work faster to get a big score in benchmarks.
- dogma1138 9y agoBecause now your hardware can run the game faster than the competition.