gpu - 播放 360 视频并弹出 UI(钴)时如何合成 UI 和 360 视频
问题描述
现在我有一个问题,当 UI 弹出时,360 视频会抖动并显示质量较差的图片。关于 UI 和 360 视频,它们由 GPU(egl) 显示。那么它们是如何通过 GPU 合成的。你能帮忙标记一下在 Cobalt 上 UI 和 360 视频合成的代码位置吗?
解决方案
这是哪个版本的钴?
在 Cobalt 11 中,我们在 UI 光栅化期间渲染 360 度视频,当我们遇到“MapToMesh”过滤器节点时,例如https://cobalt.googlesource.com/cobalt/+/release_11/src/cobalt/renderer/rasterizer/skia/ render_tree_node_visitor.cc#360。这会调用一个回调,该回调最终会落在此代码中以渲染网格:https ://cobalt.googlesource.com/cobalt/+/release_11/src/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc#479 。
我不确定会发生什么,尽管当 UI 出现时,这对图形和 GPU 来说确实是一种压力更大的情况,因此此时您的平台的 GPU 可能被推到了极限。Cobalt 11 具有两个光栅化器,您可以尝试使用它们来查看是否有更好的结果,您可以在 gyp_configuration.gypi 文件中通过将“rasterizer_type”定义为“direct-gles”或“hardware”来执行此操作。