我有一台带有英特尔GMA 3150显卡的华硕Eee PC,操作系统是Windows 7 Starter,并且安装了DirectX 11。
当我运行使用XNA 4.0的项目时,我在graphics.ApplyChanges()
得到以下异常:
Microsoft.Xna.Framework.Graphics.NoSuitableGraphicsDeviceException was unhandled
Message=Could not find a Direct3D device that supports the XNA Framework HiDef profile.
Verify that a suitable graphics device is installed.
Make sure the desktop is not locked, and that no other application is running in full screen mode.
Avoid running under Remote Desktop or as a Windows service.
Check the display properties to make sure hardware acceleration is set to Full.
Source=Microsoft.Xna.Framework.Game
StackTrace:
at Microsoft.Xna.Framework.GraphicsDeviceManager.FindBestPlatformDevice(Boolean anySuitableDevice)
at Microsoft.Xna.Framework.GraphicsDeviceManager.FindBestDevice(Boolean anySuitableDevice)
at Microsoft.Xna.Framework.GraphicsDeviceManager.ChangeDevice(Boolean forceCreate)
at Microsoft.Xna.Framework.GraphicsDeviceManager.ApplyChanges()
at XY.Game..ctor(IntPtr drawSurface, Int32 Width, Int32 Height) in XY.cs:line 55
at XY.Program.Main(String[] args) in XY\Program.cs:line 11
InnerException:
据我所知,我的显卡支持XNA Framework的所有要求。那有什么不对?
答案 0 :(得分:5)
英特尔GMA 3100和3150仅支持XNA中的Reach配置文件。
此外,您可能必须重构一些代码,因为在设置要在“属性”中访问的配置文件后,您可能会遇到一些编译错误。
要特别注意的事项:
您的硬件仅支持Shader Model 2.0。如果您使用的是任何3.0着色器,则需要针对VS_2_0和PS_2_0
您不能使用某些纹理表面格式。
一次只能绘制一个渲染目标(因此这里没有花哨的延迟渲染)
Here's a list比较支持Reach个人资料的内容。
(顺便说一句,你的硬件无法直接运行DirectX 11,它只能使用参考设备,并且运行速度非常慢)
答案 1 :(得分:2)
您应该尝试将XNA配置文件从HiDef更改为Reach 您可以通过右键单击项目找到该设置 - >特性