DirectX12:创建 IDXGIFactory 时 dxgi dll 灾难性失败
DirectX12: dxgi dll catastrophic failure when creating IDXGIFactory
我正在尝试使用 CreateFactory2
函数初始化 IDXGIFactory4,但这会引发错误:
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(121)\dxgi.dll!00007FFBA0D6D7F8: (caller: 00007FFBA0D4D167) ReturnHr(1) tid(64d8) 8000FFFF Catastrophic failure
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(98)\dxgi.dll!00007FFBA0D6D4D0: (caller: 00007FFBA0D3E221) ReturnHr(2) tid(64d8) 8000FFFF Catastrophic failure
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(999)\dxgi.dll!00007FFBA0D6D4FC: (caller: 00007FFBA0D3E221) ReturnHr(3) tid(64d8) 8000FFFF Catastrophic failure
我没有在网上找到任何类似的错误信息。
我尝试 运行 函数本身并初始化为不同的 IDXGIFactory(例如 IDXGIFactory2),但两者仍然导致相同的问题。
ComPtr<IDXGIFactory> dxgiFactory;
UINT factoryFlags = DXGI_CREATE_FACTORY_DEBUG;
ThrowIfFailed(CreateDXGIFactory2(factoryFlags, IID_PPV_ARGS(&dxgiFactory)));
这不是您描述的错误。
没有真正的失败,没有灾难,甚至没有异常,也没有从 API 调用返回给您的错误代码。您看到的是内部 API 实现中的一个小故障,它会发出带有这些奇怪行的调试输出。显然这是微软 API 实现中的一个小问题,消息的奇怪格式表明它来自在一个模块中使用 wil
:他们可能打算从软件的发布版本中删除此输出但不知何故,它以不同的方式解决了,意外的调试输出通过了...
该消息可能与可恢复的内部错误条件相对应,然后处理该错误条件,您的 API 调用最终会成功。没什么好担心的,这取决于微软让事情变得更干净。
即使直接来自 Visual Studio 2019 (v16.9.1) 模板的任何空白应用程序(或来自 Microsoft Github 存储库的示例应用程序)也会发生这些错误。只是很烦人,应用程序永远不会崩溃或挂起。然而,这从来没有发生过。
我希望微软尽快解决这个问题(这对神经和心理健康不利)。你对此无能为力。
我正在尝试使用 CreateFactory2
函数初始化 IDXGIFactory4,但这会引发错误:
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(121)\dxgi.dll!00007FFBA0D6D7F8: (caller: 00007FFBA0D4D167) ReturnHr(1) tid(64d8) 8000FFFF Catastrophic failure onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(98)\dxgi.dll!00007FFBA0D6D4D0: (caller: 00007FFBA0D3E221) ReturnHr(2) tid(64d8) 8000FFFF Catastrophic failure onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(999)\dxgi.dll!00007FFBA0D6D4FC: (caller: 00007FFBA0D3E221) ReturnHr(3) tid(64d8) 8000FFFF Catastrophic failure
我没有在网上找到任何类似的错误信息。 我尝试 运行 函数本身并初始化为不同的 IDXGIFactory(例如 IDXGIFactory2),但两者仍然导致相同的问题。
ComPtr<IDXGIFactory> dxgiFactory;
UINT factoryFlags = DXGI_CREATE_FACTORY_DEBUG;
ThrowIfFailed(CreateDXGIFactory2(factoryFlags, IID_PPV_ARGS(&dxgiFactory)));
这不是您描述的错误。
没有真正的失败,没有灾难,甚至没有异常,也没有从 API 调用返回给您的错误代码。您看到的是内部 API 实现中的一个小故障,它会发出带有这些奇怪行的调试输出。显然这是微软 API 实现中的一个小问题,消息的奇怪格式表明它来自在一个模块中使用 wil
:他们可能打算从软件的发布版本中删除此输出但不知何故,它以不同的方式解决了,意外的调试输出通过了...
该消息可能与可恢复的内部错误条件相对应,然后处理该错误条件,您的 API 调用最终会成功。没什么好担心的,这取决于微软让事情变得更干净。
即使直接来自 Visual Studio 2019 (v16.9.1) 模板的任何空白应用程序(或来自 Microsoft Github 存储库的示例应用程序)也会发生这些错误。只是很烦人,应用程序永远不会崩溃或挂起。然而,这从来没有发生过。
我希望微软尽快解决这个问题(这对神经和心理健康不利)。你对此无能为力。