【问题标题】:D3D9 Application not working w/ Intel HD GraphicsD3D9 应用程序无法使用英特尔高清显卡
【发布时间】:2012-05-09 13:10:46
【问题描述】:

我继承了一个使用 D3D9 在监视器 #2 上全屏显示图形的应用程序。该应用程序在配备 GeForce 9500 GT 的台式机上正常运行。当我尝试让应用程序在配备板载英特尔高清显卡的笔记本电脑上运行时,所有显卡均未显示。顶点缓冲区之一被绘制,但其余为黑色。

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

更新:

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

【问题讨论】:

    标签: directx 3d direct3d


    【解决方案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

    【讨论】:

      【解决方案2】:

      解决方案 #1:

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

      解决方案 #2:

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

      【讨论】:

        猜你喜欢
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多