调用vrapi_SubmitFrame2()时的SIGSEGV



我正在将一款游戏移植到Quest,因此我的部分工作是将引擎的Vulkan渲染器与Oculus Mobile SDK对接。

我相信我正确地设置了SDK(我遵循了Oculus文档中的示例和指南(,但在尝试提交框架时仍然遇到了一个严重的错误。

以下是我目前正在做的事情的高级列表:

  • 我初始化API
  • 我创建了一个带有预期扩展的Vulkan实例和设备
  • 我获取每只眼睛的交换链,并为它们的每一张图像获取Vulkan处理程序
  • 我使用这些图像设置帧缓冲区和渲染过程
  • 我获得了一个原生的android窗口
  • 我进入VR模式(确保应用程序已恢复(

然后在渲染循环结束时,我设置一个ovrSubmitFrameDesc,然后调用vrapi_SubmitFrame2()。我还确保我只在所有工作都提交到GPU后才调用vrapi_SubmitFrame2()(我目前在工作队列上使用围栏(。

但是,正如我之前提到的,对vrapi_SubmitFrame2()的调用失败了。目前,它在Quest的Vulkan驱动程序中引发了一个SIGSEGV

backtrace:
#00 pc 000000000010b2d8  /vendor/lib64/hw/vulkan.kona.so (!!!0000!b78ad09fc24eab751708d0a80613cf!09c6a36!+24) (BuildId: cc478ff923cc27b87607fb1f1a3b87ef)
#01 pc 00000000000c3b04  /vendor/lib64/hw/vulkan.kona.so (qglinternal::vkQueueSubmit(VkQueue_T*, unsigned int, VkSubmitInfo const*, VkFence_T*)+4468) (BuildId: cc478ff923cc27b87607fb1f1a3b87ef)
#02 pc 000000000018a608  /system/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x8cd000) (BuildId: aa2c28d3d4127c2e2e9a5125be000207dcc27ebd)
#03 pc 0000000000160a2c  /system/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x8cd000) (BuildId: aa2c28d3d4127c2e2e9a5125be000207dcc27ebd)
#04 pc 0000000000162b6c  /system/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x8cd000) (vrapi_SubmitFrame2+7564) (BuildId: aa2c28d3d4127c2e2e9a5125be000207dcc27ebd)
#05 pc 00000000048a85fc  /data/app/myapp-Y6tT_vtGWj8JJ1PwgxheNA==/base.apk!libgrid.so (offset 0x6a9b000) (MyEngine::endVrFrame(unsigned int)+160) (BuildId: c9933f7ea0ad0c36a592bc4316e499e9db767d60)

错误发生在内部vkQueueSubmit()调用上,这让我认为这在某种程度上与我使用命令队列的方式有关。但是,即使我将一个分离的队列设置为同步队列,并且不对其执行任何操作(即,不向其提交任何命令(,我仍然会收到相同的错误。

有人知道我可能做错了什么吗?

PS(1(,我试着用一个空白层,而不是一个合适的投影层,只是想看看我是否能通过这一点,但这没有帮助。

PS(2(,我没有从验证层得到任何错误。

PS(3(,我进入VR模式的线程与我调用vrapi_SubmitFrame2()的线程相同。

让我先问一个问题:你认为谁会赢,18年的软件开发经验,还是这个糟糕的boi?

在设置OVR的同步队列时,从vrapi_SubmitFrame2()引发的SIGSEGV之谜只不过是一个愚蠢的错误

vpapi_DefaultModeParmsVulkan(&m_java, (long long)&queueHandle);

那行应该写为:

vpapi_DefaultModeParmsVulkan(&m_java, (long long)queueHandle);

相关内容

  • 没有找到相关文章

最新更新