Adrian Courrèges Dissects a Grand Theft Auto Frame

To turn back to technical topics — Adrian Courrèges has done an amazing job of deconstructing and explaining exactly what goes into rendering a frame of Grand Theft Auto 5.

This is a phenomenal piece of work. Not only does it deconstruct how a frame is rendered but it does so in a way that is approachable by people who are not necessarily graphics programmers. That’s not to say that people who don’t know the ins and outs will walk away with the ability to implement an engine like the one employed by GTA but, rather, that they can walk away with a basic understanding of the ingredients. These are the eggs that make the omelet.

Adrian concludes:

All in all there were 4155 draw calls, 1113 textures involved and 88 render targets.

That’s a lot of eggs. Adrian does a terrific job of explaining how it all fits together.

Ben Thompson on Apple


Thompson tears apart the fears of iPhone growth slowing narrative with compelling arguments. The gist is that smartphones are increasingly becoming the most important piece of technology people interact with.

Regarding the Macintosh.

Indeed, the Mac remains one of the strongest arguments for the iPhone’s continued success; there is precedent for a higher-priced OS-differentiated product housed in the best hardware outgrowing the competition in a saturated industry for years, and it just so happens to be made by the same company.

The rest of the PC industry is collapsing while Apple is still making money. If anything you’d think that might be a sign. Yet so many are hooked on the idea that when history repeats itself it does it in exactly the same way. That’s not how history works. History is perspective.

As Thompson points out in this piece, there are a number of issues that should trouble Apple. Unprecedented success with a product that remains top of class around the world and sells like hotcakes isn’t one.

Some time ago I culled a bunch of feeds I’d been following from my RSS reader and subscribed to the Stratechery newsletter. Asking for email isn’t something I often do. I don’t regret it. Ben’s thoughts are one of the first things I read in the morning. They’re sharp and well argued. I don’t always agree with his assessments but that’s exactly the kind of person you want to be reading more from.

Clang is the Next WebKit

Over the years Apple has made some big bets on different technologies. They’ve had a great run for the past twenty or so with only a few stumbles. Objective-C garbage collection, 64bit Carbon, and whatever it was they were using before they started using CUPS come to mind.

The hits have been huge though. One of the biggest hits has turned out to be WebKit. Initially a bit of an upstart project built off KHTML and KJS, WebKit has come to rule to roost as the most used rendering engine in the world. A lot of hard work, brains, and elbow grease went into making WebKit what it is today. It reached such broad acceptance by being good at what it does, fast, understandable, modifiable, and compact enough to fit into the first iPhone.

Clang appears to be following the same path that WebKit has. Apple switched over to Clang years ago and the pace of development of Objective-C accelerated immediately. A few years ago Clang became the default compiler for FreeBSD, displacing GCC. In early May Microsoft announced that they’re Bringing Clang to Windows. According to The Register, Microsoft will have a release of Visual Studio that uses Clang as the front-end to their compiler in November.

The “front-end” part is interesting. There are a number of stages when compiling a program and the first stage is taking in the code written by the developer, teasing it apart into logical units, and transforming those units into a form that is more easily digested and optimized by the subsequent stages. The front-end of a compiler is, more or less, the user interface a computer language presents to a developer. By adopting just the front-end Microsoft can continue to use their “back-end” compiler to target specific platforms and architecture. This is smart, good, and a terrific example of open source software at its very best. It helps, in a small way, to make software development easier.

Swapping out the back-end of the compiler for their own is akin to someone adopting WebKit and swapping out the JavaScript engine for something that suits them better. This may seem like cherry picking just the bits that suit Microsoft best but that is exactly the point of Clang and of the more liberal open source licenses.

A Clang front-end that is the face to many different operating systems and platforms is a good thing across the industry. Just as an established web publishing standard is a good thing. Will things change? Will Clang eventually be the one at the table clinging on to backwards compatibility? Maybe. It could happen. But for now Clang is the wind picking up and platforms are setting their sail to it.

As WebKit did for the web I believe Clang will exert a concerted, directed, opinionated, and powerful force upon the native development world.