0

我试图通过调用 D3DCompile() 或 D3DCompile2() 来获取由我的程序编译的计算着色器的反射信息。

编译正常,代码正确执行。

然后我调用 D3DReflect 来获取针对已编译代码的反射器。

一旦我有了反射器,我就调用 reflector->GetDesc(&ShaderDesc);

这非常有效:ShaderDesc 结构报告 ConstantBuffers 等于 1,这是正确的。

然后我调用 reflector->GetConstantBufferByIndex(0) ,它总是返回空指针。

怎么了 ?

我的环境:Windows 10 完全最新,NVidia Quadro K4200 上的 DirectX11 驱动程序 24.21.14.1240 日期为 2019 年 7 月 21 日,D3DCompiler_47.dll 日期为 2019 年 3 月 19 日。

编辑:在着色器中,常量缓冲区定义如下:

cbuffer TImageParams : register(b0)
{
    int2   RawImageSize;        // Actual image size in RawImage
    // More items....
};

亲切的问候

4

0 回答 0