A possible, basic, explanation (for a user) of why Video drivers crash systems

Shintaro

Well-known member
Joined
Jun 12, 2012
Posts
206
Location
Brisbane, Australia
A user asked me why video drivers seem to crash systems frequently.
Below was my possible responce. I thought I would post here to get further input before I repsond to the user.


There are just so many things that can go wrong.
History.
Way back in Win NT 4.0 they, (Microsoft), decided to move the GDI (Graphic Device Interface) in to the Kernel space (Ring 0) for performance reasons. When the GDI wasn't in the Kernel space it wouldn't crash the complete system. So you might lose the display but the server would keep running. And you could reboot the server at a more convenient time via other means.

Now, however, because the GDI is in the kernel, if the developer messes up in writing the KMD (Kernel Mode Driver) it brings the whole system down. BTW writing a solid it no trival task. It takes years of work to get it right.

Some examples:
A User has video driver Ver. 1 on their computer, but the game developers tested their game with the new video driver Ver. 2, which has some fix(s) in it. So when the user play's the game, Bingo! crash!

Also a (imaginary) fix might only relate to users with 2 Gb of RAM or more. So the majority of users will never have a problem, BUT, as time goes by, technology changes and the user adds RAM. So now the game access RAM above the 2Gb range, Bingo! crash. The user is left sctratching their head, thinking, I just added RAM and now my super cool game crashes? It should be running better?


Source: MS Windows NT Kernel-mode User and GDI White Paper http://technet.microsoft.com/en-us/library/cc750820.aspx



Does any body have any thoughts?
 
Video drivers work a bit differently than other drivers.
In particular, the HAL separates most drivers from direct contact with the hardware.
But with video drivers, they can directly access the hardware - so that adds another level of complexity to them.
(from the diagram on p.50 of Windows Internals, 5th Edition (I can't check the 6th Edition because I don't want to wake my cat - he's using it for a bed! :0) )
 
Thanks for that, but I was wanting dumbed down version for a user. I can't start quoting too much architecture, it would just lose them.

But thanks anyway.
 
Video drivers are larger and more complex then most drivers, they also are are more closely tied to the kernel(Windows code base) then other commonly used drivers.
 
Good knowledge from everyone here. Also, to note, Windows uses DirectX as its primary video API now. GDI has been relegated to software-based video rendering for compatibility.
 
Thanks guys,
It has made me re-think what I thought I knew about the Graphics Subsystem.

Vir Gnarus,
I had forgotten about Direct X and had not realized how integrated Direct X was.

P.35 of the Windows internal 6th Ed. shows the Windowing and Graphics subsystem.

Below is the integration of Direct X in to the Graphics subsystem.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb219679(v=vs.85).aspx


DX9Arch.jpg
 
Back
Top