Whenever I call Chris Bentley, Mac 3D Manager from AMD, it’s always 10 AM and the questions are heavy: Tell me secrets! Explain quantum mechanics! It’s either one or the other. And put it this way, I don’t know any secrets or understand quantum mechanics. Yet. But what I do know is that AMD is committed developers and they’ve got a great team working to make drivers for OS X better and faster. Score!
My latest batch of questions for Chris is below, so take your seats and read all about drivers and cards for OS X, the challenges, the heartache, and the history of 3D games on the platform.
I will pilfer all of AMD’s secrets from Chris. One day. Not sure about understanding quantum mechanics though…
TMG: What are the challenges of developing drivers and releasing cards for the Mac?
Chris: I think the main challenge of developing 3D drivers and graphics cards for the Mac, stems from the fact that the entire user interface runs through OpenGL.This means that when we are bringing up a new driver for a graphics card, we do more than just get them running and optimized for 3D games.
Before we can do all that, we need to make sure these graphics cards work with such applications as the Finder, Expose, Dashboard, Core Image, Core Animation, Quartz Extreme, Quartz 2D Extreme, Quartz Composer, Photobooth, Front Row, Keynote, Pages, Aperture, Motion, Final Cut Pro, Color, iPhoto, iMovie, iChat AV, and numerous other apps.
OpenGL is at the core of the whole Mac ecosystem. Fundamentally this is a good thing: it benefits driver stability because Apple requires very high-quality drivers since so much depends on them. It also benefits users, because hardware-accelerated OpenGL enables so many of the cool features in the OS; and it benefits us because we get to work in interesting jobs
TMG: How do you think these challenges could be overcome?
Chris: Caffeine, sugar, and sushi.
TMG: What’s Apple’s relationship with games?
Chris: That’s got to be a question for Apple.
TMG: Can you tell us a bit about Cider and what it’s been like supporting it?
Chris: Well, we’ve worked very closely with the folks at Transgaming to make sure Cider runs well on our hardware. They’ve been proactive and very professional in bringing features and bug fix requests to us early in the development cycle, and this has made it possible for us to get the fixes and features into the drivers in time for them to ship their latest games.
For example, Spore has more complex vertex shaders than most of the apps that had previously run on our ATI Radeon X1900 family of chips. About a year ago, Transgaming identified that this would be an issue, so we spent considerable effort upgrading our ATI Radeon X1900 vertex shader compiler code.
Those improvements went live in Apple’s Mac OS X 10.5.5 software update, which is why users needed to install those drivers to get good performance in Spore on the ATI Radeon X1600 and ATI Radeon X1900 chips. We spent close to 12 man-months of effort to make these improvements to the ATI Radeon X1900 drivers, and the whole time we were coordinating with Apple and Transgaming.
Fundamentally, I’m in favor of any technology that brings more titles to Mac OS X. The Transgaming folks are aggressively advancing gaming on the Mac, and they’re great to work with. I think some of the early hiccups that people saw with Cider, were due to the fact that Cider cut the lag time of games coming to the Mac. Frankly, we needed to do some catch-up work on our end to be ready for the features Transgaming was asking us to support.
Now that we’ve done that work with them, it seems to me that the releases of Cider games are going more and more smoothly. To make sure that games work well on ATI hardware on the Mac, we have to work closely with all the Mac developers including Blizzard, Transgaming, Aspyr, MacSoft, Feral, Unity, etc. In my experience, it’s the only way to make things actually work.
TMG: We’ve had huge architectural changes – PPC, Intel, OS X – over the past few years. How have things changed?
Chris: I started working on the ATI Mac 3D drivers in 1996, 12 years ago. Since that time we’ve done the Mac 3D drivers for something like 11 generations of ATI graphics hardware. The Rage II had one pixel per clock running at 60Mhz, 2MB VRAM, immediate mode rendering, no hardware setup engine, one texture unit. The ATI Mac 3D team had one member (me), two test apps (Sneak3View, and Brian Greenstone’s Gerbils), and one shipping game (Havoc from Reality Bytes).
Fast forward to today: ATI has shipped hardware capable of 1.2 TFLops of computing power, running at 750 Mhz, with 512MB VRAM, VAR/VBO render paths, user-programmable shaders, the just-in-time optimizing compiler in the drivers, and now there aren’t just three test cases but hundreds and hundreds.
By my count between 100 and 150 new 3D accelerated games and apps come to the Mac every year, so clearly our testing load is growing with no end in sight. During these 12 years, Mac OS and OpenGL have both been adding features at a furious pace, so the ATI 3D drivers are hugely more complicated than those long ago RAVE drivers, and also the team working on the drivers has grown proportionally.
But at the same time, so much has stayed the same. I look back at my ToDo lists from 1996 and they look exactly the same as my list for this week: call the developer of this or that app or game; try to reproduce a bug; call Apple to coordinate some new feature. The thing that remains constant is that to produce good software, you need a team of people who care about what they deliver. There has to be someone to feel embarrassed by the mistakes, notice the anomalies, work hard for the improvements. We’ve had that for the past 12 years, and hopefully for the next 12 as well.
TMG: How do you guys feel about Snow Leopard and CUDA? You must have something up your sleeves!
Chris: I’m figuring you mean SnowLeopard and OpenCL. AMD has stated publicly that it is embracing OpenCL as the way forward for our efforts in the GPGPU space on both the Mac and on the PC. Together with Apple and other vendors we are members of the Khronos OpenCL working group and are working closely with Apple to support OpenCL across all our capable hardware on macOS X.
TMG: Apple seems to be moving to NVIDIA hardware for its entire lineup. Where does that leave ATI?
Chris: Since Nvidia came to the Mac platform, the pendulum has always swung back and forth between the two companies, and then Intel graphics added a third pole to this oscillation. We’ve had years where ATI supplied the lion’s share of the GPU’s on the platform. I don’t see this oscillation stopping anytime soon.
TMG: Apple doesn’t produce a changelog for driver updates. Any chance we can see something like that in the future?
Chris: That’s another question for Apple.
TMG: ATI cards play better on a Mac. They stabilize Ciderized games and give an all-round good experience.
Chris: Thanks for saying so.
TMG: Current NVIDIA cards are good too, but not for Ciderized games. What are the differences between the ATI drivers and cards compared to NVIDIA’s?
Chris: I’ll talk about our drivers and let Nvidia describe their own. The ATI 3D drivers have always been strong on the Mac, mostly because they were the first drivers brought up on the platform (back with the ATI Rage 128). We worked very closely with Apple, as Mac OS X was first getting developed, and as a result, these drivers did a lot of things correctly within the Mac OS X architecture.
Our graphics hardware became more complex with the ATI Radeon 9700, ATI Radeon X800, ATI Radeon X1900 families of chips. In particular, these chips were programmable via user-supplied shader languages, and consequently, the drivers started including a full-fledged, just-in-time, optimizing compiler. To cope with this complexity, in the drivers for these chips we started leveraging more of the code that was also used by the PC OpenGL drivers.
Check Chris’s Story
With the ATI Radeon HD 2600, and ATI Radeon HD 3870 families of chips. We rewrote some portions of the drivers to eliminate any overhead in accessing the shared PC code. This effort to retool parts of the code presented us with an additional hurdle. When we were first bringing up the drivers, but now that we’ve smoothed off the rough edges. We feel that our latest drivers are the best we’ve ever written. In the latest Mac OS X software updates, 10.5.5 and 10.5.6. We put a lot of effort into making sure they ran well with all the new titles. Which is being developed by Blizzard, Transgaming, Aspyr, MacSoft, Feral, Unity, etc, etc.
Our Quality Engineering team ran a full sweep through over 250 games and apps to make sure users’ programs. Their mandate is basically to grab every beta, every demo, every shipping game, and every Pro app. Then they can find and make sure they run across all our hardware. We’ve also got a battery of 30 automated test machines. That runs a suite of tests on every build we generate (usually one or two a day). These automated tests include game benchmarks to make sure that as we’re adding support for new features and OpenGL extensions, that we’re not losing any performance.
Thanks to Chris for taking the time out to answer my questions.