【发布时间】:2018-11-16 16:19:43
【问题描述】:
我正在尝试创建一个几何着色器,它使用流输出阶段遵循 MSDN 上提供的大纲:Link
但是,当我尝试这样做时,我收到以下错误:
ID3D11Device::CreateGeometryShaderWithStreamOutput: Stream (=3435973836) must be less than or equal to 3.
据我所知,我可以定义流的唯一点是在流输出声明条目中,但我已经这样做了(下面的代码)。
// Reads compiled shader into a buffer
HRESULT result = D3DReadFileToBlob(filename, &geometryShaderBuffer);
D3D11_SO_DECLARATION_ENTRY SODeclarationEntry[3] =
{
{ 0, "POSITION", 0, 0, 3, 0 },
{ 0, "NORMAL", 0, 0, 3, 0 },
{ 0, "TEXCOORD", 0, 0, 3, 0 }
};
// Create the geometry shader from the buffer & SO declaration
result = renderer->CreateGeometryShaderWithStreamOutput(geometryShaderBuffer->GetBufferPointer(), geometryShaderBuffer->GetBufferSize(), SODeclarationEntry, sizeof(SODeclarationEntry),
NULL, 0, 0, NULL, &streamOutputGeometryShader);
我应该在其他地方定义输出流吗?
【问题讨论】: