Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

Possible issue deploying XNA Game Studio 4.0 CTP games to the Windows Phone Emulator

Possible issue deploying XNA Game Studio 4.0 CTP games to the Windows Phone Emulator

  • Comments 14

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:

Here are the links for the x64 versions of these 4 updates:

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>

 

  • 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?

  • 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.

  • Thanks for that.

    However, I too cannot find DXGI 1.1 Devices folder in the directX Caps viewer tool.

    Also I have run the 4 updates listed and each time I get the message "The update does not appy to your system"

    I am running on a HP G70 Notebook with Windows Vista Home Premium SP2(32bit). My graphics card is a "Mobile Intel® 4 Series Express Chipset Family" I have checked and I am running DirectX 11. Both Windows Update and Intel system check both report that I am running the very latest graphics drivers.

    DXDIAG reports DDIv10 however WDDM is not listed.

    I tried the registry hack and as you predict I can see only a blank screen.

    What else can you suggest.

  • Hi Dave - The error message saying "The update does not apply to your system" can be caused by one of the following:

    1.  You don't yet have Windows Vista SP2 installed

    2.  You are running the packages for the wrong processor architecture (such as the x64 packages on an x86 OS)

    3.  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.

  • 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?

  • 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.

  • Thanks for your feedback! I'll contact AMD and see what they say about it.

  • 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

    paul

  • 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.

  • Tried this registry trick on Windows 7 and NVIDIA6600 (DX10 / WDDM 1.0) and while the game does deploy, it tries to launch and quickly shows some errors (think it was at the error pane), but then app stops and the messages disappear (couldn't find them at the Output pane either). Messages were saying "First chance exception..."

    I want to use this with WARP, per the instructions found here:

    msdn.microsoft.com/.../gg615082.aspx

    "Because WARP uses the same software interface to Direct3D as the reference rasterizer does, any Direct3D 10 or 10.1 application that can support running with the reference rasterizer can be tested by using WARP. To use WARP, rename D3d10warp.dll to D3d10ref.dll and place it in the same folder as the sample or application. Next, when you switch to ref, you will see WARP rendering.

    If you rename WARP to D3d10ref.dll and place it in C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Samples\C++\Direct3D\Bin\x86, you can run all the DirectX samples against WARP, either by clicking the "Toggle Ref" button in the sample, or by running the sample with /ref specified on the command line."

    I don't see any /ref parameter at XDE.exe though (btw it doesn't even support /? to show syntax and you have to type plain "xde" to see params list)

    So can Microsoft please add /ref parameter to XDE and do as that MS article on WARP says:

    "Direct3D 10, 10.1, and 11 components can use an additional driver type that you can specify when you create the device (for example, when you call the D3D11CreateDevice function). This driver type is D3D10_DRIVER_TYPE_WARP or D3D_DRIVER_TYPE_WARP. When you specify this driver type, the runtime creates a WARP device and does not initialize a hardware device."

    *** then only issue will be how to pass /ref parameter from Visual Studio, but could ADDITIONALLY add another registry setting for XDE to use /ref by default and thus avoid configuring how Visual Studio launches XDE (just add the command-line param to XDE anyway for completness and for scenaria that launch XDE from outside VS.net or when you can't edit the registry [btw for the same reason there should be command-line param at XDE for the EnableGPU trick - I guess it's not the /vfp param of XDE])

  • oops, name for the post above is "George Birbilis" (http://zoomicon.com), not WARP :-)

  • 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 interesting

  • 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.

  • I have a 9800GT on one of my other machines (this has 6600), so I guess I'll need to swap video cards

    However I thought WARP was made for allowing games (and not only games) to be used on the cloud (see Cloud Gaming, where app runs on big server and you get served the display), on Virtualized machines etc. It may be possible if I hack a bit more into it. After all the Direct3D SDK samples are supposed to be running with WARP using /ref param, why shouldn't the device emulator run too? I know it won't run decently without a beasty multi-core CPU machine, but it still leaves me wondering if one could hack this to work with WARP (if you had the /ref param it should work I guess with no hacks)

Page 1 of 1 (14 items)
Leave a Comment
  • Please add 8 and 6 and type the answer here:
  • Post