The August 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:
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.
The August 2015 Xbox One XDK contains the latest tools and libraries for Xbox One.
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.
Support for Windows 10
The August 2015 Xbox One XDK is the first release to support Windows 10 as a development platform.
Support for Visual Studio 2015
The RTM versions of both the Professional and Enterprise editions of Visual Studio 2015 are now supported for Xbox One XDK development.
Note The August 2015 XDK does not support pre-release versions of Visual Studio 2015. You can download the release version of Visual Studio 2015 from https://www.visualstudio.com.
Xbox One Manager
The following new features and improvements have been made to Xbox One Manager:
Initiate a factory reset
You can now initiate a factory reset on a console or a group of consoles in Xbox One Manager. To initiate a factory reset, right-click a console or group and then click Factory Reset in the context menu. This is the equivalent of running Clean (xbcleanup.exe) with the /F option.
Uninstall all developer-installed apps
You can now uninstall all developer-installed apps on a console or a group of consoles in Xbox One Manager. To uninstall all developer-installed apps, right-click a console or group and then click Uninstall All Applications in the context menu. This is the equivalent of running Clean (xbcleanup.exe) with the /U option.
Remove all registered consoles and custom groups
You can now remove all registered consoles and custom groups from Xbox One Manager. To remove all registered consoles and custom groups, open the File menu, click Restore Defaults, and then click Remove All Consoles and Groups.
Developer Home on the Console (Preview)
Developer Home on the Console (Dev Home) now includes the following features:
Note Development of this preview feature is in progress. Please continue to submit feedback for this feature on the Entertainment Developer Forum or at Xbox One Developer Feedback.
Simulations of the seventh core are now available using xbStress
Titles that take advantage of the seventh processing core can now use Stress (xbstress.exe) to simulate the loads that the system places on that core. These simulations will help you determine the amount of work that you can safely schedule on the seventh core without impacting the performance of your title.
Updated version of the Make Package (makepkg.exe) tool
The August 2015 Xbox One XDK and the August 2015 Tools XDK include a new version of the Make Package (makepkg.exe) tool. This new version runs in user mode (a command prompt with administrator privileges is no longer required), does not require installation of a kernel-mode driver, and removes compatibility problems with other software that interacts with the Windows file-system configuration of your computer (such as search indexing software and antivirus software).
In addition, the new version of makepkg.exe contains the following improvements:
Direct3D 12.x improvements
The following improvements and optimizations have been made to Direct3D 12.x in the Xbox One XDK:
Direct3D 11.x improvements
The following improvements and optimizations have been made to Direct3D 11.x in the Xbox One XDK:
Shader compiler improvements
The following updates have been made to the shader compiler:
uint<> __XB_WaveOR(in uint<> x);
float<> __XB_WaveMin_F32(in float<> x);
float<> __XB_WaveMax_F32(in float<> x);
uint<> __XB_WaveMin_U32(in uint<> x);
uint<> __XB_WaveMax_U32(in uint<> x);
int<> __XB_WaveMin_I32(in int<> x);
int<> __XB_WaveMax_I32(in int<> x);
uint<> __XB_WaveAND(in uint<> x);
float<> __XB_WaveAdd_F32(in float<> x);
uint<1> __XB_S_BCNT0_U32(in uint<1> x); // S_BCNT0_I32_B32;
uint<1> __XB_S_BCNT0_U64(in uint<2> x); // S_BCNT0_I32_B64;
uint<1> __XB_S_BCNT1_U32(in uint<1> x); // S_BCNT1_I32_B32;
uint<1> __XB_S_BCNT1_U64(in uint<2> x); // S_BCNT1_I32_B64;
uint<1> __XB_S_BREV_U32(in uint<1> x); // S_BREV_B32;
uint<1> __XB_S_BREV_U64(in uint<2> x); // S_BREV_B64;
uint<1> __XB_S_BSET0_U32(in uint<1> x); // S_BITSET0_B32;
uint<1> __XB_S_BSET0_U64(in uint<2> x); // S_BITSET0_B64;
uint<1> __XB_S_BSET1_U32(in uint<1> x); // S_BITSET1_B32;
uint<1> __XB_S_BSET1_U64(in uint<2> x); // S_BITSET1_B64;
uint<1> __XB_S_FF0_U32(in uint<1> x); // S_FF0_I32_B32;
uint<1> __XB_S_FF0_U64(in uint<2> x); // S_FF0_I32_B64;
uint<1> __XB_S_FF1_U32(in uint<1> x); // S_FF1_I32_B32;
uint<1> __XB_S_FF1_U64(in uint<2> x); // S_FF1_I32_B64;
uint<1> __XB_S_FFO_U32(in uint<1> x); // S_FLBIT_I32_B32;
uint<1> __XB_S_FFO_U64(in uint<2> x); // S_FLBIT_I32_B64;
uint<1> __XB_S_FOSB_U32(in uint<1> x); // S_FLBIT_I32;
uint<1> __XB_S_FOSB_U64(in uint<2> x); // S_FLBIT_I32_I64;
The new uint __XB_MBCNT64(uint2 mask) intrinsic returns the count of all nonzero bits below the current lane index in the value of the mask parameter. This intrinsic uses the logic in the following code example.
C++
uint laneID = __XB_GetLaneID();
uint2 laneMask;
laneMask.x = laneID >= 32 ? ~0 : ((1 << laneID) - 1);
laneMask.y = laneID < 32 ? 0 : ((1 << (laneID - 32)) - 1);
uint mbcnt = countbits(mask.x & laneMask.x) + countbits(mask.y & laneMask.y);
XHIT
The Xbox Hang Investigation Tool (XHIT) now dumps shader disassembly.
Updates to graphics samples
The following graphics samples have been updated on the Samples page of the Xbox Game Developer (XGD) site:
Vertex, pixel, and compute shader debugging (Preview)
The August 2015 version of PIX introduces debugging for vertex shaders, pixel shaders, and compute shaders. PIX must be able to locate the PDBs for these shaders to debug them; the HLSL Symbols sample on XGD demonstrates how to save PDBs to disk and make them available to PIX.
Note This is a new feature in the Xbox One XDK. Please submit feedback for this feature by clicking the Feedback button on the PIX title bar.
Hardware Instruction Profiling capture (Preview)
The new Hardware Instruction Profiling capture type leverages AMD’s Instruction-Based Sampling (IBS) profiler technology to display performance counter information for each assembly instruction. Unlike the Performance Monitoring Counters (PMCs) displayed in PIX, IBS reports counters with no drift—counter values can now be attributed to the exact instruction that caused the event to occur.
Note This is a new feature in the Xbox One XDK. Please submit feedback for this feature by clicking the Feedback button on the PIX title bar.
Simplified editing of the user interface layout
Creating and editing user interface layouts in PIX has been simplified. The view editor has been replaced with drag-and-drop editing similar to layout management in Microsoft Visual Studio.
Summary tabs for Memory, Callgraph, and Function Summary captures
Memory and CPU captures now contain a Summary tab that allows you to quickly identify the top performance issues in your title. The Summary tab for Function Summary and Callgraph captures lists the five functions that took the most time to execute. The Callgraph capture summary also displays the most expensive call path. Memory capture summaries provide memory allocation statistics for calls to the VirtualAlloc and HeapAlloc functions.
Performance and usability improvements to Instruction Trace captures
Instruction Trace captures now load much faster. These captures now also have a much more responsive user interface and the ability to control the number of items identified in the memory cache statistics on the Summary tab.
Improved integration between your title and Memory captures
The new PIXRecordMemoryAllocationEvent and PIXRecordMemoryFreeEvent functions allow you to report memory allocations and frees performed by custom routines in your title. All allocations and frees reported from your title are now included in memory captures taken from PIX, which gives you a clearer picture of how your title uses memory.
Async compute and DMA commands are now captured by default during GPU captures
Async compute and direct memory access (DMA) commands are now captured by default during GPU captures (both in PIX and programmatically). You can disable capture of async compute or DMA commands in the PIX Settings menu. You can also programmatically disable capture of commands by passing the D3D11X_PIX_CAPTURE_ASYNC_COMPUTE_AS_CPU or D3D11X_PIX_CAPTURE_DMA_AS_CPU flag to the PIXGpuCaptureNextFrame or PIXGpuBeginCapture method. During playback, the effects of disabled commands will be emulated by CPU memory modification.
Note Because previous XDK releases did not support disabling capture of async compute or DMA individually, disabling either async compute or DMA capture for titles running on an older XDK will disable capture of both async compute and DMA commands.
Ability to reposition toast notifications
You can use the new ISystemUIStatics8::SetNotificationPositionHint method to provide a hint for where the GameOS should position toast notifications such as game invites and achievements. If the hint location currently contains system UI elements, the notification will be positioned in the default location, which is BottomCenter (the bottom of the screen, in the center). You should not provide a hint for the upper-left corner, as that is the location that will be used by the Cortana UI.
Note The SetNotificationPositionHint method will have no effect on the toast notification position until the November 2015 release to retail consoles. This method requires you to install the August 2015 or later recovery on your development console; calling this method on an older recovery will throw an exception.