因此,在我的应用程序的某些情况下,我有GPU内存泄漏。但是,我不知道GPU的任何详细的内存分析器,如CPU的内存分析器。那里有什么可以达到这个目的吗?我正在使用D3D(因为它的WPF,有d3d9,d3d10,d3d11组件......)
谢谢!
答案 0 :(得分:0)
您是否在Dx控制面板中使用调试设置?这有助于您转储泄漏分配的ID。然后,您可以继续设置HKLM注册表值并中断泄漏分配,如下所述:
http://legalizeadulthood.wordpress.com/2009/06/28/direct3d-programming-tip-5-use-the-debug-runtime/
http://www.gamedev.net/topic/313718-tracking-down-a-directx-leak/
您也可以尝试使用NSight,您可以从NVidia免费下载。对于Maximus卡,还有一个特定的GPU调试器,否则您可以使用图形调试器并尝试隔离那里的内存。在性能调试器中,您可以检测OpenGl和DirectX事件,但这更加注重性能。
答案 1 :(得分:0)
取决于您的GPU供应商(由于您尚未向我们提供信息),以下是可能的解决方案:
英特尔:使用英特尔媒体SDK的GPU利用率实用程序。这包含在英特尔INDE(集成开发环境)中。
AMD:CodeXL提供了即时调试器和广泛的内存分析工具,现在作为GPUOPen计划的一部分提供。NVIDIA:使用Nvidia Visual Profiler(NVVP)和Nvidia Nsight的跟踪,这些实用程序随标准Nvidia CUDA安装程序一起提供。
注意:
谢谢和问候,
Brainiarc7。