gpt4 book ai didi

error-handling - 在 Vulkan 下,我应该期望 "device lost"条件正常吗?

转载 作者:行者123 更新时间:2023-12-03 08:25:15 24 4
gpt4 key购买 nike

我问是因为我想知道我应该使我的程序对设备丢失有多健壮。

我是否应该只期望设备在硬件错误、驱动程序错误、API 使用不当或未终止的着色器程序等情况下丢失?或者我是否也应该期望设备丢失,例如暂停和恢复我的笔记本电脑、最小化应用程序窗口,或者只是因为实现感觉像随机的那样?

最佳答案

不幸的是,它会因 GPU、驱动程序和操作系统而异,这导致 krOoze 引用的规范措辞有些模糊:

A logical device may become lost because of hardware errors, execution timeouts, power management events and/or platform-specific events.



作为引用,Android 操作系统本身没有任何东西需要丢失设备——例如当应用程序进入后台或屏幕关闭时,它不会强制设备丢失。

但是,如果出现 GPU 异常(或重置),某些驱动程序/硬件组合可能会报告设备丢失错误,除非驱动程序可以保证您的 VkDevice 中的任何内容都不会受到影响。这是一个令人惊讶的难以保证的保证,例如如果您的队列在问题发生时没有运行,但脏缓存行中可能仍然有一些数据,并且重置使这些行无效而不是将它们写回内存,那么您的数据将被损坏。异常/重置可能是由硬件或驱动程序错误引起的,或者系统上的任何应用程序遇到看门狗超时(着色器中的无限循环是一个简单的例子,但即使取得进展但只是花费太长时间也可能发生)。

在实践中,这些应该是相当罕见的事件,我相信(没有数据)这些天它主要是由热插拔(罕见)或行为不端的硬件/驱动程序/应用程序事件引起的,而不是像设备 sleep 这样的更常规的事情。

由于测试你的恢复代码会很困难,因此它可能会出现错误,我的建议是做一些粗暴但简单的事情,比如保存应用程序状态并自动重启你的应用程序,或者退出并询问用户重启。根据您正在构建的内容,做一些更复杂的事情可能是合理的,例如在不关闭应用程序的其余部分的情况下拆除并重新启动+恢复您的渲染器系统。

关于error-handling - 在 Vulkan 下,我应该期望 "device lost"条件正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com