DirectX9 CreateDeviceEx завершается ошибкой с D3DERR_NOTAVAILABLE - PullRequest
0 голосов
/ 08 ноября 2018

При повторном создании и удалении устройства DirectX9 через некоторое время вызов CreateDeviceEx завершается неудачно случайным образом с ошибкой: 0x8876086A (D3DERR_NOTAVAILABLE)

При включении функции отладки в двоичных файлах отладки DirectX при сбое вызова CreateDeviceEx отображается следующий журнал:

Direct3D9: (ОШИБКА): DDraw и Direct3D не поддерживаются в режимах менее 8bpp. Не удается создать устройство.

Более того, если это помогает, я получаю эту ошибку только на ноутбуке, а не на настольном компьютере, работающем в аналогичной конфигурации.

Есть какие-нибудь подсказки относительно того, что может пойти не так?

Я использую последнюю версию 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;
...