What’s New in the March 2017 Xbox One XDK

The March 2017 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 March 2017 Xbox One XDK contains the latest tools and libraries for Xbox One.

What’s new in the March 2017 XDK

Roadmap

The Xbox One Developer Roadmap on XGD has been updated with the latest projections of developer-facing feature work. 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

Xbox Live

Audio

Developer Tools

PIX

System

Xbox Live

To learn about new updates to Xbox Live, see the What’s New topic in the documentation for the Xbox Live SDK. You can find this documentation under your XDK install location at %XboxOneXDKLatest%\Documentation\XboxLiveSDK.chm. You can also download the Xbox Live help file from the Xbox One XDK Documentation page.

Audio

Windows Sonic (spatial sound, including Dolby Atmos) is now supported for XDK development
The XDK now supports the Windows Sonic platform, which supports spatial sound across all Xbox One consoles and Windows 10 devices, and scales from speakers to headphones. Developers can experience spatial audio sound with the headphones they own using Windows Sonic for Headphones or Dolby Atmos for Headphones. Developers with Dolby Atmos-equipped home theater systems can hear height content over discrete speakers with platform support for Dolby Atmos for Home Theatres. Titles can access Windows Sonic by calling EnableSpatialAudio before creating their first audio endpoint, and the format is available for development kits in the Audio page of the Settings application. Games with bespoke audio solutions can use the spatial sound (ISpatialAudioClient) APIs directly; games that use audio middleware solutions can use plug-ins designed in coordination with leading middleware providers. For more information, see Windows Sonic Overview.

Developer Tools

Support for Visual Studio 2017
The Enterprise and Professional editions of Visual Studio 2017 are now supported for XDK development. For more information or to download Visual Studio 2017, see the Visual Studio release notes page at https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes.

Pull Deployment is deprecated
Pull Deployment is now deprecated. We recommend that you use Run from PC Deployment in your title. If you have issues while migrating to “Run from PC” deployment, please contact your DAM for assistance.

Dev Home is now the default home experience on development consoles
Development consoles now launch Developer Home on the Console (Dev Home) as the default home experience. This lets you get right to work without the need to click through from the retail Home screen. Dev Home now includes a quick action to launch the retail Home screen. Also, a new setting allows you to make Retail Home the default experience.

New Dev Home user interface
The Dev Home user interface now includes the following productivity enhancements:

Simplified out-of-box experience for developers
First-time setup for dev kits has been simplified and automated. This improvement applies to dev kits in both retail mode and development mode.

Development console certificate renewal improvements
Dev kit certificate renewal now occurs more frequently and the expiration time has been extended. You can view the current certificate status in Dev Home.

Unattended dev kit setup
You can now create setup scripts in Xbox Device Portal and run them on a dev kit. These scripts can automate common tasks such as console OS recovery and settings configuration, as well as adding and signing in users.

New C++/WinRT language projection
The March 2017 Xbox One XDK includes the first production-ready version of the C++/WinRT language projection headers for Xbox One. This release also includes new C++/WinRT versions of the D3D11Game and D3D12Game templates which build without using C++/CX (that is, using the /ZW switch). For production-ready versions of the C++/WinRT headers for UWP apps, see https://github.com/Microsoft/cppwinrt/releases/tag/february_2017_refresh.

Note If you are currently using the C++/WinRT preview that shipped with the October 2016 XDK, get information about breaking changes at https://github.com/Microsoft/cppwinrt/blob/master/Breaking%20Changes.md.

WDP for Xbox enhancements
The Windows Device Portal (WDP) now includes the following enhancements:

New /Tools switch for xbVersionInfo
The Version Information (xbVersionInfo.exe) command-line tool now has a /Tools switch that will report the version of XDK Tools that is installed on your PC.

Monitor debug output and manage crash dumps with xbWatson
The xbWatson tool is now available on Xbox One. This popular utility from Xbox 360 development allows your development PC to monitor system-wide debug output coming from an Xbox One console. It also allows you to collect triage, heap, and mini dumps.

PIX

Memory captures now show data types for heap allocations
Memory captures have a new view that identifies the data type associated with each heap allocation. This new view shows details of the allocated type as well as a full layout of the structure. Type information is shown for all allocations made using the default heap and for any function decorated with __declspec(allocator).

Support for /debug:fastlink in Function Summary and Callgraph captures
The /debug:fastlink linker option decreases your link times by distributing some of the symbolic information in individual .obj files rather than collecting it all into one single PDB. Function Summary and Callgraph captures can now be taken from titles built with this linker option.

Composite Counters are now available in Function Summary and Callgraph captures
Composite counters are values computed from the values of multiple PMCs. To enable these composite counters, right-click the events list in a Function Summary or Callgraph capture and click the appropriate option in the context menu. This release includes the composite counters listed in the following table.

Composite counter Computed as
Clocks per Instruction (Absolute Duration) / (Retired Instructions)
Instructions per Data Miss (Retired Instructions) / (Data Misses)
Data Miss Weighted (Data Misses)2 / (Retired Instructions)
Instructions per Branch Mispredict (Retired Instructions) / (Branch Mispredicts)
Branch Instructions per Branch Mispredict (Branch Instructions) / (Branch Mispredicts)

Loop identification in Instruction Trace captures
The Callgraph tab in Instruction Trace captures now includes a filter that lets you easily see which functions in your title contain loops. To view your source code or jump to the Memory Map tab (to drill in to the next level of detail), right-click a function that contains a loop and click the appropriate option in the context menu.

Thread name enhancements for Timing captures
If you haven’t used the SetThreadName function to name a thread in your title, PIX will now display the name of your thread proc rather than the thread ID in timing captures. This change makes it much easier to identify your threads while looking at a capture.

Improved shader debugging
The shader debugger in PIX has the following new improvements in this release:

System

Intelligent Delivery
Intelligent Delivery is a set of features which allow you to install specific assets depending on the language setting of the console, the device type (such as Scorpio or Durango), and other custom specifiers that your title selects. It also allows you to declare parts of your package which are installed only when prompted by your title. For more information, see Intelligent Delivery.

Support for multi-disc titles
As part of Intelligent Delivery, Xbox One now supports installation from multiple discs. Please note that full end-to-end support for multi-disc titles is not yet supported in the shell.

You can now detect whether your title is running on Scorpio or Durango hardware
The new GetConsoleType function determines whether your title is running on Scorpio or Durango hardware. In addition, the AnalyticsInfo.DeviceForm property is now supported on Xbox One.

New Xbox One Windows Error Reporting (WER) functions
The new WerRegisterFile and WerUnregisterFile functions allow you to specify additional crash artifacts (such as game logs) to be collected at crash time, along with the crash dump file.