存在 SwapChain 导致的 DirectX 内存泄漏
Posted
技术标签:
【中文标题】存在 SwapChain 导致的 DirectX 内存泄漏【英文标题】:DirectX Memory Leak Caused By SwapChain Present 【发布时间】:2018-11-22 16:55:27 【问题描述】:Image of SwapChain Memory Leak
您好,我只是 DirectX 11 编程的初学者, 但最近我面临一个严重的问题。 即使我使用互联网上的任何教程,也总会留下一些漏洞。 我追踪了它的原因,它是 Swapchain Present。 但奇怪的是,它不是不断增加泄漏,而是一次。 甚至在第一次调用 Present 时也不会。 几秒钟后,大约 3~5mb 的内存会像该图像一样增加。 如果我提前终止程序,泄漏就不会留下。 甚至在我看到 Present 函数绘制的屏幕之后。 它对于进行编程并不重要,但它让我发疯。 在我搜索了一些之后,我认为这是关于交换链的。 我可以看到提示我的警告 DXGI_SWAP_EFFECT_FLIP_DISCARD 而不是 DXGI_SWAP_EFFECT_DISCARD。 所以我更改了 Desc 并将缓冲区计数增加到 2,但泄漏仍然存在。我在其他电脑上测试过,但没问题。我认为最近的 Windows 更新有问题。我找到了一个帖子,但不是我的情况。 IDXGISwapChain::Present Memory Leak 它不断增加的内存,他的 GPU 是 AMD,而我的是 NVIDIA。 我尝试重新安装 Windows,但它在几个小时内就好了,但它又出来了。 没有人遭受这个问题吗?我找不到关于此的任何问题。 如果有人知道这一点,请帮助我。谢谢。
【问题讨论】:
【参考方案1】:伙计们,这是因为 Nahimic。 如果您使用的是 MSI 笔记本电脑,它会为您推荐的音频程序。 不要安装它。
【讨论】:
以上是关于存在 SwapChain 导致的 DirectX 内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章
亲爱的 IMGUI 和 DirectX 12 覆盖 (DXGI_ERROR_INVALID_CALL)
是否可以使用 DirectX 工具包中的屏幕抓图捕获桌面/屏幕截图?
DirectX 11引擎在第三次代码改进后没有突然运行,我不知道为什么
csharp デバイスとSwapChainを作成のみの部分コード