The battle of the drivers
James Matson
|
Jan 6, 2009 2:33 PM
Tweaked perfection or a bunch of cosmetic tomfoolery? James Matson gets friendly with the world of homebrew GPU drivers.
So you’ve got it – finally. That most incredible, advanced and damned shiny graphics card you’ve been waiting for since the last incredible, advanced and damned shiny graphics card was released.
It’s a thing of beauty encased in sleek black metal that reflects the hunger in your eyes as you lovingly caress the cooling fan mounted to one side. To compliment this masterful sliver of silicon, you’ve picked up the latest ‘games never looked this good’ FPS, complete with engine promises of real-time global illumination and gorgeously rendered environments spanning eleventy billion kilometres of game area. Good thing you bought that new video card, eh?
So you’re set; except for the little matter of drivers. Those sneaky little liaisons between hardware and the operating system often get less attention than they perhaps deserve. If you’re like most people, you’ll head straight for the NVIDIA or ATI website and grab the latest reference drivers for your card, and there’s nothing wrong with that approach. The drivers function, they get your GPU recognised, and gaming can commence unhindered.
But Atomican’s aren’t most people. We like our hardware to perform outside the boundaries of mere reference drivers and stock settings. We want to experiment, try the alternate – and sometimes shady – world of the non-standard. So there’s another place for people like us: the world of modded drivers. Atomic divided some time between benchmarking and chewing the ears off modding teams to discover exactly what these modded drivers are, how they get made, and whether they really are worth your precious download time.
Read on and be filled with geek knowledge!
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.
To discover exactly what goes into a modded driver, we approached several of the well known groups on the Internet that tirelessly work on making stock standard GPU drivers better for the community. Among them Eran Badit, editor in chief and software manager of NGOHQ.com, who looks after the team responsible for NGO modded drivers for ATI and NVIDIA products.
"We’re unable to make deep driver-level modifications (aka,cracking). We thought about it in the past and even tried, but it generated more problems than it’s worth. First of all, our target audience is gamers and we don’t want to get them banned, since many anti-cheat mechanisms like PunkBuster have major issues with deep driver modifications. At this stage we use more basic methods to modify the drivers, like installation scripts, registry entries and playing with the in-built features."
The motivation for creating the drivers seems to be uniform regardless of who you speak to; it all comes down to squeezing better performance or image quality out of hardware, or according to Eran, creating a more user friendly product. "The original driver developers (in this case ATI and NVIDIA) have their own policies, bureaucracy and marketing plans," he says. "They’re unfortunately more likely to act with the best interests of the company – rather than the consumer – at heart. There’s nothing wrong with that, but we’re coming at the driver purely from the customer angle, and spend our time making the driver more consumer-friendly, producing better image quality/performance or retrieving crippled features to offer maximum compatibility with older hardware."
Eran cited mobile GPUs as a perfect example. "Due to agreements and licences with OEM producers like Dell, Acer and Toshiba, there is no ‘official’ support from NVIDIA or ATI for mobile GPUs." The driver modders get around this by adding DeviceIDs to the driver for any number of mobile or aged GPU devices, like the Mobility Radeon 9500 et al, allowing them to offer the full gamut of support for just about any card you can think of. Doesn’t that just give you that warm and fuzzy feeling?
Wandert ‘KillerSneak’ Van Bruggen, who looks after the DNA driver modding team at www.donotargue.com, pulls the official drivers apart in much the same way.
"A lot of the tweaks we do are the result of picking through the ATI or NVIDIA source code (not the actual source that the drivers are built from, but the resulting .sys and .dll files produced). We use tools to get inside those files and muck around with settings to see what we can come up with. The .ini and .inf files that look after the driver install itself are also a pretty good starting point to alter features or settings, as it allows us to make changes within a certain range of values (quality settings for example) without having to touch the source code."
So you’re reading through all this talk of altering this file or exposing that file and we’re betting the question of official support or legality has crossed your mind – because let’s face it, once you start mucking around with the proprietary software of another company you’re basically throwing yourself – naked and crazed – onto spongy earth littered with landmines and lawyers right? Eran explains, "Before the ATI-AMD merger for example, we received a lot of cooperation from ATI’s PR department in the way of information, samples or support. After the merger, unfortunately, the cooperation dried up and we’re no longer receiving anything on the press or developer level. NVIDIA, on the other hand, never really had much to do with us."
Eran is being modest however; despite not having a lot to do with NVIDIA now, the past has been littered with colourful run-ins.
In 2006 NVIDIA sent a cease and desist letter to NGOHQ.com in relation to NGO’s offered SLI patch, which would apparently enable SLI on boards with a non NVIDIA chipset. The word on the street was that the patch came supplied by motherboard manufacturer ASRock, designed to enable SLI on ASRock boards. Again in 2007 the tension between NVIDIA and NGOHQ.com reached critical when the GPU giant wrote to the NGO team reminding them politely that as the exclusive owners of the driver IP (Intellectual Property) it held the only right to authorise distribution of its software.
NVIDIA PR manager Bryan Del Rizzo laid down a simple ultimatum; cease distribution within two weeks of the letter or the matter may be taken further. NGOHQ hit back, claiming that as its servers were hosted in Israel and not the United States, copyright law under US section 106 did not apply. They also added that local law permitted it to distribute copyrighted software as long as its intended use is private/educational rather than commercial. NGOHQ also cited the fact that the drivers it offered didn’t include any code-level modifications, only Windows script files to change default settings that accompany the driver installation. The end result – over a year later – is that NGOHQ still offer the modified drivers; whether that’s a result of legal grey areas or simply that NVIDIA stopped caring is anyone’s guess.
The owner of the Omega driver mod website got some legal loving from NVIDIA as well over his distribution of modified software. The developer was told to remove certain drivers (and the NVIDIA logo) from his site after NVIDIA received customer complaints of GPU instability after installing a set of Omega-modified drivers. The Omega drivers were at the time the largest and most well known after-market drivers available, so an immediate internet backlash against NVIDIA ensued on forums and tweaking sites until NVIDIA clarified its position in an official statement. "After reports of instability stemming from the third party drivers we requested they be removed from the web site distributing them as they were not clearly marked as non-NVIDIA."
The statement went on to placate seething geek hordes regarding NVIDIA's stance on modded drivers, "NVIDIA does not – in any way – condemn the development of third party drivers; quite the opposite. We recognise the importance of third party drivers and for this reason we have not asked for work on future drivers to cease."
So in essence, one bad egg in the basket of Omega drivers caused quite a stir among the modding community, but in the end Omega drivers kept on trucking and is – at the time of writing – still modding NVIDIA and ATI drivers.
Now that we’re familiar with the ins and outs of modded drivers, the scene is set for the real question, the one that seems begging to be asked from the outset. Are modded drivers any good? We know that’s the ultimate query and the only real one that matters. To that end, we’ve put several driver sets from different modding teams through their paces and have the results to show for it in terms of performance and image quality; with a few caveats, however.
Although ATI and NVIDIA are reasonably precise about the continued release of new driver sets, modding teams are not. Due to this, we had to balance the desire to have the most recent drivers available against getting third party driver sets to align in version against the reference ones. Check out the table lumped in with our benchmark results to see exactly what versions we ended up using, but in short we ran the ATI Catalyst 8.7s against as many modded 8.7 sets as we could and the NVIDIA Forceware 169.25s matched with as many sets based on the 169.25s as possible.
Obviously there were newer reference drivers (and in some cases modded drivers) available, but this gave us the most even spread possible. The downside of all this numeric nonsense is we couldn’t run the XFX GTX260 through its paces, because it wasn’t supported in the Forceware 169.25 drivers, opting for the XFX 8800GT instead. We did try our best to persuade the various modding teams to release completely up-to-date drivers in time for this piece, but they kindly informed us that if we continued to sit outside their respective bedroom windows naked and covered in baby oil, they’d call the cops. Cest la vi.
Where to get them
Here’s a list to get you started on where to find modded drivers out there on the internets. Just a word of warning though – not all these places are timely in getting drivers out in sync with the official releases, so bookmark like crazy and keep coming back.
www.ngohq.com
www.donotargue.com
www.omegadrivers.net
www.tweakforce.com
www.driverheaven.com

