Vulkan VMA:异常退出期间触发的不需要的断言

时间:2021-05-04 19:01:02

标签: vulkan

在我的渲染器中,我加载了一些 DLL 并在其中执行了一些验证。当验证失败时,我从 DLL 中抛出异常以退出渲染器,并带有详细说明错误的 MessageBox,并将错误记录到文件中。由于跨 DLL 抛出异常的时髦性,为了让 Windows 不终止 EXE,当渲染器通过异常退出时,我故意通过 obj.release() 泄漏一些 std::unique_ptr 对象。这个想法是,由于我们是通过特殊情况退出的,这些对象的泄漏是可以接受的,因为操作系统会在应用退出时清理内存。

我在使用 AMD 的 Vulkan 内存分配器时遇到了问题。分配器执行断言检查以确保其所有内存都已被释放。由于我故意泄漏内存,在这种情况下,我不希望触发该断言。

有没有办法手动释放VMA内存,这样这个断言就不会被触发?由于我泄漏了指向该内存的对象,因此我无法在每个对象的基础上释放内存。

我希望 VMA 有办法在运行时禁用这些断言。

注意:这一切都发生在开发过程中,在调试模式下。目前,发布模式不是问题。

0 个答案:

没有答案