Xbox One GPU Has 8 Graphics Contexts, Uses Multiple GPU Command Streams To Reduce CPU-GPU Latency

Leaked Xbox One SDK document reveals more information about the console’s GPU.

Posted By | On 04th, Jan. 2015 Under News | Follow This Author @GamingBoltTweet


xbox one amd

During the Holidays, a hacker group leaked out the Xbox One SDK along with its complete documentation. The documentation revealed a few interesting tidbits such as Microsoft giving a 7th CPU core for developers to use and the different kind of updates such as graphics driver optimization that the Xbox One has received in the past. However it seems there are more details in the documentation, specifically related to the Xbox One’s GPU.

Discovered by a user on Beyond3d forum who pasted text from what seems to be from the SDK documentation, it has been revealed that the Xbox One GPU has eight graphics contexts. For those who are unaware, a graphics context consists of all drawing parameters and information to carry out commands related to drawing. It essentially consists of basic information such as color, width of the line, styling data and other relevant data. The Xbox One allocates seven of such graphics contexts to games.

It was also revealed that the console supports multiple GPU command streams which consists of instructions for rendering and compute. Both commands pass through the GPU simultaneously which allows to have two parallel processes of compute and rendering work, which share the same bandwidth resources. This results into a low latency exchange between GPU and CPU. However we are not sure whether developers can explicitly push one task type ahead of the other or whether the GPU automatically prioritizes the queue elements.

It must be noted that we are not sure whether the PlayStation 4 follows a similar implementation as the Xbox One. It will be rather intriguing to know how the PS4 reduces latency during CPU-GPU exchange.

Moving ahead. The document also revealed about how developers can use command lists and draw bundles to improve CPU performance, however these two methods won’t help much if a game is GPU bound. Both methods are recorded using deferred context. Deferred context is essentially keeping records of graphics commands in a command buffer so that they can be used at some other time as per requirement.

So if a game has already entered in rendering mode, but there are other rendering tasks which can be run parallely, developers can use deferred context using another CPU thread. The commands are then recorded and are executed using immediate rendering later. This same process can be supported multiple times over multiple CPU threads, thereby improving performance.


Awesome Stuff that you might be interested in

  • XanderZane41

    Greatness is coming!!!

  • Graeme Willy

    They talked about the ‘command streams’ or ‘command processors’ back at HotChips 2013 presentation, but didn’t elaborate on them. Engineers and programmers had to work out the information on their own to establish that one use for these, will undoubtedly be Microsoft’s interpretation of HUMA, but that their use can be more as well. There are things in the Xbox that will finally see being used, come DX12 or after.


 

Copyright © 2009-2015 GamingBolt.com. All Rights Reserved.