The November 2014 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 November 2014 Xbox One XDK contains the latest tools and libraries for Xbox One.
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.
Titles shipping on the October XDK and later can use a 7th CPU core
When we shipped the October XDK, we announced a preview feature that allowed titles to choose to disable speech recognition and gain access to between 50% and 80% of the processing power of a seventh CPU core. As of October 22nd 2014, we are pleased to announce that we are removing the “preview” qualifier from this feature and any title planning to ship on the October XDK or later can take advantage of this additional processing power.
For more information, see Accessing a 7th Processing Core.
Audio latency
Beginning with the November recovery (and using October or later XDK libraries), music/rhythm titles requiring lower audio latency can temporarily disable bitstream formats (DTS and Dolby Digital) and switch to stereo PCM output through DisableBitstreamOut.
Xbox One Manager
The following new features and improvements have been made to Xbox One Manager:
Groups (Preview)
You can now create groups of consoles and update the console OS and deploy applications on all consoles in the group. For more information, see Managing Consoles and Groups.
Pair virtual controller with a user
You can are now allowed to pair the Xbox One Manager virtual controller with a user on the console.
Macro visualizations
You are now able to view a timeline and visualizations for gamepad input macros.
The ConsoleExtensions namespace now includes APIs for capturing network traces and controlling network simulations
The Devkit Console Extensions library (Microsoft.Xbox.Tools.ConsoleExtensions) includes new APIs for two networking scenarios. The ConsoleExtensions APIs can now be used to capture network traces and to start and stop network simulations. These capabilities are the same as those available through the xbTrace and xbStress XDK command line utilities.
Improved Intellisense for XDK APIs
IntelliSense will now show you more information about each API in the XDK including information about the parameters for each API call.
Xbapp now supports title or DLC update simulation
This release adds additional options (/m and /a) to the “Xbapp update” command that allows the simulation of title or DLC update availability through the Xbox Live service. For more information, see Application Management (xbapp.exe).
xdk.h now includes _XDK_VER_STRING
We now include a #define for the human readable XDK version in xdk.h. For example:
#define _XDK_VER_STRING "November 2014 XDK"
This #define makes it easier to include human readable version information in your executables.
Improved getting started information
The Getting Started with Xbox One Development section has been updated to make it easier for new Xbox One Developers to get their console and development environment set up.
Improved Error Code information
Information about common error codes returned from Xbox platform and Live APIs has been improved. For more information, see Error Codes for Xbox One APIs and Direct3D 11 Return Codes.
Increased GPU performance
Increased GPU performance when not using Kinect Title Speech Titles that opt out of Kinect Speech, Depth, and IR can get processing time on an additional CPU core and reduce system memory bandwidth used to process Kinect Speech for the title (System Speech will still work). This system reduction in memory bandwidth can also help increase GPU performance by freeing up to an additional 1GB/s of main memory bandwidth.
SetShaderResources methods have been optimized
Methods such as PSSetShaderResources have been improved by up to 2x when fast semantics are enabled, and up to 1.5x when using legacy semantics.
Faster Instrumented version of Direct3D
The instrumented version of Direct3D as enabled through D3D11_CREATE_DEVICE_INSTRUMENTED is now faster and closer to the retail version’s speed.
Multiplayer Improvements
The November Recovery adds Shell support for 2015 Multiplayer game invite, game roster, and join ability mechanics (note the API support for these shipped in the September and October XDKs). Multiplayer services have been updated to include server-to-server shoulder tap support for session changes, matchmaking rule customization improvements, and MPSD now has improved integration with Xbox Live Compute.
Thread Names
The SetThreadName API has been added to allow you to assign a meaningful human-readable name to your title’s threads. Naming your threads makes it much easier to identify them in PIX and compare captures taken at different times. Thread names are currently shown only in Function Summary, Callgraph, and Instruction Trace captures; support for additional capture types will be added in a future release. Titles may also take advantage of the GetThreadName API to enhance the diagnostics that are reported by the game code.
Resource names
A SetName method has been added to the ID3D11DeviceChild interface. This function can be used to assign a meaningful human-readable name with D3D11 objects derived from ID3D11DeviceChild, namely resources. When viewing resources in the Resources view in PIX, associated names will appear in addition to the resource bind slot index.
PIX support for the Seventh Core
System timing captures taken against titles that are using the optional seventh core will now collect events from that core. A seventh core will be visible in the Timeline view for these captures. CPU Profiling captures will also show the 7th core. System Monitor support will be added in a future release.
Context roll diagnosis and state changes in the GPU view
Context rolls can be one of the most pernicious performance problems on Xbox One. It is vital that you have a good understanding of when they are causing performance problems so that you can take steps to eliminate or mitigate their impact. To this end, PIX now reflects state changes between draw events in the GPU state view. Any changes to Context state will cause a Context roll. Additionally, the Basic Information experiment in Dr. PIX now lists the number of context registers changed for a given draw or range of draws when a context roll has occurred.
Cache line analysis in CPU instruction trace captures
The trace summary for instruction trace captures now includes an analysis of cache line usage by your title. This analysis can help you tune your title to make most efficient use of the memory caches. Information presented includes a list of the functions that are loading, reading and writing the most unique cache lines along with details about which portions of your title are impacting which cache lines.
Updates to PIX Capture API and programmatic Callgraph captures
The PIXBeginCapture, PIXEndCapture, and PIXGetCaptureState API have been updated in this release to provide a common interface for initiating all PIX capture types programmatically. Use of the capture API gives you fine-grained control over what parts of the title are captured and is often necessary to capture conditions that are difficult to isolate in the UI. As part of this API change, you can now use these API to create Callgraph captures from your title rather than having to manually initiate them from the PIX UI. Support for additional capture types will be added in a future release.
Initiating Callgraph captures by title function
Up until now, the only way to initiate a Callgraph capture was from a Function Summary capture. Requiring this initial capture could be an issue because a desired function may not show in a particular Function Summary capture. PIX now provides an option that lets you initiate a Callgraph capture by selecting the desired function from a list of all functions in your title.
Vertex shader output
Vertex shader output is now available in the Resources view and Meshes view. In the Resources view, VS Output is now available as a resource type under VS Shaders and shows the output data as raw buffer data. In the Meshes view, Pre-VS and Post-VS options are now available to choose either the Pre- or Post- vertex shader output data for the mesh render.
Display and save of Continuous Audio/Video Captures
Continuous Audio/Video Captures can now be viewed and saved in the new Media Player view in PIX. To use, select a range in the System Monitor graph in the Console view then click the Capture video button in the Media Player view. Captured ranges can then be saved as MPEG-4 (.mp4) files. Additionally, images can be captured from the currently running title and saved through the same view.
Frame event bar in System Monitor
The System Monitor graph in the Console view on the Home tab now includes a frame event bar that demarcates the beginning and end of frames displayed by the title. Clicking on a frame and dragging will select regions of the graph aligned on frame boundaries, which can be particularly useful for selecting regions for Continuous Timing and Audio/Video captures.
Find in Shaders view
You can now search through shaders using Find. Bring up the Find window in any of the four panes in the Shaders view using CTRL-F. Search text will be highlighted throughout the shader and you can navigate between found instances using Find Next and Find Previous buttons.
Launching Windows Performance Analyzer (WPA) from PIX
The captures currently taken using the xbPerf command line tool can now be taken directly from PIX. WPA is launched from PIX with a custom profile that makes it easier to analyze the resulting capture.
Feedback on PIX
Your feedback is important to us! We have now added a prominent Send Feedback button in the upper right corner of the PIX title bar to simplify the feedback process. For this release, clicking this button will generate a new email message for the PIX team using your default mail client. In future releases, we will enable you to share more feedback data about your PIX experience.