What’s New in the November 2015 Xbox One XDK

The November 2015 release of the Xbox One XDK from Microsoft contains the following new features, tools, and documentation. For features that shipped in a previous release of the Xbox One XDK, see the What’s New document for that release, available from Features Introduced in Previous Releases.

Sections:

Release Notes and Xbox One XDK Updates

The most recent release notes for and updates to the Xbox One XDK can always be found on Xbox One XDK Software Downloads on the Xbox Game Developer site. For access, log in with your ID and password on https://developer.microsoft.com/en-us/games/xbox/partner/index; at the top of the page, point to Development and click Downloads.

You can check with your account manager for the latest information about upcoming Xbox One XDK releases.

Xbox One XDK Version Info

The November 2015 Xbox One XDK contains the latest tools and libraries for Xbox One.

What’s new in the November 2015 XDK

Roadmap

The Xbox One Developer Roadmap on XGD has been updated with projections of developer-facing feature work from the May 2015 XDK through Q3 of 2015. The roadmap is intended to help developers plan their implementation schedules around upcoming feature and tooling efforts for the Xbox One console and related services.

Table of Contents

Developer Tools

Graphics

PIX

Developer Tools

You can now install multiple versions of the Xbox One XDK side-by-side on a development computer
Starting with the November 2015 XDK, you can install any number of XDK versions side-by-side on your computer. This allows you to work on titles that target different versions of the XDK without an uninstall and reinstall.

Important Because of necessary changes that were made to implement side-by-side installation, the November 2015 Xbox One XDK is not compatible with previous versions of the XDK.

Support for Visual Studio 2015 Update 1
Microsoft Visual Studio 2015 Update 1 is now supported for XDK development. To download Visual Studio 2015 Update 1, go to https://www.visualstudio.com/news/vs2015-update1-vs.

Profile Guided Optimization is now available for Visual Studio 2015 projects
You can now use Profile Guided Optimization (PGO) to optimize titles that are built with Visual Studio 2015. PGO is a runtime compiler optimization technology that builds an optimized version of a title by leveraging profiling data that is collected while running important or performance-centric user scenarios. For more information, see Profile Guided Optimization for Xbox One Titles.

Full release of Run from PC deployment
Run from PC Deployment is now a full feature of the Xbox One XDK, and is no longer considered to be a preview feature. Credentials can now be securely added, edited, and listed in the Developer Home on the Console app. In addition, credentials will persist across reboots of the development console.

Developer Home on the Console is now launched from the Developer Settings screen
Developer Home on the Console (Dev Home) is now located on the Developer Settings screen, which makes it easier to launch the app from the console. Dev Home also appears in the list of most recently used apps on the Home screen, which makes it easy to jump back to Dev Home after launching a title.

Graphics

Direct3D 12.x improvements
The following improvements and optimizations have been made to Direct3D 12.x in the Xbox One XDK:

Shader compiler improvements
The intrinsics listed in the following table have been added to the shader compiler.

Intrinsic Description
void __XB_GDS_Write_U32 (in uint addr, in uint value); Writes the specified value to the specified address in the Global Data Share (GDS).
uint __XB_GDS_Read_U32 (in uint addr); Returns the value of the specified address in GDS.
uint __XB_GetEntryM0(); Returns the value of the m0 register upon shader entry. You can use this intrinsic to implement algorithms in the pixel shader that need to know which quads in a wave are loaded from unique triangles.
uint<2> __XB_GetEntryActiveMask64(); Returns the value of the EXEC execution mask upon shader entry.

XHIT improvements
The following improvements have been made to the Xbox Hang Investigation Tool (XHIT):

PIX

New default UI layout for GPU captures
The default layout for GPU captures in PIX has been updated to improve the usability of common workflows. You can still customize your layout as needed; existing customized layouts will not be changed. To use the new default layout if you have a customized view, open the Views menu and then click Revert to default.

The new default layout for GPU captures contains the following tabs:

Shader debugging improvements
The shader debugging experience introduced in the August 2015 Xbox One XDK now includes the option to debug byte code (DXBC) directly, which allows you to debug shaders without shader PDBs. The new Autos window lists all of the active local variables. Vertex shaders can now be debugged when used with GS, DS, or HS.

Note For the best debugging experience, you should continue to use PDBs so that PIX can work with the HLSL source.

GPU timeline bottleneck counters
Dr. PIX bottleneck analysis is now available on the timeline for GPU captures. To use this feature, open a capture, start analysis, and then expand the Bottlenecks section of the timeline. The new bottleneck graph shows the percent utilization of each major GPU component over the duration of the capture. Bottleneck analysis on the timeline can also indicate underutilized areas of the frame (in which the GPU could be doing more work).

Improved GPU analysis performance
The time needed to analyze GPU captures has been significantly reduced by changing the way that PIX transfers data between PIX and development console during analysis. We have also improved the internal speed of PIX, resulting in faster resource queues and Dr. PIX results.

Support for ExecuteIndirect
The Events and Event Details views now support the ID3D12GraphicsCommandList::ExecuteIndirect method.

Native support for D3D12.x packets
PIX now understands D3D12.x command buffer packets natively. These packets are displayed in the Events view. D3D12.x packets can be inspected in detail in the Command Disassembly view.

Readying thread information is now displayed for context switches in Timing captures
When you select a context switch in a PIX Timing Captures, the Callstack view now displays the identifier of the readying thread, the readying thread callstack, and the time at which the readying event occurred. This information will help you determine when and why a particular thread became ready to be scheduled.

Hardware Instruction Profiling captures can now be taken for a specific function
Hardware Instruction Profiling captures now include a dialog box that lets you specify which function to capture. This makes it easier to obtain profiling data for functions that you suspect could be causing significant performance issues.