Possible issue deploying XNA Game Studio 4.0 CTP games to the Windows Phone Emulator
Since the release of the Windows Phone Developer Tools CTP and the XNA Game Studio 4.0 CTP yesterday, we’ve heard from several people who have had problems deploying XNA Game Studio 4.0 games to the Windows Phone Emulator. This issue is described in the Windows Phone Developer Tools CTP release notes, but I wanted to post a summary here as well to hopefully make it easier to find in search engines.
Instead of being able to deploy and run their XNA Game Studio 4.0 Windows Phone game successfully in the emulator, some people see the following in the Visual Studio error window:
Deploy failed with the following error: The current display adapter does not meet the emulator requirements to run XNA Framework applications.
Behind the scenes, XNA Game Studio 4.0 is checking for a DirectX 10 or later graphics card because this functionality is required to be able to render XNA Framework graphics correctly in the emulator.
Using the DirectX Caps Viewer to check the capabilities for your graphics card
If you see the above error message when attempting to deploy an XNA Game Studio 4.0 Windows Phone game to the emulator, you can use the DirectX Caps Viewer Tool (available for download via the DirectX SDK) to determine if a graphics card supports DirectX 10 or later. To determine if a graphics card supports DirectX 10 or later:
- In the DirectX Caps Viewer, expand the DXGI 1.1 Devices folder, and then expand the next level folder for the video card. Under this folder, you will see folders for Direct3D 10, Direct3D 10.1, and the like.
- Expand the Direct3D 10.1 folder and look at the Feature Level entry. In this folder, you will see an entry for D3D10_FEATURE_LEVEL_10_0 or D3D10_FEATURE_LEVEL_10_1 if the graphics card supports DirectX 10 or later. If the Feature Level indicates a feature level of 9_n or less, it cannot support the Direct3D of the Windows Phone Emulator.
Searching for updated drivers on your graphics card manufacturer’s web site
If you see this error message and your graphics card is DirectX 10-capable as reported by the DirectX Caps Viewer Tool, you should check on the web site for the manufacturer of your graphics card to see if a newer driver is available. In many cases, we’ve seen newer drivers available on the graphics card manufacturer’s web site than are available on Windows Update or the PC manufacturer’s web site.
Additional updates that need to be installed if you are running Windows Vista
If you’re attempting to use the emulator on Windows Vista, you must first install Windows Vista SP2 and the following 4 updates that are a part of KB 971644. Here are the links for the x86 versions of these 4 updates:
- Update for Windows Vista (KB971512)
- Update for Windows Vista (KB971513)
- Update for Windows Vista (KB971514)
- Update for Windows Vista (KB960362)
Here are the links for the x64 versions of these 4 updates:
- Update for Windows Vista (KB971512) x64
- Update for Windows Vista (KB971513) x64
- Update for Windows Vista (KB971514) x64
- Update for Windows Vista (KB960362) x64
How to try to bypass the capabilities check as a last resort
It is possible to bypass this capabilities check in XNA Game Studio by setting the following registry value:
[HKEY_LOCAL_MACHINE\Software\Microsoft\XDE]
XNAEnableGPU = 1 (REG_DWORD)
If you are running a 64-bit OS, you must set the registry value at the following location:
[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\XDE]
XNAEnableGPU = 1 (REG_DWORD)
Important note – if you set the above registry value, the XNA Game Studio 4.0 Windows Phone Game project will most likely be able to deploy but will only see a blank black screen in the emulator if the required graphics card capabilities are not available. We put in this registry override as a last resort in case we ran into issues with the capabilities check reporting false negatives, but so far we haven’t seen any cases where the deployment was blocked but then it correctly displayed the game after setting the override registry value.
<update date="3/18/2010"> Added links to x64 versions of the 4 updates that are a part of KB971644. </update>
Comments
Anonymous
October 20, 2010
I can't find DXGI 1.1 Devices folder in the directX Caps viewer tool. My OS is windows 7 and driver model is WDDM 1.0 and driver version is 8.15.10.1930. What's wrong?Anonymous
October 20, 2010
Hi Thank you but, - Your graphics card + driver needs to support at least DDI version 10 and WDDM version 1.1 in order to be able to use the emulator to run XNA games. On Windows 7, you can find this information in the dxdiag UI by launching it, going to the Display tab, and looking at the information in the Drivers section on the right. From the information you posted, you have WDDM version 1.0, not 1.1. You'll need to update your graphics card driver to one that supports WDDM 1.1 (if there is such a driver available for your graphics card), or you'll need to upgrade your graphics card (if your current card doesn't support WDDM 1.1). If you aren't sure what your graphics card supports, I'd suggest taking a look on the web site for your graphics card manufacturer for additional support information.Anonymous
November 01, 2010
The comment has been removedAnonymous
November 02, 2010
Hi Dave - The error message saying "The update does not apply to your system" can be caused by one of the following:
- You don't yet have Windows Vista SP2 installed
- You are running the packages for the wrong processor architecture (such as the x64 packages on an x86 OS)
- You already have the updates installed It sounds like #3 might be the case on your system. You can double-check by going to the Programs and Features control panel, clicking the link on the left that is named View Installed Updates, then looking for the KB numbers for each of the updates. If you've already got those 4 updates installed and you've confirmed that you have the latest driver for your graphics card from the graphics card manufacturer's web site, then it is possible that your card + driver do not support WDDM 1.1. You should be able to contact your graphics card manufacturer to confirm whether or not that is the case. If it is, then you'll need to get a newer graphics card to be able to use the Windows Phone emulator for XNA Game Studio 4.0 games.
Anonymous
November 24, 2010
Hi and thanks for a great article! I'm a little confused since I get this error myself and I'm running on a DX11 capable card (Gigabyte ATI Radeon HD 5870) but still get this error message. I'm running Windows 7 64bit and have the latest drivers installed. If I do a check in DirectX Caps Viwer I get mixed results and i really don't know how to understand it. This is a shorter version of my print from DXCV: DXGI1.1 Devices ATI Radeon HD 5800 Series Direct3d 10.1 D3D10_FEATURE_LEVEL_9_3 Direct3D 11 D3D_FEATURE_LEVEL_9_3 Windows Advanced Rasterization Platform (WARP) Direct3D 10.1 D3D10_FEATURE_LEVEL_10_1 Direct3D 11 D3D_FEATURE_LEVEL_10_1 As I understand this says that my card or drivers don't have support for DX10 and DX11 or have I missed something? I thought that a fairly new card like this should have support for the emulator. Is there a list with supported graphic cards? Any suggestions?Anonymous
November 28, 2010
Hi Mats Selberg - On Windows 7, you can run dxdiag, then click on the Display tab and look at the values on the right side for DDI version and Driver Model instead of using the DirectX Caps Viewer. In order to be able to use the emulator for XNA games, you need DDI version 10 or higher and Driver Model version WDDM 1.1 or higher. I'd suggest checking with your graphics card manufacturer to see if they have a Windows 7 driver for your card that supports DDI version 10 and WDDM 1.1. We do not have a full list of supported graphics card. It isn't really possible to maintain such a list for a couple of reasons - the ability to support the emulator depends on the graphics card, the driver for the card, and in some cases, updates being installed for Windows. I've seen cases where the same card didn't work on Windows Vista but did work on Windows 7 because the driver used on each of those OS's is different. Also, graphics card manufacturers continually release new cards and drivers, so the supported graphics card list would change over time.Anonymous
November 30, 2010
Thanks for your feedback! I'll contact AMD and see what they say about it.Anonymous
February 25, 2011
Hi there, Great article, took me ages but I've followed all you've suggested and I only have the folders D310_FEATURE_LEVEL_9.1 and 9.2. Does this then mean I can't use the emulator for my xna programs?? if not then what are my options? To buy a new graphics card? I do actually have a windows 7 phone - what are my options there? can I connect it to my pc and use that to test any programs or apps I build? I'm a bit confused at what my options are now, any help would be great Thanks paulAnonymous
February 28, 2011
Hi Paul - You must have a graphics card + a graphics driver that support DirectX 10 and WDDM 1.1 in order to be able to use XNA-based Windows Phone games in the Windows Phone emulator. It sounds like you might have a card that only supports DX9. In some cases, updating drivers can help, but in other cases, you may need to get a new graphics card in order to be able to use the emulator for XNA games. If you would like to deploy to your Windows Phone 7 device, you can find more detailed information about how to do this in the documentation at msdn.microsoft.com/.../gg588378(v=VS.92).aspx.Anonymous
March 15, 2011
The comment has been removedAnonymous
March 15, 2011
oops, name for the post above is "George Birbilis" (http://zoomicon.com), not WARP :-)Anonymous
March 15, 2011
the message I was talking to above appears at the (Debug/Windows/)Immediate window (strange that it appears for a while and disappears making you search how to make that window show up if you have the time to spot the window title [Immediate] - guess it's a bug with VS.net) A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.Xna.Framework.Graphics.dll A first chance exception of type 'Microsoft.Xna.Framework.Graphics.NoSuitableGraphicsDeviceException' occurred in Microsoft.Xna.Framework.Game.dll A first chance exception of type 'Microsoft.Xna.Framework.Graphics.NoSuitableGraphicsDeviceException' occurred in Microsoft.Xna.Framework.Game.dll A first chance exception of type 'System.Threading.ThreadAbortException' occurred in Microsoft.Xna.Framework.dll btw, also tried naming the file D3d10warp.dll to D3d10.dll instead of D3d10ref.dll that was suggested at WARP guide and place it in XDE.exe folder but didn't work either (tried also renaming to D3d10core.dll, D3d10level9.dll, D3d10_1.dll, D3d10_1core.dll, but didn't work either [should have check the export points of those DLLs to see if they match ones from D3d10warp.dll maybe first]). Is there any way to force a precompiled D3D app like CDE to use reference D310 driver? Maybe if I install a fake video driver that can the force WARP itself? irrlicht.sourceforge.net/.../viewtopic.php and www.ogre3d.org/.../viewtopic.php (see first post at each thread) look both very interestingAnonymous
March 17, 2011
Hi George Birbilis - I'm sorry, but the emulator does not support this type of scenario. In order to run XNA Framework games in the emulator, you have to have a graphics card + graphics driver that supports DirectX 10 and WDDM 1.1. If your card does not support these DX and WDDM features, then you will probably need to buy a new graphics card in order to be able to use the emulator for XNA Framework games.Anonymous
March 17, 2011
The comment has been removed