Sunday November 22, 2009 3:17 AM AEST

The battle of the drivers

  • Email a Friend
  • Print Page
«  »
The battle of the drivers
By James Matson
Jan 6, 2009 | 1 Comment
Tags: The | battle | of | the | drivers
To understand and appreciate what goes into a modded GPU driver the best starting point is to have a grasp of what makes up a driver in general. In simplest terms, a driver is a chunk of software – often written in C – that gets hardware and the OS talking happily, so that requests can be made from (for example) a game that sits on top of the OS through to the device in question to cause the sweet action that happens on-screen. Device drivers are powerful little critters which operate in kernel mode rather than the more standard ‘user’ mode of an application. This means drivers get to access to all kinds of low-level functions within Windows not normally available (but obviously required for a device driver to work) and there are no restrictions to the driver being able to write and read protected areas of memory or be in direct I/O access with physical devices.

It’s this ability for drivers to cut through the higher level guff that most ordinary applications must wade through to execute code on a PC that makes them both tricky to successfully write, and potentially catastrophic when they go wrong. Ever wondered why so many BSoDs or fatal exceptions are caused by driver mismatches or incompatibility? The unrelenting low-level access to the architecture that is the nature of a software driver – GPU drivers included – is largely to blame.

Keeping things basic, two important bits of code allow a driver to function; a DRIVER_OBJECT data structure created by Windows and a DEVICE_OBJECT data structure created by the driver itself. The DRIVER_OBJECT is a block of memory allocated by Windows that describes where the driver code is loaded into memory, the name of the driver itself and the functions supported by it. The DEVICE_OBJECT structure is created by the driver itself and is used to reference a physical device like your video card, describing different characteristics of the device. The DEVICE_OBJECT becomes the target of I/O (Input / Output) requests from applications like your favourite blood-bath FPS, acting as the go-between for user-mode programs to get functionality out of actual hardware. In amongst this are functions stored in the driver’s DLL (Dynamic Link Library) files that can be exposed and used to get the magic happening on the physical device in conjunction with Microsoft’s unifying DirectX APIs.

There’s a hell of a lot more going on, but we don’t have the room to get too deeply involved there. The crux of it is that drivers are complex, clever and absolutely required to get any useful functionality out of your GPU. So, where do modded drivers come in? Surely they are super enhanced software where the guts of reference drivers from NVIDIA or ATI have been completely revamped to allow your video card to wear its underpants on the outside and be super fast? Unfortunately, the truth is a little less glamorous.


 
«  »
 
This article appeared in the December, 2008 issue of Atomic.

The latest issue is on sale now!

Want to learn all about Diablo III? Want to find out what the best Solid State Drive is on the market today, and how to look after it? Want to catch up on the latest hardware, games and in depth tech from Australia's best enthusiast mag?

Get your copy today :)
1 Comment
Thoughts on this article? Add a comment below.
sm1ddy
Jan 7, 2009 6:07 AM
Well here's my situation.

My main computer is a Asus laptop that runs Nvidia Graphics.

In Nvidia's lack of wisdom they made it the job of Asus (for my particular laptop anyway) to release versions of the Nvidia driver for their laptop. As expected one driver came out and no updates were found beyond that provided by Asus.

Recently I also had issues with games that ran perfectly fine performance wise, but had graphical glitches due to the rubbish old drivers.

I attempted to install updated drivers from Nvidia's website but attempting to do this failed as the driver package would not allow it on the laptop.

Anyway I went out and hunted down some tweaked homebrew drivers that installed fine. Eventually I found the hacked drivers got a performance boost, updated, and had the graphical glitches removed.

So I can see the benefit :)
Login or register to submit a comment.
 
 
 
Atomic Magazine

Issue: 107 | December, 2009

Atomic is a magazine aimed squarely at computer enthusiasts, gamers, and serious PC upgraders.

Every month we bring you the latest reviews of new technology and PC components, in depth features on everything from overclocking to console hacking, and gaming previews and interviews.
 
Latest Comments
"Signed. And link and article passed to friends too.
And a link supplied on my facebook too."
by morris | Nov 21, 2009 11:29 PM
 
"I got an XP pro oem with a game build rig 18 months ago and continued to ignore Vista, to my ..."
by TonyB | Nov 21, 2009 10:24 PM
 
"Holy shit, batman.

*runs"
by colganaitor | Nov 21, 2009 7:17 PM
 
""sudo preupgrade"
...failed to download installer metadata
------------
So ..."
by wlayton27 | Nov 21, 2009 8:16 AM
 
"^ I find with CoD4 that I can jump on an empty server and be joined by 6-12 others before the ..."
by Ezekill | Nov 20, 2009 10:10 PM
Latest User Reviews
Shenmue II
10%
asdfasdf
 
EVGA X58 Classified
90%
great board, a few things could be better
 
EVGA X58 Classified
90%
Gorgeous looking
 
Sapphire 4890
90%
So good, I immediately wanted a second one!
 
MSI 790FX-GD70 motherboard
90%
Allmost the prefect gaming board