pixel10 手机 opengles 驱动版本 OpenGL ES 3.2 build 25.3@6908880 第二次进入游戏后,通过binary 创建 shader program的时候会崩溃 . 附件图片中是崩溃堆栈。如果还想用binary,请问有什么解决办法吗?
[Attachment Removed]
pixel10 手机 opengles 驱动版本 OpenGL ES 3.2 build 25.3@6908880 第二次进入游戏后,通过binary 创建 shader program的时候会崩溃 . 附件图片中是崩溃堆栈。如果还想用binary,请问有什么解决办法吗?
[Attachment Removed]
重现步骤
pixel10 手机 opengles 驱动版本 OpenGL ES 3.2 build 25.3@6908880 第二次进入游戏后,通过binary 创建 shader program的时候会崩溃 .
[Attachment Removed]
Hi,
我们内部有一个类似记录,在Pixel 9和Xiaomi Redmi Note 10S上崩溃,有几个现象,一个是这些设备的驱动都比较老,小米的驱动是r26的(你们的情况是r25),我们用一台三星S10,Android版本比Xiaomi的老,但是驱动版本是r32的,就不崩溃。第二个现象是,我们改用deferred后,也不崩溃了,只有Forward崩溃。
我感觉如果要找原因的话,需要先定位到这个binary来自那个vs和ps,然后确认一下输入输出部分有什么特别的,大概率是某种格式这个驱动支持不好。如果驱动能返回失败,不要直接崩溃,至少有机会用源码重新link。
后续如果有线索,可以继续交流。
[Attachment Removed]
你好, 我们现在能确定是驱动层bug ,关于bug 信息摘要如下 :
使用 OpenGL ES 3.1 的 Unreal Engine 4.26 应用在 Pixel 10 上,第二次及以后启动时于 glLinkProgram(或 glProgramBinary)内部以 SIGSEGV 崩溃。
崩溃模块:/vendor/lib64/egl/libGLESv2_powervr.so 崩溃函数:CreateProgramShaderBridgeVariant 首次安装后的首次启动从未崩溃。
崩溃原因(已由在线调试与内存 dump 证实)
为什么只在缓存命中时崩溃
源码编译路径,同样的 STATIC 记录值恒为 0,不会越界。因此崩溃只出现在 blob 命中路径,且随堆残留内容与堆布局呈概率性。
所以请教下面几个问题 :
Hi,
我们在很早以前就评估过,OpenGL用UniformBuffer会导致性能和内存的问题,我们的理解是,虽然UB理论上应该是全局一份,所有Program如果用同一个UB应该是同一份,但实际上应该是每个Program一份UB,并且UB开启后,性能会有明显的下降。
Angle转Vulkan不是很确定,因为老的设备对Vulkan的支持也不是很好。
有没有可能在这种设备上关掉Binary Cache?或者如果能确定哪些Program会造成崩溃,就把特定的Program通过link的方式创建。
[Attachment Removed]