Ex-Naughty Dog Dev Explains Next Generation APIs

Ex-Naughty Dog Dev Explains Next Generation APIs

| Source: GamingBolt Author: Mark Campbell

Ex-Naughty Dog Dev Explains Next Generation APIs

Every PC gamer should be looking forward to the release of the Next generation APIs Vulcan and DirectX 12, hoping that like Mantle before them that they will offer the performance we need to bring PC graphics to the next level, give us higher framerates and more responsive games or just to simply lower the system requirements of future games.

John Hable, a former developer from Naughty Dog, in an interview with Gaming Bolt, explains to us exactly what these Next generation API's will bring to the table.

Just like AMD's Mantle API, Hable explains that the biggest benefits from these next generation API's will be in terms of CPU performance, drastically reducing the CPU requirements for completing the same tasks on current generation graphical API's.

“The short answer is that newer APIs will make the CPU faster, but will probably not have much effect on the GPU,” Hable said to GamingBolt. “The improved APIs change how long it takes for you to tell the GPU what you want it to do, but they have no effect on how long it takes the GPU to actually execute those instructions. “ “If your game is bottlenecked by the CPU, going to DirectX 12 or Vulkan will greatly help your game. But if you are bottlenecked by the GPU then the updated APIs will help little or not at all. Since many PC games are bottlenecked by the CPU, you will see massive gains there. However console games are usually bottlenecked by the GPU so I would not expect significant changes from newer APIs. The GPU is the same regardless of if you are using OpenGL, DirectX11/12, or Vulkan.”

The benefits of next generation API's like Vulkan and DirectX 12 to GPUs will be much more limited, what is improved here is how the CPU can interact with the GPU, though that does not mean that GPU benefits are non-existent.

“Let’s say that you are drawing a cute little family of bunnies. These bunnies are made of triangles and each bunny has its own color map, normal map, etc. With OpenGL or DirectX 11 you would have to describe each of these bunnies one at a time. The first bunny has a red color map. The second bunny has a blue color map. The third bunny has a green color map. And every frame you have to tell the GPU the same thing over and over again.” “DirectX12 and Vulkan are much more efficient. In the first frame, you can describe all the bunnies to the GPU. You tell the GPU that there is a red one, a blue one, and a green one. Then they can all be drawn together. With DirectX 11 and OpenGL you have to describe all the bunnies every frame but with DirectX 12 and Vulkan you can just say “draw all the bunnies”. I’m oversimplifying but that is the idea.”

Next Generation API's will drastically reduce the driver overhead for games, which makes certain tasks like ordering the GPUs workflow possible as previously the CPU/driver overhead would be too great. This is where the benefits for the GPU will come in, as it will be able to work more optimally and have less potential idle time.

“The key idea is that the communication between the application and the GPU is much more efficient. You can convey the same information with less overhead. But the amount of time that it takes to actually render those bunnies is the same. The GPU does not care if the commands came from DirectX 11/12, OpenGL or Vulkan. It takes the same amount of time to actually draw those triangles. But the communication (which takes CPU time) is much faster.” “So if your game is bottlenecked by the overhead of telling the GPU what you want to do, then the APIs are a huge help. This situation happens a lot on PC games where you have a powerful card sitting idle because it can draw things faster than it can be told to draw them. But console games tend to keep the GPU working hard so there are less gains to be made.” “Although the GPU might make some gains along the way. Ideally you would render objects from front to back to minimize the amount of overdraw in a scene. Unfortunately that would have too many state changes and it would take DirectX 11 and OpenGL too long to translate those commands to the GPU. Many games are intentionally making “bad” decisions for the GPU to help out the driver on the CPU.” “For example, let’s say that your bunnies have multiplied and now you have 5 red bunnies, 5 blue bunnies, and 5 green bunnies. For the GPU, the ideal way to render the bunnies is front to back to minimize overdraw. But the cost of telling the driver to do that would be too slow with DirectX 11 and OpenGL.” “Telling the GPU to render red, blue, blue, green, red, blue, etc. would have too many state changes. So you have to render all the red bunnies together, followed by all the blue and green bunnies. With DirectX 12 and Vulkan, the overhead is low enough that we can render the bunnies in the optimal front to back order. Of course I’m oversimplifying and there are other considerations but the point is the same.”

To put things into simple terms, next generation API's will drastically reduce the CPU overhead of games and deliver more limited gains in GPU performance.

Remember that the benefits of these next generation API's do not end here, as at least in the case of DirectX 12 it is created in order to more easily accommodate multi-GPU setups, which will greatly benefit those of us who run multiple GPUs in our systems and make upgrading to an SLI or crossfire setup a much more viable option.

You can join the discussion on Next Generation APIs on the OC3D Forums.

Ex-Naughty Dog Dev Explains what we should expect from Next Generation APIs like DirectX 12 and Vulcan. Are you looking... Posted by OC3D on Monday, 25 May 2015 Ex-Naughty Dog Dev Explains what we should expect from Next Generation APIs. http://t.co/y5pZQchhVX pic.twitter.com/KsbDKwdjxa — OC3D (@OC3D) May 25, 2015

1 - Ex-Naughty Dog Dev Explains Next Generation APIs «Prev 1 Next»

Most Recent Comments