Q+A: Nvidia and AMD talk up DX11

Come in thread one, your time is up

Most games developers are only now really getting their heads around the intrinsic difficulties of multi-threading their engines to make use of dual-core, triple-core and quad core CPUs, and then along comes DirectX 11 and makes the whole affair much easier for them. Spoil sports.

Tony says:

"Multi-threading is really a driver level thing, which means the core runtime can spread itself across the CPU cores better. It's inefficient and fairly awkward to do that with the existing DirectX, but with DirectX 11 it will be quite easy to maximise the benefit of multi-core systems.

"This will help GPUs, because in many cases they're so fast, apps are limited by the CPU, not the GPU. Even if you added more CPU cores you wouldn't be able to make it go any faster.

"DX11, on the other hand will let you make better use of both."

Richard says:

"We've found that for about 50 per cent of games developers, multi-threading is the number one most attractive feature of DirectX 11. It's a case of 'If I just recode in DX11 and use the multithreaded display lists I can get an average of 20 per cent extra performance?'

"If you're struggling, as many games developers are, to use more than a single core DX11 makes the missing cores easy to get at.

"Not only are the terms of DirectX 11 multi-threaded, but most importantly, when you talk to DirectX through one CPU core that very often becomes the bottleneck. Now you can talk to it from all of the CPU cores and they can push data to the graphics card more efficiently.

"That's a purely software benefit that anyone with DirectX 9 or above hardware can enjoy."

You will be tessellated

The most significant image quality advancement in DX11 is the requirement for hardware accelerated tessellation.

With this, a graphics card can rebuild extraordinarily detailed models from a low-polygon count mesh and surface information like displacement maps, but adding in the missing polygons on the fly.

It should eliminate the difference between the beautiful characters and scenery artists design and the pointy headed models that make it into the game.

Tony says:

"In my opinion, the tessellation shader feature is probably the most important new feature outside of GPGPU.

"All previous attempts to do some form of tessellation in games were basically fixed function and pretty constrained. They had a large number of issues associated with them and almost no adoption as a result.

"So with the tessellation shader in DirectX 11, if developers want to do higher order surfaces they can essentially use whatever surface formulation they want to code up, say for example a subdivision, and run that on GPU so there are some nice benefits that accrue.

"One of the things about putting tessellation in a game, though, is that you have to change your production pipeline a fair bit, because every game engine is based off of tessellated polygons and not surfaces. So to take a simple example, if you have a character in a game and you want to shoot him, you need to do a hit test against that polygonal mesh.

"In a world with higher order surfaces, the representation for that character is actually a mathematical equation of surfaces, which could be curvy or bumpy.

"So a hit test has to be done in quite a different way, because you have to resolve the result of that surface equation test before you can decide whether the bullet has hit the character or gone pinging off somewhere else.

"The issues and the technology are pretty well understood. Higher level surfaces have been used in film production for a decade, but implementing the process in a game is still going to take some time.

"You're likely to see it used for the detail work, where today people use bump mapping or parallax mapping, they'll be able to go to true displacement mapping and use higher surfaces for character detail.

"That'll happen quickly, but pervasive use of tessellation throughout the pipeline is a philosophical shift in the way things work and will take a lot longer."

Richard says:

"For at least half of this decade I've been talking to games developers about how one day we were going to give them sub-division surfaces and displacement maps.

"And I remember back in 2000, when I worked for Nvidia, I talked to games developers about how the next generation would get halfway to supporting sub-division and displacement.

"There was no chance. It turned out to be much, much harder than we thought back then. One good way of getting close to sub-division is tessellation. You take a single triangle and you smash it up into thousands of pieces and use a displacement map to put back all the surface detail that the artist has had to squeeze out to get it onto the PC.

"We're starting to see content generated by games developers that take a parallax occlusion map, which is essentially height displacement information for a surface, and interpret that as detailed information for a tessellator.

"You can take a surface which was bump mapped, and now you can reconstruct it. It was just a lighting trick before, which was a bit lame and didn't work with antialiasing, which now you can reconstruct as geometry as finely as you want.

"If you use tessellation where you didn't used to tessellate, you'll see a performance hit. But parallax occlusion mapping or bump mapping or any of the other techniques requires some extra maths per pixel, and the tessellation code runs per primitive – or vertex – which is typically lower frequency than the pixel frequency.

"So you get this odd situation where tessellation is slower than not using tessellation, but using tessellation with a parrallax occlusion map, which you are using to control how much you tessellate is faster than parrallax occlusion mapping, because that actually uses incredible amounts of mathematic calculations.

"By comparison, tessellation is a doddle. We're wildly, insanely excited about tessellation."

Once bitten?

There are two reasons we suspect DX11 isn't being shouted about. First off, no-one wants a repeat of the DX10 hype fiasco, with just six disappointing games in the first six months using it.

Secondly, not as many people care about graphics any more: the latest games don't look very different to the DX9 generation.

Tony says:

"DX10 got a bad rap because it was overhyped, but that goes for every generation of graphics API. There's always been a gap between the API and chip launch and the arrival of games for it.

"It takes time for developers to produce that content, and I don't think DX10 was really any better or worse, other than that it was strictly tied to Vista, so developers took the pure, available market perspective into account when deciding whether or not to code for DirectX 10."

PC Format: A lot of people look at current DX10 games and think graphics tech hasn't improved much since the DX9 days. Is it dual development for consoles that's holding engineers back?

Tony replies:

"I wouldn't draw that conclusion myself. If you look at, say, Crysis or Far Cry 2 on a PC and turn all the effects up it looks pretty fantastic compared to any console. That's a function of the GPU capabilities as well as the general horsepower of the PC as a platform. For first-person games or strategy games, the PC is still the platform of choice and is leaps and bounds ahead of the console."

Richard says:

"The real danger moment for DX10 was when it became clear that Crysis could be run in DX9 mode and almost everything looked the same as it did in DX10; that was just a disaster.

"Microsoft will not let that happen again – and I don't mean that they'll hide it better, I mean that they'll make sure there's a real differentiation.

"Sub-div surfaces have been the way Hollywood has created effects – like Gollum in Lord of the Rings – for ten years, and we can do that now, virtually, in real time.

"With DX11 you'll be able to do a comparison between the previous and the current stuff and it will stand up to a detailed analysis of whether it's different or not."