我正在编写一个视频播放器,我解码了视频帧并使用 3sampler2D
秒来接收 YUV 格式的帧数据,它渲染得非常好。
但它有严重的性能问题glTexSubImage2D
。我观察到奇怪的行为:
- 以 Y、U、V 的顺序上传 YUV 数据,然后上传U随机缓慢(1ms 到 100ms)。
- 按 Y、V、U 的顺序上传 YUV 数据,然后上传V随机缓慢(1ms 到 100ms)。
- 按 U、V、Y 的顺序上传 YUV 数据,然后上传Y一直很慢(10ms 到 50ms)。
对于其他上传不慢的组件,耗时不到1ms。我glTexSubImage2D
用internalFormat=GL_RED
, format=GL_RED
, dataType=GL_UNSIGNED_BYTE
.
这些奇怪行为的可能原因是什么?