首页 > 解决方案 > DirectX9 CreateDeviceEx 失败并显示 D3DERR_NOTAVAILABLE

问题描述

在一段时间后重复创建和销毁 DirectX9 设备时,CreateDeviceEx 调用随机失败并出现错误:0x8876086A (D3DERR_NOTAVAILABLE)

在调试 directX 二进制文件上启用 Debug spew 时,我在 CreateDeviceEx 调用失败时看到以下日志:

Direct3D9:(错误):低于 8bpp 的模式不支持 DDraw 和 Direct3D。创建设备失败。

此外,如果有帮助,我只会在笔记本电脑上收到此错误,而不是在运行类似配置的台式电脑上。

关于可能出错的任何线索?

我正在使用最新的 Windows 10 版本和 GTX-980(台式机)/GTX-1060(笔记本电脑)和最新的图形驱动程序。

根据要求,以下是 D3DPRESENT_PARAMETERS :

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferWidth = 128;
d3dpp.BackBufferHeight = 128;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

标签: windowsgraphicsdirectx

解决方案


推荐阅读