What’s New in the February 2015 Xbox One XDK

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

What’s new in the February 2015 XDK

Roadmap

The Xbox One Developer Roadmap on the XGD site has been updated with projections of developer-facing feature work from the October XDK through Q1 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

Content Update

Developer Tools

Graphics

PIX

System

Content Update

File Based Content Updates
In this release, the default “Content Update System” for Make Package (makepkg.exe) will switch from CUv1 to CUv2. Both versions of content update are still available to use when creating a package. For more information, see Make Package (makepkg.exe).

Note

  Once a package has shipped to retail customers it must not change between content update compatibility modes as that causes a complete re-download of the entire package. Please ensure that any updates to a title match the Content Update system of the base XVC for the title. The “Packageutil info <xvc-file>” command will give you information about a package, including whether it’s a CUv1 or CUv2 package.

Developer Tools

Xbox One Manager
The following new features and improvements have been made to Xbox One Manager:

Remote Control
The Gamepad Input tab has been renamed to Remote Control and it now includes a live view of what is happening on the console.

Default Console
You can now use Xbox One Manager to view and set the default console for all PC tools.

Advanced multiplayer network traces can now be taken using the ConsoleExtensions APIs
The APIs in the Microsoft.Xbox.Tools.ConsoleExtensions namespace now include the ability to take network traces that include advanced networking operations such as multiplayer. This new capability makes it easier for you to gather the information you’ll need when working with Microsoft to debug multiplayer issues in your title.

Network captures and simulations can now be controlled directly from your title
The portions of the Microsoft.Xbox.Tools.ConsoleExtensions Namespace namespace that provide the ability to take network captures and to start and stop network simulations are now included in the XDK. These APIs allow you to integrate network capture and simulation capabilities directly into to your title rather than requiring the use of the xbTrace tool or a separate shared resource application.

Binary version stamping
  Binaries built with the February XDK forwards contain XDK version information. This information is generated from version information defined in xdk.h. You can view this information using xbVersionInfo. For more information, see Version Information (xbVersionInfo.exe).

New xbVersionInfo command-line tool
xbVersionInfo allows you to determine version information about the XDK your executables were built with and the XDK you currently have installed. For more information, see Version Information (xbVersionInfo.exe).

New XtfGetSystemUpTime API
XtfGetSystemUpTime returns the amount of time in milliseconds that the OS has been running for. For more information, see XtfGetSystemUpTime.

Graphics

First Preview of Direct3D 12.x
Direct3D 12.x is tailored for the ultimate console graphics performance for both CPU and GPU. February 2015 XDK is the first preview of D3D12 for Xbox One exclusive apps and has full support for Standard Direct3D 12 (D3D12 on PC), except for Async Compute, Shader Model 5.1, and ExecuteIndirect. Xbox extensions will be added in future XDK releases with the first release targeted as the first Approved Library that titles can ship on. For more information relating to the Roadmap, see Xbox One Developer Roadmap

Performance Improvements with new SetGpuMemoryPriority API
GPU bound titles can reallocate memory bandwidth from the CPU to GPU as needed with the new SetGpuMemoryPriority API. GPU bound titles have reported up to a 7% increase in frame rate using an earlier prototype version of this API. Note that CPU memory performance will be degraded if your title is not bound by CPU performance, however, based on developer goal the overall net gain may be desirable.

Improved Support for Dynamic Resolution
Titles can maintain steady frame rates by dynamically dropping resolution instead of dropping frames. We’ve added new frame statistics queried by DXGIXGetFrameStatistics and we’ve added a new DXGIXSetFrameNotification API for titles to receive valid frame statistics. We’ve also improved the hardware scalar quality.

PIX

Direct3D 12 capture and analysis support (Preview)
PIX now supports Direct3D 12 on Xbox One. This preview feature includes capture and analysis support for Direct3D 12 titles in PIX. This includes GPU command buffer capture and playback support, D3D API capture support, timing captures, counters and resources inspection for DirectX 12 titles, and Dr. PIX works against titles as well.

This is a preview release and we will continue to enhance PIX support for Direct3D 12 based titles. Over the coming releases we will be adding edit and continue support, HLSL source browsing, and root signature and descriptor table views.

ESRAM optimization (Preview)
Optimizing ESRAM usage is paramount for achieving the best performance on Xbox One. The new ESRAM optimization tool enables you to interactively evaluate different ESRAM layouts and pick the one that provides the best results for your title. You can move resources in and out of ESRAM and quickly get the performance characteristics of the layout.

This is a preview release and we’ll continue to improve the experience in the coming releases.

Multiple performance improvements
We have optimized a number of workflows in this release. Overall iteration time has been reduced with captures by not shutting down the analysis engine on the console between iterations, and only running determinacy tests once per capture file.

We have also added support for using an external USB drive for capturing, so if you attach a fast drive to your development kit PIX will use that as storage for capture files. Actual results may vary, but we typically see improvements of about 10-20% on large captures when using a 250+ MB/s drive instead of the internal drive.

Continuous timing capture usability improvement
While capturing continuous timing data, you can simply mark the area of interest on the live graph, right-click, and select “Get Continuous Timing Capture Data” from the menu. You no longer need to pause the capture to get the timings.

Display resources for draw bundles
The GPU State view now shows CeRAM associated with draw bundles. Previously PIX would only show resource descriptors in the draw bundles. Now PIX shows the contents of the resources used in the Draw bundles as well as null entries, if any. The descriptors are appended with the “(Draw Bundle)” string.

GPU State history
The GPU State view now shows a complete history of a selected register for the captured frame. This includes the past and future values that are either set redundantly (to the same value) or changed (to a different value). It also shows the corresponding Draw Ids that set the register value. The history table reduces the need to scroll up and down and select each draw to check when the register value changed.

New capture type to help you find memory leaks in your title
By matching up memory allocations with their corresponding frees, or lack thereof, PIX can now help you identify places in your title where you allocated memory but forgot to free it. Callstacks for the offending allocations are provided, along with full butterfly view navigation and a graph that shows the amount of committed memory over the duration of the capture.

Build time profiler
The new build time profiler in PIX examines compiler and linker telemetry in MSBuild log files to identify bottlenecks and provide recommended best practices for using the Xbox One compiler and linker.

Integration with the Visual Studio sampling profiler
Trace log captures in PIX have been extended to include support for the Visual Studio sampling profiler. Using this feature you can now take ETL captures and open them for analysis in Visual Studio directly from PIX. These captures are the same as those taken by the xbPerf command line tool.

New File IO Profiling Tools (Preview)
PIX now includes a new capture type that lets you track the file reads initiated by your title. For each read recorded during the capture you can identify the name of the file that was read, the size of the read, the offset within the file of the read and so on. This new capture type is the first step in providing the profiling data similar to what was offered by the File Event Monitor in the Xbox 360’s version of PIX.

Memory cache statistics in CPU Instruction Traces are now displayed per core
  The memory cache simulator has been updated to simulate execution on individual cores. Breaking down cache statistics, including cache misses, by core makes it easier for you to find the places in your title that are impacting the memory caches the most.

System

New BroadcastListener Event and Pull API to check Broadcasting Status
This is an Exclusive apps only API where games can query and listen for broadcast start and stop.