The October 2016 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 October 2016 Xbox One XDK contains the latest tools and libraries for Xbox One.
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.
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.
New console discovery option for xbConnect
The Connect (xbconnect.exe) command-line tool can now take a /discover argument that searches your local network for Xbox One consoles. The search can be refined to search for consoles with a specified hostname.
Undecorated symbol names when using xbSymbolProxy
The symbol names returned from the Symbol Proxy (xbSymbolProxy.exe) command-line tool and the GetSymbolFromAddress function are now undecorated.
Visual Studio integration improvements
The following improvements have been made to Visual Studio’s integration with the XDK:
Edit and Continue is now supported for XDK development
Edit and Continue (EnC) is now supported for title development in Visual Studio 2015. EnC significantly improves your iteration time for the supported set of edits. For more information about EnC (including required build switches), see the following posts on MSDN:
Source page pool registration and unregistration is now required for ID3D12CommandQueue::CopyPageMappingsX
Before you call the ID3D12CommandQueue::CopyPageMappingsX method, you must now register the source page pool memory with the graphics kernel driver by calling the ID3D12Device::RegisterPagePoolX method. The registered memory cannot be directly freed as the kernel driver owns an additional lock on the physical pages.
To free the source page pool, call the ID3D12Device::UnregisterPagePoolX method to clear all outstanding mappings to the source page pool memory, unlock the pages, and free them back to the memory manager. This call also automatically removes any outstanding mappings from the GPU page tables, performs a GPU TLB flush, and displays an error message in the debug graphics driver.
Note The graphics user mode driver internally calls RegisterPagePoolX and UnregisterPagePoolX for ID3D12Heap objects used as tile pools for the Tiled Resources set of graphics APIs. Similar rules apply at the final Release() of an ID3D12Heap tile pool—any outstanding mappings to the tile pool are automatically removed and an error message is displayed in the debug graphics driver.
D3D12.x titles can now access GPU hardware video decode and encode processing through interop with the D3D11.x runtime
If you want to perform your own video processing, you can now use Direct3D 12.x to access the video decode and encode processing on the GPU hardware. This is accomplished by using a new variant of the D3D11.x runtime which supports only decode, encode, and memory management operations. This change has also been ported back to October 2016 XDK QFE4.
To use this feature, you must create a D3D11.x device with the new D3D11_CREATE_DEVICE_VIDEO_EXCLUSIVE flag. The created D3D11.x device is dedicated to decode/encode processing and is capable of interop with D3D12.x. This device is limited to resource creation and GPU decode/encode (that is, you can’t use it for video processing for color space conversion, for de-interlace, or for arbitrary rendering).
Note NV12 textures in D3D12.x are now created with a 256-byte pitch for compatibility with the D3D11.x memory layout and hardware decode/encode access.
Use of this feature is subject to the following restrictions:
Shader compiler and HLSL tools updates
The following updates have been made to the shader compiler and to HLSL tools in the Xbox One XDK:
float __XB_Sin_F32(float); // v_sin_f32
float __XB_Cos_F32(float); // v_cos_f32
__XBOX_ENABLE_INDEXED_RESOURCE_TYPE_CHECK.PIX now supports HLSL and DXBC shader debugging for Direct3D 12.x
We’ve added support for HLSL and DXBC based debugging for Direct3D 12.x. All three modes of shader debugging are now supported for both Direct3D 12.x and Direct3D 11.x.
GPU crash dump analysis
If the Xbox One GPU hangs, a new hang dump (XHIT) file is created on the devkit. PIX now automatically detects the new XHIT file and prompts you to open or delete it. Opening an XHIT file in PIX displays a summary of the GPU hang, context location with PIX markers, shader disassembly, and other information that will help you troubleshoot the hang.