The February 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 February 2014 Xbox One XDK contains the latest tools and libraries for Xbox One.
Support for Windows 8.1
Windows 8.1 is a supported development platform for both the February XDK and ADK.
Party API improvements
In this release, a number of additions have been made to the party API:
Memory allocation updates
Beginning with the February 2014 XDK, the address space not dedicated to graphics has been divided into Legacy (Win32 API and other components) and Title (MEM_TITLE) allocations. Titles that supply specific (non-NULL) address values to VirtualAlloc must supply addresses in the range 2TB to 4TB if MEM_TITLE is not specified, or addresses in the range 4TB to 8TB if MEM_TITLE is specified. Calls to VirtualAlloc that do not supply a specific address will receive allocations in these ranges. Allocations that specify MEM_GRAPHICS should continue to use addresses below 128GB as before.
New xbConfig Settings
Many more developer settings can now be manipulated from a PC using xbConfig. The new settings include various video, network, and power settings.
Improvements to xbRemoteRecovery
The steps needed to install a new recovery on a development console have been streamlined in the February XDK and ADK. Improvements include:
New xbStorage Commands
These commands provide new options for working with Connected Storage data on your devkit. From your development PC, you can now transfer data back and forth between the PC and the devkit, preserve game saves for testing, move data from one user to another, delete data, etc.
Improved transfer performance over XTF
The February 2014 XDK release includes improved transfer performance over XTF on a per file basis. The result is a significant improvement (30-50%) for titles structured as a set of a large number of files. For titles organized as a smaller number of large files, the overall result is less profound, but still applies (2-8%).
| Scenario | Before | After | Difference (min) | Percentage Improved |
|---|---|---|---|---|
| Title 1: 4,000 files, 206 folders, 55GB | 49 | 48 | 1 | 2.0 |
| Title 2: 36,000 files, 2k folders, 12GB | 39 | 16 | 23 | 59.0 |
| Title 3: 43,000 files, 1653 folders, 35GB | 53 | 35 | 18 | 34.0 |
| Title 4: 228 files, 0 folders, 4.3GB | 3.8 | 3.5 | 0.3 | 7.9 |
The per-file overhead from the transfer has been reduced. The more files that are transferred, regardless of total size of the title, the greater the performance benefit.
Pull Deployment mapping file now allows the use of environment variables
The Pull Deployment mapping file now allows you to use environment variables as part of the source path specification. The environment variable can be the entire source path or a portion of it, just as you would normally see with environment variables in other similar contexts. For example:
<mappings>
<path source="%HOMEDRIVE%\Users\contoso\Documents\Visual Studio 2012\Projects\Direct3DGame1\Direct3DGame1\Durango\Layout\Image\extra" target="\remoteextra" />
<path source="%HOMEDRIVE%\Users\contoso\Documents\Visual Studio 2012\Projects\Direct3DGame1\Direct3DGame1\Durango\Layout\Image\moreextra" target="\remotemoreextra" />
<path source="%HOMEDRIVE%\Users\contoso\Documents\Visual Studio 2012\Projects\Direct3DGame1\Direct3DGame1\Durango\Layout\Image\filterme" target="\remotemoreextra"/>
</mappings>
New diagnostics tool: xbDiaginfo
XbDiagInfo is a new tool that gathers information related to developer console connectivity. It is intended to be used when a user is having problems with XTF or deployment related features to allow them to gather information and provide it to support channels for diagnoses. Typical usage would be:
xbdiaginfo > diaginfo.txt
This will gather the information and redirect the output to the file specified. Xbdiaginfo alone will return the output to the command window. At no time does xbDiagInfo automatically send any information to Microsoft or any other party. It simply facilitates gathering the data and allows the partner to see it and communicate it by email or whatever means they choose.
New XTF support
The February 2014 XDK release includes the following new support for XTF:
Console now automatically reboots into devkit mode instead of retail mode
In previous releases, when you booted your console from a non-powered state, the console would boot to retail mode, so to get back to devkit mode, the console required a manual reboot.
Beginning with the February 2014 release, when you boot your console from a non-powered state, the console will automatically reboot into devkit mode. The reboot is not seamless, but will occur slightly after OOBE appears; this particular issue will be addressed in a subsequent release. The sequence is currently as follows:
Regardless of the release, if you have an expired devkit certificate installed on the console, the console will auto-reboot into retail mode, rather than devkit mode.
Because the console boots to retail mode before automatically rebooting into devkit mode, some settings are lost, and so the devkit will need to be reconfigured using xbConfig. This issue will be addressed in a future recovery.
More Title OS Symbols included in the XDK
The debugging symbols that were previously available as a separate download on the XDK download page have now been integrated into the XDK.
Xbox Services API Improvements
The LeaderboardService now allows developers to get social leaderboard records starting at a specified rank in a specified social group, or social leaderboard records around the specified user in a specified social group. It also allows developers to specify a sort order (“ascending”/”descending”) for the indexed player stats.
The MultiplayerService now allows developers to set the matchmaking target session constants independent of client side matchmaking capabilities.
The MultiplayerSessionProperties object now supports the “JoinRestriction” property allowing developers to restrict who can join “open” sessions.
The CatalogItemAvailability object now contains the OfferId property and OfferDisplayDataJson property (the detailed offer display information).
Xbox GameChat API and sample updates
Previously shipped as source code in the InGameChat sample, the Microsoft.Xbox.GameChat API is now fully integrated as an XDK extension. It is built on top of the low-level Windows.Xbox.Chat API, implements user serialization/deserialization, and is recommended as the basis for all title game chat development.
Prior to the February 2014 release, the game chat sample was only available via the XDK samples page at https://developer.microsoft.com/en-us/games/xbox/partner/development-education-samples. With this release, the game chat DLL and corresponding zip file containing the source code is now a part of the XDK and doesn’t require a separate download.
New HLSL Tool Features
The February 2014 release of the Xbox One XDK includes the following new HLSL tool features:
Improved control over ESRAM resource management
This release contains improved control over ESRAM resource management. Different virtual address ranges for the color, Fmask and Cmask planes (or Depth, Stencil, and Htile buffers) now enables developers to cleanly separate those planes into ESRAM vs DRAM. Note that the ESRAMUsageBytes field must now be explicitly set. Also note that the ESRAMUsageBytes field now must be initialized or memory allocation failures may occur.
Graphics performance improvements
Titles should see reduced CPU overhead compared to launch. As examples, Draw calls are 6x faster and IASetInputLayout calls are 2x faster than compared to launch.
Background thread deletion of graphics resources
The February 2014 release of the Xbox One XDK introduces background thread deletion of graphics resources, reducing the overhead on the immediate context. Titles can also manually control this deletion via the D3D11_CREATE_DEVICE_MANUAL_GARBAGE_COLLECTION flag and explicit calls to the ID3D11DeviceX::GarbageCollect method.
Detailed timing information available
The February 2014 release of the Xbox One XDK includes DXGIXGetFrameStatistics. It should be used to obtain detailed timing information at runtime on presentation rate, latencies and queue state. The timing information will be useful for accurate timing computations related to animation and motion, in addition to being useful in throttling workload so that the GPU and CPU don’t run ahead of or behind the display queue.
New swap chain flags for easier display color control
This release introduces new swap chain flags for easier display color control. The color range obtained via the DXGIX_SWAP_CHAIN_FLAG_QUANTIZATION_RGB_FULL flag can now also be obtained via the DXGIX_SWAP_CHAIN_MATCH_OTHER_CONSOLES flag. Similarly, the range obtained via the flags (DXGIX_SWAP_CHAIN_FLAG_QUANTIZATION_RGB_FULL | DXGIX_SWAP_CHAIN_FLAG_COLORIMETRY_sRGB_TO_REC709 ) can now also be obtained via the DXGIX_SWAP_CHAIN_MATCH_XBOX360_AND_PC flag.
Dr. PIX Updates
In the February 2014 release, Dr. PIX has fixes to old experiments, as well as new experiments focusing on the performance benefits of:
PIX: Histogram improvements
The PIX histogram has been updated in the February 2014 release with several improvements, including channel linking, auto-scaling to visible range, and enhanced rendering performance. For those of you surprised to hear that PIX already has a histogram control, we’ve enhanced its discoverability within the Resources view as well.
OOBE disabled for dev kits
Beginning with the February 2014 recovery, when the console boots with a dev kit certificate present, it will skip the out of box experience (OOBE) and boot directly to the Home screen.
Content update analysis tools are now a part of the XDK
The Content Update Analysis Tools previously shipped as a separate download from XGD. These tools are a part of the February 2014 XDK/ADK and no longer require a separate download.
Visual Gesture Builder: Auto-tagging support
VGB can now generate discrete gesture tags (AdaBoostTrigger) based on clip analysis results. Continuous gesture tags (RFRProgress) can also be generated by mapping start/end keyframe values to discrete tags within the clip. Generated tags should be reviewed/modified/accepted before being used in gesture training.
New preview support for DMA engine encode and decode functionality
With the February release, DMA functionality is now ready for developer preview. The Xbox One DMA engines can be used to move data rapidly, and compress and decompress that data. You can access the DMA engines by using the methods in the ID3D11DmaEngineContextX Interface. Please use the interface to begin your title development with these engines, but recognize you may run into some stability issues as this functionality is still in developer preview. These issues will be addressed in a forthcoming release.