|AMD's Mac 3D Manager Discusses Graphics Cards & Drivers|
September 30, 2011 | IMG Staff
Interview by Michael Miller and Cord Kruse
Inside Mac Games recently had the opportunity to chat with Advanced Micro Devices' Chris Bentley, the company's Mac 3D Manager. In the first of our two part interview Bentley discusses a variety of topics including AMD's relationship with Apple and Mac game developers, the transition to Apple's new Lion OS, and the design of graphics card and drivers.
Inside Mac Games: Tell us a bit about yourself. How did you get into this industry and how long have you been working at AMD?
Chris Bentley: I took a roundabout route to working on graphics drivers that included studying philosophy, working as a bike messenger, working in a bike shop, teaching daycare and junior high school, and eventually getting a Certificate degree and a Masters in Computer Science. I joined ATI in the Spring of 1996, and have been working on the Mac 3D drivers ever since… 15 years and counting :-)
IMG: What type of work do folks working on the Mac side of things at AMD do? Is it strictly software and driver related adaptations for the chips Apple is using, or do they modify or make any specific designs of their chipsets for Apple hardware?
CB: My team strictly works on the 3D drivers for the Mac. There are other software teams that work on accelerated video playback (H.264), on OpenCL, EFI, etc on the Mac, and then there's a whole hardware organization that works with Apple that I'm mostly blissfully ignorant of. Primarily, my team works on three things: 1) bringing up drivers for new hardware, 2) fixing bugs, and 3) adding support for new OpenGL extensions. On new hardware bringup, our goal is to provide Apple with ready-for-prime-time drivers for whatever hardware they want to ship. With the latest generation of our chips, code named Northern Islands, which are shipping in Apple's 2011 iMacs, MacBook Pros, and Mac Minis, we did a pretty good job providing Apple what they wanted. On bugs, most of the issues we work on are found by Apple's and our manual and automated testing, and are resolved before Apple ships our drivers. Of course, as any of your readers can attest, some regressions slip through the net, and we work hard to fix any bug that users run into. On the feature front, for Lion Apple shipped support for OpenGL 3.2 Core profile. For this we added support for over 16 new OpenGL extensions. This support will start having an impact in Mac games and DCC apps as developers use some of the advanced algorithms enabled by the new extensions.
IMG: Who is primarily responsible for the drivers, Apple or AMD?
CB: The responsibility is shared. Apple's driver stack has a plugin architecture, so Apple writes the top of the stack and vendors like AMD provide hardware-specific plugin modules. Basically the driver stack acts as a translator: it takes in OpenGL calls at the top and emits hardware specific instructions out the bottom. Apple's code handles all the translation that is vendor agnostic, and then hands off to the AMD code to do the last hardware-specific stages. One important thing to mention is that AMD's Mac drivers are not just customized for the Mac, they're written from the ground up to be Mac-specific, with (I believe) just the right pieces shared with the PC drivers so that we're not reinventing the wheel, for example in the area of the Shader Compiler. This is part of our advantage in the Mac space.
IMG: Any particularly interesting anecdotes from dealing with Apple?
CB: You mean like the time an Apple exec pulled me aside and asked me whether I'd recommend ATI or 3Dfx for their upcoming machines? :-)
IMG: Do you work closely with Mac Gaming companies? How often does gaming influence changes or upgrades to cards and drivers?
CB: We work really closely with Mac game developers, especially Blizzard, Transgaming, Valve, Feral, Aspyr, Telltale, and Unity. I type like #$%@, so I'm on the phone with folks from these companies all the time. I sometimes joke that the phone is my best coding tool. Fundamentally, the only way users get a good out-of-the-box (or out-of-the-download) experience is if we work with game developers to resolve issues before the games ship. We worked for over a year with Blizzard on making sure everything worked in Starcraft 2. This included integrating a completely new shader compiler for the Radeon X1600 and Radeon X1900 cards! When Transgaming was working on Command and Conquer: Red Alert 3 they told us they need us to support hardware accelerated texture fetches from within vertex shaders, so we added this support. When Feral shipped Bioshock our QE team practically functioned as an extension of their testing group, feeding back bug reports on the beta hardware and drivers that we had access to. Laminar Research has dropped us beta versions of X-Plane which we have included in our automated test suite, so we can make sure we don't have any performance regressions on any of our nightly builds. The Unity engine folks have done the same thing. Last Spring, when Valve first shipped Steam and Portal on the Mac, benchmark sites quickly found that the Mac version ran really slowly (on hardware from all vendors). We worked intensively with Valve and Apple to resolve the underlying issue and in August Apple shipped the SnowLeopard Graphics Update, which showed up to 2x faster performance in Portal on the 2010 iMacs (http://www.barefeats.com/imac10g.html), and 15-30% speedups on numerous games across almost all Macs with Radeon graphics (http://www.barefeats.com/nehal18.html). So, basically Mac games influence what we do in the drivers every single day.