UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context

Posted dzj2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context相关的知识,希望对你有一定的参考价值。

开发和部署环境
Unity:2020.3.40
Pico G2 4k

一、 报错信息一览

  • (1) [EGL] Unable to acquire context:
    E Unity : [EGL] Unable to acquire context: EGL_BAD_SURFACE: An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.
    解决办法:多线程渲染争用,所以包这个错误,关闭多线程渲染。

  • (2) GL_OUT_OF_MEMORY
    Not enough memory left to execute command
    解决办法:GC或者性能问题,脚本后台改为IL2CPP试试
    另外不要勾选实验性的垃圾回收策略【Use incremental GC】

  • (3) E Unity : [./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp line 449]
    盲猜是图形接口Graphics Api设置有问题

  • (4)Build失败:processing gradle project failed with exception:sharing violation on path
    猜测是多次build,文件被锁。
    重启Unity工程,如果还有问题就重启电脑

二、修改配置

1、多线程渲染(Multithreaded Rendering):关闭

2、Graphics Jobs:关闭,它本身就是实验性质的

3、图形接口Graphics APIs设置:勾选为Auto Graphics API

4、脚本后台Scripting Backend:设置为【IL2CPP】

也许能提高一点电性能,只是猜测,没有测试数据。

5、Api兼容性设置为:【.NET 4.X】

这一个不知道有没有用,没有测试数据。

6、部署的硬件框架设置

勾选【ARMv7】和【ARMv64】
可能不需要勾选,没有详细测试对比

7、实验性的垃圾回收策略

另外不要勾选实验性的垃圾回收策略【Use incremental GC】,该策略与传统策略的对比,请自行搜索。

UnityVR开发第一周小结

做的东西有限,把一个PC项目改成VR项目

学习的东西:

  两个手柄和一个头显都有自己的Canvas,做出来的小界面是随着设备的移动而移动的。

  手柄的射线只能点击在自己Player内的Canvas的UI,不能点击放在PC端摄像机的UI,点击的方式和用鼠标、触屏点击一样。

  据现在了解的用手柄和别的物体进行交互,有两种方法:

    1. 发射射线,进行射线检测,可以与物体交互,适合像这次改别人的项目,交互的东西太多,直接封装起来,一起玩。

    2.碰撞检测,手柄自动的,需要给交互的物体放碰撞器

  其他的和正常开发的PC差不多。

  现阶段已经完成了UI交互的VR修改。

以上是关于UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context的主要内容,如果未能解决你的问题,请参考以下文章

UnityVR-机械臂场景3-手爪

UnityVR中 如何实现VR模式下滑动Slider让Cube变色。 如何滑动Slider

猿创征文|School StartsFirstProject~UnityVR(HTCVive设备开发)

unityVR关于Oculus如何连接unity编译器,无需打包就可以看到场景的教程

播放HLS协议时ts文件报错404是什么问题?

EasyNVR播放hls协议时ts文件报错404是什么问题?