UE5.5打安卓的Vulkan包时,若r.Vulkan.DelayAcquireBackBuffer=2,则包体启动时会立即崩溃。
r.Vulkan.DelayAcquireBackBuffer为0或1时则不会崩溃。
UE5.4版本的r.Vulkan.DelayAcquireBackBuffer=2是可以正常运行的,这个功能似乎并不稳定?
我看r.Vulkan.DelayAcquireBackBuffer的默认值是1,按照描述,值为1的情况似乎每帧会多一次额外的复制,能否讲下为什么默认是使用1吗?值为0或2时又会对性能有何影响?
Liu.Wei
(Liu.Wei)
3
Hi,
你好,r.Vulkan.DelayAcquireBackBuffer=2的功能已经再5.6中去掉了,Android上应该不支持这个功能,可以看改动 https://github.com/EpicGames/UnrealEngine/commit/6a90bb7d61d0093450c83736a66dfd671d505fad
使用1的好处有两点
- 之前有遇到过设备进入后台,再回到前台的时候,gpu crash的问题,应该是进入后台前创建了swapchain,但是回到前台后,swapchain失效了,导致后续出问题,所以改成delay acquire后修复了这个问题。
- Vulkan横屏后,需要处理preTransform的问题,要么交给驱动,要么自己做,所以因为第一个原因,引擎所有绘制是绘制到一个RT上的,就可以自己做Pretransform,这样可以避免驱动层做PreTransform,减少一次驱动层的开销。