当前位置:首页 » APP上架 » 正文

小米开发平台openGL ES glFinish使用规范

小米开发平台openGL ES glFinish使用规范

1.背景

在高通最新的平台上,为了进一步提升性能,启用了 CompressTexturesOnUpload 功能,如果应用不遵循 openGL glFinish 规范,会​进一步增加应用渲染数据出现异常的概率。

2.规范说明

应用在修改更新纹理后,openGL 规范要求应用程序执行完 glFinish 后, 其他地方才能去操作使用此纹理(注意高通平台网址转APP生成目前只需要 glFlush, 但对于 openGL 规范,需要执行 glFinish,详见 OpenGL ES 3 specification section D “Propagating changes to objects”)。

3.案例分析

  • 美图秀秀相机预览人像扭曲
小米开发平台openGL ES glFinish使用规范小米开发平台openGL ES glFinish使用规范
  • 美颜相机预览画面偏暗
小米开发平台openGL ES glFinish使用规范小米开发平台openGL ES glFinish使用规范
  • 问题原因

应用的 thread 6 和 thread 7 共享 GL Context,然后 thread 6 对 thread 7 上传的纹理(texture13)进行采样,但是在 thread7 中,纹理更新时没有 进行 glFinish 或 glFlush,app开发生成导致数据渲染出现问题。所以 thread7 应该在纹理更新后调用 glFinish 或 glFlush,然后 thread 6 再使用 texture13 来渲染。

小米开发平台openGL ES glFinish使用规范小米开发平台openGL ES glFinish使用规范

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12691/

部分内容来自网络投稿,如有侵权联系立删

未经允许不得转载:一门应用 » 小米开发平台openGL ES glFinish使用规范
分享到

相关推荐

联系我们

微信公众号

yimendabao

关注官方微信,了解最新资讯

客服QQ
4001658508

企业QQ,点击发起咨询