当我运行DirectX11项目时,每次使用此警告调用ID3D10Device::DrawIndexed
时,我都会在输出窗口中收到垃圾邮件
D3D11:警告:ID3D11DeviceContext :: DrawIndexed:输入顶点插槽0 步幅48小于逻辑上预期的最小步幅 从当前的输入布局(56字节)。这很好,就像硬件一样 完全能够读取重叠数据。然而开发者 可能并不打算利用这种行为。 [执行 警告#355:DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL]
这就是我目前正在调用函数的方式
pImmediateContext-> DrawIndexed(this-> vertexBuffer.indices.size()* 3, 0,0);
我不确定导致此警告的错误。如果有人能够对这个问题有所了解,我将不胜感激。
答案 0 :(得分:1)
错误告诉您输入布局的总字节大小与设置顶点缓冲区时设置的步幅不同。
要解决此问题,您需要确保通过IASetInputLayout()设置的输入图层与调用IASetVertexBuffers()时设置的步幅相同。