We’ve made significant improvements to the speed of deployment and iteration time — deployment, F5 times and PIX capture and analysis times have all improved. Push deployment and PIX capture and analysis are much faster if you use the Xbox Transfer Device (XTD).
To maximize your iteration and deployment speed and to minimize configuration issues with XTD please read this section carefully.
We are listening to your feedback so please let us know what you think by posting feedback on the support forums or by letting us know through your Microsoft DAM.
Note For a detailed discussion of how to improve your build times on Xbox One see the Improving Iteration Times (Developer Education Materials > All NDA Whitepapers) whitepaper.
The /debug:fastlink linker option in VS 2015 and VS 2017 can be used to significantly reduce link times during day to day development (it is aimed at reducing link times for individual developers, not build servers). The improvement varies from title to title, and VS 2017 gives better results than VS 2015, but as this VS 2017 chart from the Visual C++ Team Blog shows, the improvement can be dramatic:

Note /debug:fastlink works by not including any private symbol information in the PDBs. Debug information is retrieved from the intermediate object and library files, and the PDB just serves as an indexing database. While this provides a huge build performance benefit for the individual developer builds, it does mean that /debug:fastlink will not work well when you are using a distributed build system, when you want to share the PDB with another developer on your team, or if you want upload the PDB’s to symbol server. Visual Studio includes an IDE option and command line tool (MSPDBCMF.exe) that allows you to generate a full PDB as a separate build step.
To find out more about /debug:fastlink and speeding up incremental builds see:
* [https://blogs.msdn.microsoft.com/vcblog/2016/10/05/faster-c-build-cycle-in-vs-15-with-debugfastlink/](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/faster-c-build-cycle-in-vs-15-with-debugfastlink/) * [https://blogs.msdn.microsoft.com/vcblog/2015/10/16/debugfastlink-for-vs2015-update-1](https://blogs.msdn.microsoft.com/vcblog/2015/10/16/debugfastlink-for-vs2015-update-1) * [https://blogs.msdn.microsoft.com/vcblog/2014/11/12/speeding-up-the-incremental-developer-build-scenario/](https://blogs.msdn.microsoft.com/vcblog/2014/11/12/speeding-up-the-incremental-developer-build-scenario/) * [https://msdn.microsoft.com/en-us/library/xe4t6fc1.aspx](https://msdn.microsoft.com/en-us/library/xe4t6fc1.aspx)
When you are making small changes to your game (edit, F5, debug, repeat), the overhead of shutting down and restarting the Title (ERA) OS becomes significant - around 15 seconds. We have added an option that allows you to leave the Title OS running – we shut down your game but not the OS. This significantly reduces start up time after your first F5 – to around 5 seconds. If you combine this option with using XTD for deployment your iteration times will be much better. This fast startup option also speeds up PIX capture and analysis (see PIX High speed capture and analysis using XTD).
You can turn this feature on and off using xbConfig FastIterationMode and using the Enable fast game launch button in Quick actions on the Home page of Dev Home.
Note This feature is enabled by default. Please let us know if you encounter issues by reporting those issues on the forums. If you do encounter issues, you can turn it off by running the following command and restarting PIX:
xbconfig FastIterationMode=off
Note Suspending your title is not supported when fast iteration mode is enabled. Attempting to suspend your title using either xbApp suspend or Xbox One Manager will display the following error:
This operation cannot be performed when FastIterationMode is enabled. Please use ‘xbconfig fastiterationmode=off’ followed by xbreboot.
When trying to suspend your title from Visual Studio you’ll see an error stating that the application cannot be suspended. An HRESULT of 0x80830011 will be displayed.
To test suspend and resume you’ll need to turn off Fast Iteration Mode using either the FastIterationMode setting in xbConfig or the Enable fast game launch setting in Xbox One Manager.
In the box with your Xbox One X dev kit you will have received an Xbox Transfer Device (XTD), a small black box with USB 3.0 ports on either side, and two USB 3.0 cables. Using the XTD to connect your Dev PC to your Xbox One X dev kit will dramatically increase the bandwidth available for Push deployment and PIX analysis and capture.
To get the best results from your XTD you should follow these guidelines:


You will get the best results if your title layout is comprised of a smaller number of large files. If your title has larger numbers of small files your will get worse results. This table shows some of our preliminary performance results.
| Title | Files | Folders | Image Size | 1706 XDK using XTD only | 1706 XDK using the NIC only | 1703 XDK using the NIC |
|---|---|---|---|---|---|---|
| Game 1 | 163,977 | 3,281 | 62.7 GB | 76 MB/s | 42 MB/s | 27 MB/s |
| Game 2 | 124 | 31 | 55.8 GB | 317 MB/s | 69 MB/s | 36 MB/s |
| Game 3 | 2,998 | 143 | 58 GB | 295 MB/s | 71 MB/s | 15 MB/s |
| Small Files Test | 42,014 | 1 | 402 MB | 3.4 MB/s | 3.3 MB/s | 2.3 MB/s |
Game 1, Game 2 and Game 3 are real world game loose file layouts.
Small File Test is a test layout of 42,000 small files to illustrate the performance impact of having many small files in your layout.
Check the connection speed between your Dev PC and your dev kit using xbconnect /data. Make sure that you run this command twice (the first time you run it, it will typically report lower speeds). XTD speed is reported as “XBTPLink”. For example:
xbconnect /data
Connections at 10.124.220.17, client build 10.0.16176.1000:
HOST: 10.0.16171.1004 (Durango Host OS) @100.134.19.176
TCP Send Speed: 94.710 MB/s (512 KB x 512)
TCP Recv Speed: 109.966 MB/s (512 KB x 512)
XBTPLink Send Speed: 496.124 MB/s (512 KB x 512)
XBTPLink Recv Speed: 182.077 MB/s (512 KB x 512)
SYSTEM: 10.0.16171.1004 (Durango System OS) @100.134.22.119
TCP Send Speed: 108.521 MB/s (512 KB x 512)
TCP Recv Speed: 108.475 MB/s (512 KB x 512)
XBTPLink Send Speed: 468.007 MB/s (512 KB x 512)
XBTPLink Recv Speed: 212.801 MB/s (512 KB x 512)
TITLE: Not running.
If you see lower than expected speeds over XBTPLink:
If the XTD is functioning correctly both lights on the device will be white, not orange or unlit.
Note If you unplug the XTD in the middle of a transfer or terminate the XBTPLink service, you will need to reboot your Dev PC and Xbox One X dev kit.
Once you have tested the speed of the USB connection, and are seeing good results with xbconnect /data, you can test your storage speed. To do this, copy a single large (8GB+) file to the SSD on the Dev PC. Then use the “xbcp” command to copy that file to the Xbox One X dev kit. For example: “xbcp c:\games\testfile.dat xd:". A single large data file like this is a “best case” for XTD transfer and should provide a “high water mark” for transfer speed. If this file transfers significantly more slowly than the “xbconnect /data” transfer rate, then you should examine the storage subsystem in the Dev PC.
You can use XTD to significantly reduce the time it takes to capture and analyze GPU data. If you combine this with ERA Fast Iteration Mode, you will further reduce the time taken by about another 10 seconds.
If you have an XTD plugged in, PIX will use it by default. You can turn this feature on and off using the xbconfig PixFastTransportMode setting:
xbconfig PixFastTransportMode=off
Note This feature is enabled by default. Please let us know if you hit issues by reporting those issues on the forums. If you hit issues, you can turn it off again by running the following commands and restarting PIX:
xbconfig PixFastTransportMode=off xbconfig FastIterationMode=off
Note Before using XTD please make sure that you read the guidance on how to get the best out of XTD: Using the Xbox Transfer Device (XTD) above.
If you have enabled XTD, PIX and the deployment tools will automatically share the available bandwidth of both the XTD and the ethernet port corresponding to the Tools IP to provide the fastest possible iteration times.
All dev kits including Xbox One X dev kits support Run from PC deployment as an alternative to Push deployment. Run from PC deployment significantly improves productivity during title development by removing the need to physically deploy your title to your dev kit – it reduces deployment time to a few seconds.
To use Run from PC, you create a network share on your Dev PC containing the loose file build of your title, register it with the dev kit, and then simply launch your title on your dev kit with no deployment or setup time required. Any changes you make to the files on the network share are immediately visible to the title running on the dev kit.
For more information see: