c++ - DX12 初始化失败 VS2019
问题描述
我之前在DX10/11/12中做过很多次初始化步骤,突然在VS2019中DX12除了以下对象之外什么都不会创建:ID3D12Debug
, ID3D12InfoQueue
, ID3D12Device2
.
即使直接创建命令队列也会失败:
bool DX12ObjectFactory::CreateCommandQueue(ID3D12Device* pDevice, __out
ID3D12CommandQueue** ppCmdQueue, const D3D12_COMMAND_QUEUE_DESC& queueCreateDesc)
{
OnFailedThrow(pDevice->CreateCommandQueue(&queueCreateDesc,
IID_PPV_ARGS(&*ppCmdQueue)));
return true;
}
HRESULT
消息是:
hr = 0x00000108:在 oplock 中断正在进行时打开/创建操作完成。
错误代码查找指向:ERROR_TOO_MANY_POSTS 298 (0x12A)
奇怪的是几天前一切正常,也许是 Windows 更新破坏了它......
谢谢
解决方案
D3D12_COMMAND_QUEUE_DESC
已正确初始化,问题似乎是使用IID_PPV_ARGS
,因为旧的使用方式很好IID_ID3D12CommandQueue
, (void**)&(*ppCmdQueue)
。
还有我的交换链问题,我忘记用 >= 2 的值初始化缓冲区计数。
推荐阅读
- python-3.x - 根据结果从 groupby 中的不同列获取值
- python - 如何在 Python 中以列表为列绘制坐标?
- python - 如何在 Django 中实现具有不同角色和权限的多种用户类型?
- google-cloud-platform - Google Cloud Functions Execution Time & Limitations
- python-3.x - 使用python脚本验证定义的SVN是否存在:Externals
- c++11 - 如何将 val 分配给动态矩阵的特征块
- mysql - 如何使用flutter将下拉按钮值插入数据库mysql
- javascript - Karma 没有存储提供程序,但已添加
- python - 为什么我尝试安装 pyaudio 时出现错误?
- javascript - 如何将多个html表格并排导出为pdf