我们项目在snapdragon 8gen2 运行时会偶尔出现下图的bug 现象是渲染SVirtualJoystick 时采样到了 场景的texture,而不是我们在SVirtualJoystick制定的Texture,
正确的是这样:[Image Removed]有时候变成这样:
[Image Removed]
我们尝试截帧诊断错误,但无法截到错误的那一帧, 我们发现SVirtualJoystick 是在slate的第一个drawcall 渲染 ,他的上一个drawcall时upscale pass, upscale绑定的SceneColor也是在第一个纹理单元,所以我们怀疑是由于在渲染SVirtualJoystick的时候绑定纹理失败 ,采样了上一个drawcall绑定的texture, logcat 也没有任何驱动层的报错信息 ,
1. 我们想了解一下你们有没有遇到过关于snapdragon8gen2 类似的反馈?
2. 有没有什么方案能够定位引擎渲染问题还是硬件驱动问题,在项目中如何规避这样的问题?
Liu.Wei
(Liu.Wei)
2
Hi,
这种情况我也是第一次见到,之前应该没有见到过类似的情况发生,也没有见到过有报类似的驱动问题。请问你们是4.26版的引擎,跑的是OpenGL吗?这种情况只在Gen2上遇到,其他设备上有遇到过吗?
我感觉大概率还是BindTexture的问题,偶现后是一直显示错误,还是会闪烁?如果是一直显示错误,截帧就会变正常吗?
我们用的是4.26版引擎 ,跑的opengl 渲染器,
这样的问题只在snapdragon8gen2 上遇到过,我们专门跑了 8gen1, 8gen3, 都没发现类似的问题 ,其他gpu 设备也没类似问题 。
BindTexture 后面我加了glGetError, 即使正常显示也不停error code 1282 is 0x0502 GL_INVALID_OPERATION, 但是snapdragon profile 截帧看glGetError 12288 EGL_SUCCESS
[Image Removed]不是一直错误现象,偶尔出现 很快就恢复正常, 关于截帧,我们尝试过很多次, 始终截不到显示错误的那一帧
关闭upscale pass后 就不会出现这个bug!
8gen2 驱动版本 GlVersion: OpenGL ES 3.2 V[Content removed] 1695727537) (Date:09/26/23)
Liu.Wei
(Liu.Wei)
4
看起来更像是驱动的问题,最好能找高通的同学看一下,如果有需要可以随时拉我一起。