Microsoft gives more CPU power to Xbox One developers
SDK leak reveals game-makers now have access to a seventh processing core.
Over the Christmas break, hacking group H4LT leaked the November 2014 Xbox One development tools, firmware and documentation, giving us a fascinating insight into the evolution of the console since its inception. The latest upgrades rolled out reveal that game-makers now have access to a seventh CPU core, as Microsoft continues to roll-back the background system reservation, giving more processing power to game-makers.
Up until recently, both Xbox One and PlayStation 4 have reserved two entire CPU cores (out of eight available) in order to run the background operating system in parallel with games. Since October, Microsoft has allowed developers access to 50 to 80 per cent of a seventh processing core - which may partly explain why a small amount of multi-platform titles released during Q4 2014 may have possessed performance advantages over their PS4 counterparts in certain scenarios.
However, there's no such thing as a free lunch, and the additional CPU power comes with conditions and trades attached - however, there is the potential for many games to benefit. Firstly, developers need to give up custom, game-specific voice commands in order to access the seventh core at all, while Kinect's infra-red and depth functionality is also disabled. Secondly, the amount of CPU time available to developers varies at any given moment - system-related voice commands ("Xbox record that", "Xbox go to friends") automatically see CPU usage for the seventh core rise to 50 per cent. At the moment, the operating system does not inform the developer how much CPU time is available, so scheduling tasks will be troublesome. This is quite important - voice commands during gameplay will be few and far between, meaning that 80 per cent of the core should be available most of the time. However, right now, developers won't know if and when that allocation will drop. It's a limitation recognised in the documentation, with Microsoft set to address that in a future SDK update.
Across most gaming applications, GPU power takes precedence over CPU, but it must be remembered that both PS4 and Xbox One are based on x86 processors designed primarily with mobile and low-power applications in mind, and don't compare favourably with desktop PC chips in terms of raw performance. With processing resources at a premium, clearly the more CPU power given to console developers, the better. The ability to tap into more processing power could perhaps explain why Assassin's Creed Unity runs smoother on Xbox One than it does on PS4, and also why traffic-heavy junctions in GTA 5 see a smaller hit to performance on the Microsoft console. It may also explain this curious presentation slide from the developers of ACU, showing a 15 per cent CPU advantage to Xbox One compared to PS4.
The slide is interesting on two counts. It demonstrates performance of Ubisoft's cloth simulation code running on CPU from one generation to the next, showing that good utilisation of the PS3 Cell processor produces better performance than the same code running on the PS4 CPU. Also interesting is that the Xbox One CPU hands in a 15 per cent performance boost over its PS4 equivalent - something that cannot be explained by Microsoft's 9.4 per cent CPU clock speed advantage (1.75GHz vs 1.6GHz) alone. Could Ubisoft already be using the additional CPU time?
It's an interesting theory, but the timing of the presentation (August 2014 - two months before the new feature was added to the SDK) suggests not. Speaking to a prominent developer, one potential explanation is that differences in code compiler efficiency might favour Microsoft's console right now. How the availability of a seventh processing core will affect game performance going forward remains to be seen. Certainly, the whole point of Ubisoft's presentation is that moving CPU tasks to GPU is the future, and in this respect, it is the PS4 that is in the driving seat. Based on the single example Ubisoft's presentation provides (and it's worth stressing that all of these numbers are derived from just one piece of code), PS4 is almost twice as fast.
In the here and now, the SDK documentation leak is certainly worthy of further study - it's a fascinating window into how Xbox One games are made and how to get the most out of the console's unique hardware structure. It also contains a complete timeline of the programming environment's progress all the way from its inception on alpha hardware way back in April 2012 - almost three years ago now. It also outlines the very rapid development and optimisation of the custom GPU driver - much maligned in the run-up to launch, but clearly the subject of intense improvement in 2014.
In terms of the leak itself, there have been suggestions that the release of the SDK could pave the way to Xbox One 'homebrew', with the implication that the console's security has been in some way compromised. In particular, the documentation's detailing of Windows-specific code containers has been singled out. The truth is that Xbox One is just as secure now as it was before the leak. Developers have zero access to the encryption technologies used to prevent console piracy, and while the documentation includes instructions on how to turn retail consoles into development hardware, the process doesn't work without server-side authentication which homebrew enthusiasts are unlikely to get from Microsoft. In short, while the SDK will allow developers to write code and compile it, they will have no target hardware to run it on without a comprehensive hack of the Xbox One console itself.