搜索
开发文档
应用开发
快应用开发
小游戏开发
开发文档/应用开发/系统适配/使用规范/openGL ES glFinish规范
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

上一篇:
下一篇:
文档内容是否有帮助?
有帮助有帮助
无帮助无帮助