How are Graphics Drivers Developed?Q: Did anything happen from those emails?
Fortunately, the Developer Technology group (a group in the company that I had worked side-by-side with through this six-month period) saw the opportunity for me to take on a role they had available, and that’s where I’ve been ever since, now as a full-time employee working with some of the most talented people I’ve ever met.
The Developer Technology group is extremely diverse, given that we have my admittedly odd background alongside people who have worked in graphics for years, people who have worked at game development studios, and people who have worked in academia and research roles in the past. Overall though, now I’m working with developers, maintaining a development and testing environment for our group, and running some demos at events we’ve had or attended.
Q: Could you go into more detail about what you do, what kinds of things you’re responsible for and who you get to talk to, both internally and externally?
The majority of my days are spent working with developers (from smaller 1-2 person studios all the way up to 400+ person studios) to help them fix problems they’re having during the development cycle, or after their game’s release. This includes reproducing any performance issues, corruption issues, or driver crashes that they or their users may be seeing.
One of the test stations at Nvidia HQ, used for replicating and identifying bugs in games and ForceWare drivers. Click to enlarge.
We also learn a lot from the developers about how they want the technologies to work, and look for opportunities to streamline this for them going forward. That’s crucial feedback. I can recall occasions where a developer has come to us and said, ‘I want to do X with my engine, which hasn’t really been done before, but the driver has a fundamental behavior that is preventing me from doing it. Plz4toFixIt!!!’
Q: What do you guys do when presented with this issue?
Often the existing driver behavior might be based on the needs of the status quo, or maybe no other games or engines have ever required this functionality before. But we’ll look into it and usually it’s a totally creative and valid use case, so we work with the software team to get it working the way it should to enable these developers. Because of this interaction, the driver team has been known to re-write large portions of the driver as a result of something like this (which is obviously no trivial task: sometimes it’s a couple of days, and sometimes it’s literally weeks’ worth of work).
This really makes the driver into somewhat of a collaborative project, and I personally find that pretty cool. We can’t (and don’t pretend to) know all the ways our products and our driver will be used until developers get creative and find bad-ass stuff to do with their games and engines.
Q: Does that mean you need to talk to all sorts of people to see if the suggestions for driver updates are worth pursuing?
I work very closely with many teams inside the software group, the driver release team, and our performance and QA testing teams to get fixes for any issues as well as some feature enhancements. As we fix issues, we usually send developers a driver with the fix or features they’ve been requesting.
Nvidia's Global HQ is based in Santa Clara in the USA, but it has offices all over the world. Click to enlarge.
When working with developers, a lot of times they want to know things like how to optimally implement the latest and greatest lighting or shadow effects, how to make better use of the hardware’s resources, or why they’re brushing up against certain system limitations, and we provide whatever technical information and recommendations we can to support them.
The way I look at it is that this type of work is the critical foundation of our The Way It’s Meant To Be Played program. It does no good to partner with a developer to add a bunch of cool features or effects to a game through our technology and research if you’re getting a crash every ten minutes of play, or you have some odd corruption on screen all the time. Basics first. This approach we take to the process has been instrumental to our ability to offer some pretty solid and feature-rich drivers.