开发文档
openGL ES glFinish规范更新时间: 2024-09-26 09:52:00
一、背景
在高通最新的平台上,为了进一步提升性能,启用了 CompressTexturesOnUpload 功能,如果应用不遵循 openGL glFinish 规范,会进一步增加应用渲染数据出现异常的概率。
二、规范说明
应用在修改更新纹理后,openGL 规范要求应用程序执行完 glFinish 后, 其他地方才能去操作使用此纹理(注意高通平台目前只需要 glFlush, 但对于 openGL 规范,需要执行 glFinish,详见操作规范。
三、案例分析
- 美图秀秀相机预览人像扭曲
- 美颜相机预览画面偏暗
- 问题原因
应用的 thread 6 和 thread 7 共享 GL Context,然后 thread 6 对 thread 7 上传的纹理(texture13)进行采样,但是在 thread7 中,纹理更新时没有 进行 glFinish 或 glFlush,导致数据渲染出现问题。所以 thread7 应该在纹理更新后调用 glFinish 或 glFlush,然后 thread 6 再使用 texture13 来渲染。
四、联系我们
如有疑问,请联系mi-support-thirdapps@xiaomi.com
上一篇:
下一篇: