While the Xbox One software development kit that was leaked online along with documentation by a hacker group last week has its own benefits for developers and software enthusiasts who like to toy around with the the latest console, it is also proving to be quite informative for those who like to keep some know-how about the hardware that powers their latest video game console. The documentation recently revealed some interesting bits about how Microsoft gave more CPU power to the developers, and now, a user has discovered more information related to the Xbox One's GPU.
Xbox One Uses Multiple GPU Command Streams For Low-Latency GPU-CPU Exchange - Has 8 Graphics Contexts in Total
The recent Xbox One SDK leak has publicly revealed some important information that was actually limited to those video game developers that are officially authorized to create apps and video game content for the console. Digital Foundry recently analyzed the leaked development tools and reported that according to the documentation, Microsoft has been providing around 50 to 80 percent power of a seventh processing core of the console's CPU to the developers to use since October 2014. However, it seems like this is not it and the documentation contains more information related specifically to the Xbox One’s graphics processing unit.
A user on Beyond3d forum recently posted some text, which reportedly is a portion of the leaked Xbox One documentation, revealing that the graphics processing unit of the console has eight graphics contexts out of which the console allows a game to use seven. For the uninitiated, a graphics context contains all drawing parameters and device specific information that is used to carry out any successive drawing commands. It holds information about basic drawing attributes such as colors, the area used for clipping, line width and style information, and other important data.
The latest discovery also revealed that the Xbox One supports multiple GPU command streams which hold instructions for compute and rendering. The GPU of the console simultaneously processes both commands, allowing two parallel processes of rendering and compute work, which divide bandwidth from the same resources. The result is a low latency exchange between the CPU and GPU. However, there is not any information on whether developers can manually arrange task types or does the GPU automatically compiles the elements in the queue. This information of course only shows how the Xbox One’s GPU works, and it reveals nothing about how the PS4 manages to reduce latency during the exchange.
Furthermore, the leaked documentation also threw out information about how developers can draw bundles and make use of the command list to enhance the performance of the console’s GPU. However, if a game is GPU bounded, the two methods won’t be of much use, as both of them are recorded using the deferred context, which actually keeps records of graphics commands in a command buffer and allows them to be used at some other time if needed. To improve performance, developers are able to use deferred context with the help of another CPU thread if the game is going through the rendering process, so that the recorded commands can be executed again.