驱动程序崩溃创建顶点缓冲区

时间:2016-02-28 21:05:18

标签: c++ driver direct3d

我开始研究我的第一个D3D11"框架"但是在创建缓冲区时我遇到了驱动程序崩溃(在nvwgf2um.dll中)。我有最新的NVIDIA驱动程序

ID3D11Buffer* CreateVertexBufferFromGeometry(Mesh& mesh) const{

  [cut unrelated stuff]

    ID3D11Buffer* buffer;

    D3D11_BUFFER_DESC bd;
    ZeroMemory(&bd, sizeof(bd));
    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.ByteWidth = sizeof(float) * mesh.NumberOfFloatsPerVertex * mesh.vertexData.size();
    bd.BindFlags = D3D11_BIND_VERTEX_BUFFER;
    bd.CPUAccessFlags = 0;
    bd.MiscFlags = 0;
    D3D11_SUBRESOURCE_DATA InitData;
    ZeroMemory(&InitData, sizeof(InitData));
    InitData.pSysMem = mesh.vertexData.data();          
    RenderDevice->CreateBuffer(&bd, &InitData, &buffer);

    return buffer;
}

我启用了Debug层,没有任何弹出,因为应用程序在CreateBuffer内崩溃(不返回),HRESULT毫无意义,只是在调试和发布模式下崩溃。

它能是什么?我怎样才能获得更多信息?

我试图阅读的obj并非形成错误(任何观众都可以阅读)。

由于

编辑:RenderDevice是ID3D11Device的包装器,它不是null,它可以用来创建其他东西。 EDIT2:也遇到了扭曲问题

0 个答案:

没有答案