The April 2013 release of the Durango XDK from Microsoft contains the following new features, tools, and documentation. For features that shipped in a previous release of the Durango 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 Durango XDK can always be found on Durango 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.
The Durango developer support group sends e-mail to Durango developers whenever a new Durango XDK is released. Also, you can check with your account manager for the latest information about upcoming Durango XDK releases.
The April XDK exclusively supports beta hardware. If you need to continue on alpha hardware, use the January 2013 XDK. However, we urge you to move to beta hardware and software as quickly as possible. There are no plans for future software releases that support alpha kits. Also, all new features of Xbox LIVE will be available only to beta hardware.
Official support for alpha kits will end on May 1, 2013. At that time, we will no longer provide technical support for development with alpha kits nor guarantee that alpha kits can connect to Xbox Live.
PIX: GPU timing data collected in System Timing Captures
In the April 2013 Durango XDK, PIX System Timing Captures now include GPU timing data correlated to CPU events. GPU timing data appears in the Events view and on a GPU timeline in the timeline view. Timing data is based on PIX events and collected with very low-overhead. You can use the timing data and the timelines to identify GPU hot-spots, narrow down aggregate analysis metrics to specific functions of your rendering engine, and draw inferences about the relationship between events on CPU cores and GPU units.
Dr. PIX
The April 2013 Durango XDK introduces Dr. PIX. Dr. PIX is our dedicated expert deep performance analyzer for GPU captures. While PIX currently exposes a vast number of hardware and derived GPU counters in analysis, interpreting results at the counter level can be particularly time intensive and require a great deal of domain knowledge. Dr. PIX simplifies this process through focused experiments that help identify the real bottlenecks and performance culprits in your code. Expect Dr. PIX to help you answer questions like “Am I making effective use of ESRAM?” or “What’s the ideal GPU duration of a given frame?”
PIX: ESRAM Residency
Beginning in the April 2013 Durango XDK, the Resource Browser in PIX indicates whether resources were resident in ESRAM during a GPU capture. Additionally, Memory counters have been added to GPU capture analysis, and Dr. PIX has ESRAM specific experiments.
Improved ETW trace collection through XBPERF
Durango CPU profiling tools are heavily dependent on ETW trace collection. For this release, we are creating a new remote command-line tool called XBPERF that simplifies the collection of ETW logs from the Durango console. XBPERF replaces the current usage of “XBRUN TRACELOG” or “XBRUN XPERF” that streamlines ETW capture, merge, and transfer to the local machine into a simple command-line syntax.
Kinect APIs are Windows Runtime only
Starting with the April 2013 XDK, all Kinect APIs will ship as WinRT only: all vanilla C APIs have been removed. You can find the updated WinRT APIs in the Windows.Kinect namespace. These APIs are easier to use, and they maintain feature and performance parity with the (now removed) C APIs.
NUI Interactions Model
The April 2013 XDK introduces a new NUI interactions model, such as engagment, targeting, press, and scroll. For details, see Kinect and Natural User Interface.
ADK Available for Shared Partition Apps
In parallel with the April 2013 Durango XDK, we are pleased to introduce the Durango Application Development Kit (ADK). The ADK is desinged for use in creating Shared Partition apps. For details on how to obtain and use the ADK, contact your Developer Account Manager (DAM).
Skeletal Tracking: Improved Hand Joint Stability and Seated Quality
In the April 2013 Durango XDK, frame-over-frame stability of the hand joint has been radically improved in this release. In fact, stability of the hand joint now meets or exceeds that of the (already very stable) hand tip joint released in the March XDK. Any applications that use the hand joint for precise motions (cursor control, aiming, driving, etc) will immediately benefit. Also, techniques that use the distance between the hand tip and hand joint to calculate analog hand open/close information will see improvements in reliability. The release also includes improved seated skeleton tracking quality. This also results in improvments for crouched gestures such as bowling.
Skeletal Tracking: Tracking Beyond 3.7 Meters, Accuracy and Floor Vector Improvements
The April 2013 Durango XDK substantially improves skeletal tracking when operating beyond 3.7 meters. Skeletons are now tracked up to the full range of the depth feed, which is 4.5 meters. The release also provides more accurate skeletons throughout the sensor’s field of view and includes an improved floor vector.
Deployment Performance Improvements
Pull model deployment allows developers to deploy their title to the Durango console in a matter of minutes – even first time deployment of an entire title. The April 2013 Durango XDK includes improvements to “pull model” deployment that take it from “interesting concept” to “ready to use”. We encourage you to reads the “how to” docs, take it for a tour and give us your feedback. Stay tuned for more improvements in the May XDK.
BodyController API Introduced
The April 2013 Durango XDK introduces the BodyController API, a dedicated type of IController for human bodies tracked by Durango. BodyController contains a BiometricUserId which corresponds to the user that the body has been biometrically identified as. This property can be used to maintain continuity of tracking as the body leaves and re-enters the field of view.
New and Improved Xbox Live Services APIs
The April 2013 release of the Durango XDK adds several new and updated client side APIs for Xbox services that allow games to easily access Xbox Live services. The following list of client-side APIs are available in the April XDK for Xbox Live RESTful services.
The following client side APIs have been updated:
Changes to Exclusive App Activation Logic
In order to better align our core app model and activation logic with Windows and the Durango shared OS, the April 2013 Durango XDK introduces some updates to the exclusive OS. These updates shouldn’t break any existing apps, and in fact should reduce the amount of unnecessary work apps do under the previous activation logic.
Note This doesn’t change the requirement that your app must activate within a specific time window. Games should still not be doing heavy weight asset loading work in Initialize, Load, or Activated as they need to get through all of these in a timely manner to declare “ready”.
Note This means that games need to be resilient to receiving multiple activations (for instance, don’t create your graphics stack here without first checking that it’s not already initialized. We’ve seen apps crash due to blindly creating their device/context in Load or Activated)
Deferred Contexts
Beginning with the April 2013 Durango XDK, deferred contexts are now hardware-accelerated and fully native to the graphics driver. Users of deferred contexts, especially those with long command lists, should note a significant increase in performance. See the release notes for limitations.
Graphics Performance Improvements
Beginning with the April 2013 Durango XDK, draw call CPU overhead has been reduced, especially for shaders referencing many resources. CPU overhead has been reduced for state setting. Hardware support for guard bands and SetPredication has been implemented. More performance improvements will come in future releases.
Memory Allocation Improvements and Future Deprecation of D3DAllocateGraphicsMemeory
The April 2013 Durango XDK contains some significant improvements in memory management, including XMemAlloc support for 64K pages to reduce thrashing, and more efficient user-mode heaps. D3DAllocateGraphicsMemory has been rewritten to call XMemAlloc. Therefore, for efficiency, users should call XMemAlloc directly. In order to encourage this behavior, we will be deprecating D3DAllocateGraphicsMemory in a future release
A Reminder to Use Offline Resource Placement for Best Performance
As of the April 2013 Durango XDK, the XG library now uses the CPU for texture swizzling upon resource creation in order to free up DMA resources. You are strongly encouraged to use the XG libraries for offline preparation of resources to avoid CPU performance bottlenecks.
Shader Compiler Updates
In the April 2013 Durango XDK, the following updates were made for Shader compilers:
/D__XBOX_DISABLE_PRECOMPILE_LS
#define __XBOX_DISABLE_PRECOMPILE_LS
are now both interpreted as having value 1.
Tear No More!
The April 2013 Durango XDK introduces support for Present intervals greater than or equal to 1. This means that Present calls can now be synchronized with vblanks.
720p Output is Now Supported
The April 2013 Durango XDK introduces support for 720p output over HDMI. Currently, 720p output will be triggered automatically at boot time (and only at boot time) if that is the display’s preferred EDID. Hot-plug detection will be added in a later XDK release. Please note that Durango’s native running resolution remains 1080p, and content is then scaled-down to 720p for scan out.