DirectX11 执行警告 #355

Posted

技术标签:

【中文标题】DirectX11 执行警告 #355【英文标题】:DirectX11 Execution Warning #355 【发布时间】:2013-02-25 02:48:58 【问题描述】:

当我运行我的 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);

我不确定我做错了什么导致了这个警告。如果有人能对这个问题有所了解,我将不胜感激。

【问题讨论】:

【参考方案1】:

错误告诉您输入布局的总字节大小与设置顶点缓冲区时设置的步幅不同。

要解决此问题,您需要确保通过 IASetInputLayout() 设置的输入层与调用 IASetVertexBuffers() 时设置的输入层具有相同的步幅。

【讨论】:

Yub,就是这样。我错过了数。非常感谢。

以上是关于DirectX11 执行警告 #355的主要内容,如果未能解决你的问题,请参考以下文章

“无法初始化 Direct3d”

Windows 8.1 上的 DirectX 11 缺少 SDK 组件

DX11 Without DirectX SDK--04 使用DirectX Tool Kit帮助开发

使用 Direct2D 和 DirectWrite(C++、DirectX)制作按钮

微软怎么没DirectX 11下载?只找到DirectX 9··官方网站下载位置是?

DirectX 11能解释下是啥意思?