The July 2013 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.
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 current Xbox One XDK exclusively supports beta hardware. Also, all new features of Xbox Live will be available only to beta hardware.
Official support for alpha kits ended on May 1, 2013. As of this time, we no longer provide technical support for development with alpha kits nor guarantee that alpha kits can connect to Xbox Live.
Change to Calling SecureDeviceAddress
The July 2013 Xbox One XDK introduces a change to working with SecureDeviceAddress. Instead of manually encoding the byte array returned from SecureDeviceAddress::GetBytes as Base64 developers can now just call SecureDeviceAddress::GetBase64String to encode a secure device address as an opaque Base64 string. This is useful when transmitting SecureDeviceAddresses to Xbox Live multiplayer services. SecureDeviceAddress::FromBase64String can be used to instantiate a SecureDeviceAddress when receiving such an encoded string from these services.
All Metrics Available from MeasureQualityOfServiceAsync
In the July 2013 Xbox One XDK, all metrics are now available when using MeasureQualityOfServiceAsync. These include latency and bandwidth. Timeouts, probe limits, and bandwidth limits are also now functional in this API.
Preview Version of Direct3D Monolithic Runtime
The July 2013 Xbox One XDK includes a preview version a slimmed down Direct3D runtime combined with the user-mode driver (UMD). Dubbed D3D Monolithic, this version of Direct3D is intended to evolve stock Direct3D to be more console-specific by removing extraneous functionality/abstraction in the Direct3D runtime and by merging the Direct3D runtime and UMD together to eliminate unnecessary communication overhead. These changes are intended to both improve performance (that is, reduce overhead) in the Direct3D runtime and provide a foundation for further console-specific extensions moving forward. For further information, see DirectX.
Miscellaneous Improvements to Graphics
Profiling Mode for Exclusive Apps
In the July 2013 Xbox One XDK, PIX now requires that Profiling Mode for exclusive apps is enabled on a console for full functionality. Profiling Mode is a new development kit configuration that provides additional system reserved memory to PIX when an exclusive app is running, so that PIX can greatly minimize the amount of memory it must allocate from title memory space. Profiling Mode can be set from within PIX or with the xbconfig tool from the command line. When Profiling Mode is not enabled, PIX will only allow System Monitor and GPU captures for the connected console, with GPU captures requiring free memory in the title partition to succeed. All other features requiring a remote console are disabled including timing captures and GPU capture analysis.
Note that in this release, PIX analysis additionally requires that a console be provisioned with the xbprovision tool. Xbprovision installs the PIX analysis engine binaries to the console.
PIX: Continuous Timing Captures
In the July 2013 Xbox One XDK, PIX now supports continuous timing captures (refer to PIX Timing Captures), a familiar feature from PIX for Xbox 360. Continuous timing captures enable you to continuously collect timing data from PIX events in your title and Direct3D at low overhead in the background while your title continues to run. This enables you to catch frame glitches or surprise intermittent behavior that would otherwise be hard to catch with immediate timing captures. Continuous timing captures are enabled from within the Console view when connected to an instrumented title.
In this release, only CPU timing data is collected continuously; GPU timing data will be added in a future release.
PIX: Title-defined Counters
In the July 2013 Xbox One XDK, you can now add your own title-specific counters to the PIX system monitor. Use the PixReportCounter function to report a name value pair for each counter. Counters will appear dynamically in the Counters view and can be selected and added to the graph in the Console view. This feature can be especially powerful when correlating a rich set of title-specific data with the existing system counters.
PIX: Bound and unused resources
In the July 2013 Xbox One XDK version of PIX, the Resources view now signals whether resources bound to the pipeline are used in a draw event. Resources that are bound but unused are now displayed with a lighter font color. This will help you distinguish the relevant resources in cases where game code leaves several resources bound to the pipeline over a series of draws.
PIX: Events and Timeline views
In the July 2013 Xbox One XDK, the Events and Timeline views in PIX have undergone a significant architectural overhaul. The update should result in minimal functional changes but significant performance improvements when loading captures with a large number of events. As part of this change the Timeline is now separate from the Events view; you may decide to re-position your views to better suit your work style.
PIX: Context rolls
Context rolls are one of your chief enemies in the battle to optimize your title for Xbox One. Context rolls occur when a state or shader change necessitates rolling all of the GPU registers to a new context. They will limit throughput when rendering a series of small draws as there is a limited set of contexts that can be in flight at once. PIX now helps you identify draw events that cause a context roll with a new “ContextRolls” bottleneck derived counter, and a Dr. PIX Experiment.
New Dr. PIX experiments, Timing capture events, and Derived counters
PIX now boasts a large arsenal of tools you can use to tune the performance of your title on Xbox One. Several new Dr. PIX experiments have appeared in this and recent releases:
PIX now supports additional these events in timing captures:
And last but not least, PIX hosts a group of new Latency derived counters in the Counters view for GPU captures. These counters compute the average number of cycles of latency in various parts of the render pipeline.
New Input Test Hooks
The July 2013 Xbox One XDK includes a new XTF library, XboxTestToolkit.dll, that allows developers to connect multiple virtual gamepads running on a PC to multiple Xbox One consoles. This can be used with an Xbox One developer kit to test a title by simulating multiple players playing through predefined scripts or can be used to stress test a title with random input.
Seated Skeletal Tracking Improvements
Skeletal tracking can now lock-on to seated players - no more having to stand up to get tracked. Once locked-on, the joints are generally more stable and accurate than before. Note that there are still scenarios that degrade seated tracking quality. Examples include body core occlusion, leaning back, and knees above hips. These scenarios will continue to improve in upcoming releases.
Lean Tracking Quality Improvements
Lean tracking just got a lot better. This latest version sports lower latency, reduced “steppiness”, and improved stability while seated.
User Left-to-Right Playspace Order
The July 2013 Xbox One XDK introduces the User.UsersOrderedLeftToRight and event-based notification in UserStatics/IUserStatics to keep track of left-to-right order of the users inside the physical playspace. Titles can use this API to map multiplayer side-by-side splitcreens relative to the user locations, and the events to update the screen order when user locations change.
Synchronized IR/RGB Frame Delivery
The July 2013 Xbox One XDK, IR and RGB frames are now synchronously captured and delivered. Titles no longer need to cache the IR frame before use with the corresponding color frame.
Automatic Player-Controller Pairing Improvements
In the July 2013 Xbox One XDK, the automatic player-controller pairing feature introduces significant improvements to the pairing accuracy and latency. Developers should notice that controllers swaps between users are readily detected with minimal latency.
Speaker Correlation for Voice Commands
In the July 2013 Xbox One XDK, speaker correlation enables titles to identify the tracking body ID when a person issues a voice command within the field of view of the sensor. The APIs are:
Stock Grammar: Wave Collections
In the July 2013 Xbox One XDK, in addition to free translations for stock grammars found in the SpeechLab tool, you can find test wave files in the optional downloads section of the XGD XDK download page. To install, please download the locale pack(s) that you intend to use and follow the instructions in the Readme.txt file in the zipped folder(s).
Updated Developer Tools for Speech
The SpeechLab PC tool in the July 2013 Xbox One XDK allows you to import grxml and cfg files into a state. The cfg files can come from existing sources (for example, Xbox 360 games) or by calling the SerializeGrammarToFolderAsync API. If the grxml or cfg file contains multiple rules, you can choose which rules to import as well.
Multiple Enhancements to Services APIs
The July 2013 Xbox One XDK introduces the following changes in the services APIs.
New Features in Game DVR
The July 2013 Xbox One XDK introduces the following changes for Game DVR.
Party Invites are Actionable
In the July 2013 Xbox One XDK, party invitations are now actionable via the notification center and therefore the “pending invites” option has been removed from the Party App.
Sending a party invitation to another user will result in a toast notification on the console. To review the party invitation, press the Nexus button while the toast is active or launch notification center. If you want to see the state of pending invitations, press the right bumper on the controller when the Party App has focus.
Visual Studio 2012 Update 3 Supported in July
Starting in the July 2013 Xbox One XDK, the XDK supports update 3 to Visual Studio. You can find this update on http://www.microsoft.com/visualstudio/eng/visual-studio-update.
64-bit of Bintools Used by Default
Starting in the July 2013 Xbox One XDK, the 64-bit version of the bintools (compiler, linker, lib) will be used by default when building Xbox One C++ projects in Visual Studio. If necessary, projects can be configured to revert to the 32-bit toolset (the pre-July 2013 Xbox One XDK behavior).
Changes to Product Name in Xbox One XDK
Starting in the July Xbox One XDK, the term “Durango” has been replaced with “Xbox One” in multiple locations. Specifically, the “Durango Command Prompt” is now the “Xbox One Command Prompt” and “Xbox One” now shows up in Add/Remove Programs instead of “Durango”
Pull Deployment
Pull Model deployment allows developers to make their titles available on the Xbox One console quickly compared to push deployment. The July 2013 Xbox One XDK includes performance improvements (compared to April 2013 XDK) to pull deployment, as well as full Visual Studio integration.