Directx D3D9应用程序无法使用英特尔高清图形

Directx D3D9应用程序无法使用英特尔高清图形,directx,3d,direct3d,Directx,3d,Direct3d,我继承了一个应用程序,它使用D3D9在监视器2上全屏显示图形。该应用程序在配备GeForce 9500 GT的台式机上正常工作。当我试图让应用程序在配备板载Intel HD图形的笔记本电脑上运行时,所有图形都不会显示。其中一个顶点缓冲区已绘制,但其余为黑色 我对D3D不是很熟悉,所以我不确定从哪里开始调试这个问题。我一直在搜索,但没有找到任何东西 更新: 仅使用2个三角形绘制简单的顶点缓冲区是可行的,但任何更复杂的都不行。我的直觉可能是给定GPU支持的着色器模型。 一般来说,查询gfx卡以查看它

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

我对D3D不是很熟悉,所以我不确定从哪里开始调试这个问题。我一直在搜索,但没有找到任何东西

更新:


仅使用2个三角形绘制简单的顶点缓冲区是可行的,但任何更复杂的都不行。

我的直觉可能是给定GPU支持的着色器模型。 一般来说,查询gfx卡以查看它可以支持什么是一种良好的做法

也有可能是特定的D3D API功能——在GeForce和ATI(AMD)之间切换时,你会看到更多,但当然也有可能是Intel自己的供应商;但我首先要查询支持的着色器

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

链接: 张贴于此:

DirectX还提供为给定设备级别创建功能的功能:
我的直觉可能是给定GPU支持的着色器模型。 一般来说,查询gfx卡以查看它可以支持什么是一种良好的做法

也有可能是特定的D3D API功能——在GeForce和ATI(AMD)之间切换时,你会看到更多,但当然也有可能是Intel自己的供应商;但我首先要查询支持的着色器

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

链接: 张贴于此:

DirectX还提供为给定设备级别创建功能的功能: 解决方案#1:

检查每个D3D9调用的每个错误代码。使用
DXGetErrorString9
DXGetErrorDescription9
获取错误代码的可读翻译。有关更多信息,请参阅DirectX文档。当您最终遇到一个返回非T
D3D_OK
的调用时,请查看该调用的DirectX文档

解决方案#2:

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

解决方案#1:

检查每个D3D9调用的每个错误代码。使用
DXGetErrorString9
DXGetErrorDescription9
获取错误代码的可读翻译。有关更多信息,请参阅DirectX文档。当您最终遇到一个返回非T
D3D_OK
的调用时,请查看该调用的DirectX文档

解决方案#2:

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