System specs
CPU: Intel Quad Core Q6600 @ 2.40GHz
Motherboard: Gigabyte P35-DS3P
Memory: OCZ PC2 6400 Dual Channel 2 x 2GB
GPU: XFX NVIDIA GeForce 8800GT/Gigabyte ATI HD4850
Storage: 3x WDC WD5000AAKS-00YGA0 ATA 500GB
O/S: Windows Vista Home Premium 64-bit
Benchmark software
3dMark06 Professional Edition
HardwareOC Unreal Tournament 3 Benchmark tool
Crysis Benchmarking tool
 |
| ATI Results. |
 |
| NVIDIA Results. |
So we benched like crazy, ripping out cards, sticking in cards, setting up flybys and tearing our hair out at the seemingly robotic consistency of the Unreal Tournament III framerate until we discovered the FPS cap hidden away in the Base Engine.ini of the game. What did we learn? Well, insofar as performance and image quality are concerned, there’s not a lot to write home about in the world of modded drivers. Both the official ATI and NVIDIA drivers did produce a slightly higher 3dMark06 score, but as the modding teams are fond of saying, the drivers may be engineered towards higher synthetic benchmark scores rather than real-world performance.
As far as Crysis and Unreal Tournament III go, the modded drivers for the 8800GT and HD4580 gave a better framerate in each of the tests we ran, but by such a marginal amount as to require some kind of Star Trek quantum phase-variance device to pick it out when you’re busy fragging.
We ran image quality tests by capturing and comparing the same frame during the UT3 benchmark for each of the drivers tested, but could find no discernable increase or decrease in texture quality to need to show the results here. We were expecting something akin to the XGI mischief when everyone realised the only way its ill-fated Volari range of video cards were competing in benchmarks was to reduce the texture quality to ‘pea soup’ level.
It all seems a bit disheartening really, doesn’t it? Somewhere in the deepest chambers of our cutting-edge hearts we’d hoped to see bigger, bolder numbers produced, wider gaps and the like – but were sadly disappointed.
What this doesn’t mean is that after market drivers have no place in the world – quite the opposite in fact. While performance and image quality are the obvious measurements and the easiest to place into bar charts and graphs, the aim of these drivers goes behind benchmarking.
The dedication by teams like NGO, DNA and Omega to ensure they support legacy hardware, or notebook GPUs, as well as providing various options within the installer not commonly seen in official drivers is something worth noting, if not for its tangible effect on the frames-per-second of your favourite grunty GPU.
If you’re a performance nut who could seriously do with that extra one or two frames per second in games or in benchmarks, then by all means go forth – wild eyed – and begin experimenting with the world of modded drivers. If you’re having difficulty finding support for a certain GPU, be it outdated or of unique design, again don’t dismiss the work done by these talented modding teams.
However, if you’re just after a driver that gets your card working in normal conditions to produce gaming goodness, you’re probably going to be far better off keeping up-to-date with the reference drivers as they roll off the NVIDIA or ATI assembly line for the moment than dealing with the often laggy after-market scene, or alternatively – like a truly hardcore mix of Atomican and Macgyver – you could go out there and mod your own using a rubber band and a tin of molasses.