我们有一个使用 Direct3d/C++ 开发的渲染引擎的应用程序。最近我们遇到了一个涉及 ID3DXConstantTable SetFloat/SetVector 的崩溃(访问冲突),当我们在带有 PDB 的发布二进制文件中附加一个调试器时,它显示在 D3dx9_42.dll 内部。当我们减少使用的 D3dPOOL Rendertarget 纹理的数量时,这种崩溃消失的一种方式是,但从估计 GPU 内存负载它没有接近可用总量的一半,因为我们使用的是 3GB NVIDIA 卡。
怀疑这是由于内存覆盖导致的一些堆损坏,我们进行了代码检查,然后我们使用应用程序验证器和调试器来根除内存覆盖,这可能在运行的后期阶段崩溃。我们遇到了一些问题我们解决了。但是这种崩溃仍然存在于第一帧渲染 ID3DXConstantTable SetFloat/SetVector 。更多信息:这是使用 LARGEADDRESSAWARE 标志运行的 32 位应用程序。任何指针?