D3D9应用程序无法与/ Intel HD Graphics一起使用

时间:2012-05-09 13:10:46

标签: directx 3d direct3d

我继承了一个使用D3D9在显示器#2上全屏显示图形的应用程序。该应用程序可在带有GeForce 9500 GT的台式机上正常运行。当我尝试在配备板载Intel HD Graphics的笔记本电脑上运行应用程序时,不会显示所有图形。绘制了一个顶点缓冲区,但其余的都是黑色。

我对D3D不是很熟悉,所以我不知道从哪里开始调试这个问题。我一直在做一些搜索,但一直无法改变。

更新

只使用2个三角形绘制简单的顶点缓冲区,但任何更复杂的顶点都不起作用。

2 个答案:

答案 0 :(得分:1)

我的直觉可能是给定GPU支持的着色器模型。 通常,最好查询gfx卡以查看它可以支持的内容。

它也有可能是特定的D3D API功能 - 你可以通过切换说GeForce& ATI(AMD),当然也可能是英特尔自己的供应商;但我首先会查询支持的着色器。

对于D3D9,您使用IDirect3D9 :: GetDeviceCaps来查询gfx设备。

链接: 在此发布:https://gamedev.stackexchange.com/questions/22705/how-can-i-check-for-shader-model-3-support

http://msdn.microsoft.com/en-us/library/bb509626%28VS.85%29.aspx

DirectX还提供了为给定设备级别创建功能的功能: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx

答案 1 :(得分:0)

解决方案#1:

检查每个D3D9呼叫的每个错误代码。使用DXGetErrorString9DXGetErrorDescription9来获取错误代码的人工可读翻译。有关详细信息,请参阅DirectX文档。当您最终遇到一个返回D3D_OK之外的其他内容的调用时,请调查该调用的DirectX文档。

解决方案#2:

安装调试DirectX驱动程序(应该包含在DirectX SDK中),在运行时检查调试消息处理输出(使用OutputDebugMessage打印消息,因此您只能在调试器/ IDE中看到)。通过高调试设置,您可以查看应用中的每个问题。