The April 2015 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 April 2015 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.
Hardware-offloaded game chat (Preview)
A preview release of hardware-offloaded game chat is now available on a limited basis. If you are interested in using this feature, please contact your account manager.
Xbox One Manager
The following new features and improvements have been made to Xbox One Manager:
Change the state of an app
You can now suspend, resume, snap, constrain, and unconstrain apps through the Applications tab.
View app deployment type
The Applications tab now includes a column that indicates which deployment type was used for each installed app (push, pull, streaming install, or folder deploy).
“Run from PC” deployment (Preview)
Run from PC Deployment allows you to run your game directly from a network share on your development computer. This significantly improves productivity during title development by removing the time required to deploy a title from the computer to the development console.
Important This is a preview feature. Make sure that you read the caveats in the documentation before using it.
Note This is a new feature in the Xbox One XDK. Please submit feedback for this feature on the Entertainment Developer Forum or at Xbox One Developer Feedback.
xbStress network simulations can now target specific addresses or hosts, which can be used to identify blocking Xbox Live calls
The network simulation features in Stress (xbstress.exe) have been enhanced to allow the simulation to impact only the set of IP addresses, hostnames, or services that you specify. These enhancements make it easy to test network conditions such as when access to Xbox Live services are down but all other network resources are available. For more information, see Simulating complex network conditions.
New XTF API: XtfWaitForConsoleOSReady
The new XtfWaitForConsoleOSReady API waits for the console to reach a “ready state” before returning. This gives you a reliable way to determine when a console is ready to receive commands (for example, when the console is ready to receive an IXtfApplicationClient::Launch command after a reboot).
New xbConnect options wait for the console to reach a “ready state”
The new /WS and /WT options cause Connect (xbconnect.exe) to wait for the console to reach a “ready state” before returning. This gives you a reliable way to determine when the console is ready to receive commands.
Support for Direct3D 12.x offline shader precompilation added
The D3D12.x preview has added support for offline shader precompilation, which is a step towards full offline PSO precompilation. To use D3D12.x offline shader precompilation, use the D3D12.x HLSL RootSignature syntax with the [RootSignature()] tag in HLSL, as shown in the following example:
#define RS0 "RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), " \
"DescriptorTable(SRV(t0, numDescriptors=2), visibility=SHADER_VISIBILITY_PIXEL)," \
"DescriptorTable(Sampler(s0, numDescriptors=2), visibility=SHADER_VISIBILITY_PIXEL)," \
"DescriptorTable(CBV(b0, numDescriptors=1), visibility=SHADER_VISIBILITY_ALL)," \
"DescriptorTable(CBV(b1, numDescriptors=1), visibility=SHADER_VISIBILITY_ALL)," \
"DescriptorTable(CBV(b2, numDescriptors=1), visibility=SHADER_VISIBILITY_ALL)," \
"DescriptorTable(SRV(t3, numDescriptors=1), visibility=SHADER_VISIBILITY_ALL)," \
"DescriptorTable(UAV(u9, numDescriptors=2), visibility=SHADER_VISIBILITY_ALL),"
[RootSignature(RS0)]
float4 main // ...
Rules for offline shader precompilation in D3D12.x are the same as the rules in D3D11, which means that:
Additional Direct3D 12.x updates
The Direct3D 12.x preview now includes the following additional updates:
Updated graphics samples
The following updates have been made to the graphics samples on the Samples page on the Xbox Game Developer (XGD) site:
Shader compiler improvement
The shader compiler now has improved promotion of work from vector to scalar. However, the shader compiler still benefits greatly if you mark scalar values with the __XB_MakeUniform intrinsic. If you need to disable this new feature, use the FXC shader compiler define /D __XBOX_DISABLE_V_TO_S.
Shader compiler now based on Windows d3dcompiler_47.dll
The following updates have been made to the shader compiler:
error X3530: invalid register specification. Previously, the compiler might have allowed the use of an invalid register type.XHIT now captures additional GPU state
The Xbox Hang Investigation Tool (XHIT) now captures additional GPU state in GPU crash dumps, including context registers and recent GPU interrupt activity.
New enumeration constant D3D11X_INSERT_WAIT_ON_MEMORY_USE_ME for ID3D11DeviceContextX::InsertWaitOnMemory
The ID3D11DeviceContextX::InsertWaitOnMemory method now takes a D3D11X_INSERT_WAIT_ON_MEMORY_USE_ME enumeration constant to emphasize that the default behavior of that API is to insert a wait that executes on the ME engine within the GPU command processor.
Breaking change in Direct3D 12.x PIX captures
Because of changes to PIX in this release, D3D12 captures from previous releases of the Xbox One XDK are incompatible with this release. To mitigate this issue, please do one of the following:
New analysis features make it easier to identify file I/O performance issues
File I/O captures include new analysis features that make it much easier for you to find common performance problems in your app’s use of file I/O. These new features help you quickly identify which files are the most costly to access by highlighting the percentage of each file you accessed, the number of times you accessed each portion of the file, and so on.
D3D12 root signature view
The GPU D3D state has been updated to show the RootSignature for D3D12 draw calls.
GPU resource browser for async compute
The resource browser now shows resources for async compute jobs. To view the async compute jobs in the resource browser, select the desired async compute context from the Events view.
Shader register lifetime flow
PIX can now visualize shader register lifetime flow. The lifetime flow is displayed inline, to the right of the GPU instructions in the Original GPU Instructions view in the Shaders tab. Depending on your screen setup, you might need to scroll to the right to see the register lifetime data. The left section of the register lifetime data represents VGPR lifetimes. The section on the right represents SGPR lifetimes.
Note To show register lifetime, shader debug information must be available to PIX.
New keyboard shortcuts for navigating between GPU events
The following keyboard shortcuts are now available for navigating between GPU events in the Events view:
API parameter values and constant names are now displayed for Direct3D 11
PIX now displays D3D11 parameter values and constant names in the Events view and the Event Details view. This feature was added for D3D12 calls in the March 2015 Xbox One XDK.
Dr. PIX output is now presented using tables and graphs
All existing Dr. PIX experiments have a new output format that visualizes data and recommendations using tables and graphs (instead of only text). The new output format makes it easier to quickly get an overview of the results. This is similar to how Dr. PIX output was presented in PIX for Xbox 360. The new output format is enabled by default. To use the previous format of the experiments, go to the PIX Settings page, clear the Enable Dr. PIX rich content option, and then restart PIX.
Dr. PIX bottleneck analysis (Preview)
Dr. PIX now contains a Bottlenecks tab to help you quickly determine what to optimize next.
Note This is a new feature in the Xbox One XDK. Please submit feedback for this feature on the Entertainment Developer Forum or at Xbox One Developer Feedback.
PIX analysis engine is now deployed automatically
PIX now automatically deploys the PIX analysis engine to the developer console when needed. In previous releases, the PIX analysis engine had to be deployed manually using Provision (xbprovision.exe).