3 ms·
How are those two things related?
by SpaghettiCthulu 3y ago
How are those two things related?
- bayindirh 3y agoDriver interrupts the engine instructions, applies fixes or other does other processing on the CPU, and renders the modified code. Think as a SQL query optimizer running real time. So, you need a fast CPU to keep data flowing to the GPU at the correct rate, without much hindering.
- SpaghettiCthulu 3y agoDo they really apply these optimizations on every draw call/frame/flush without any significant caching?
- bayindirh 3y agoI don't know about caching, but I remember in a particular instance, a game engine (CryEngine IIRC) was calling a very expensive function which should be called seldomly (or every 10 frame or something) every frame, and hurting performance of the card severely. It was very bad PR for the card company. The driver detected the game (possibly via checksum of the executable), and ignored that function call (while returning success to the game engine), and only executed the function in full, if there's a necessity to do so. Back in the day, ATI's drivers used shading and texturing optimizations in Need for Speed series to reduce the load on the card for faster frame rates for very minor visual changes. Do these kinds of optimizations for tens of games, and things get complicated. I remember these optimizations are done for Need for Speed III, Quake 3, Far Cry series, GTA3 (nVidia's budget cards ran the game better than ATI's faster cards at that time), etc. Since these drivers bent a lot of corners for specific games and made things very complicated, an embedded platform provider decided to re-fork AMD's Open Linux drivers to Windows (IIRC) since they were vanilla, honest to spec drivers with no convoluted pipelines. A cutting edge graphics card driver is possibly one of the most complex software in today's software ecosystem, IMHO.