gpt4 book ai didi

ios - 在许多 EAGLContext 之间切换的成本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:34 25 4
gpt4 key购买 nike

我正在编写一些具有 GridView 的代码(屏幕上同时显示约 20 个 subview )。每个 subview 在 GL 中绘制其内容,并有自己的绘制线程和 EAGLContext。

这样做的好处是每个 View 都与应用程序中的其他 GL 使用相对隔离,尽管屏幕上有 20 个这样的 View ,我们必须每帧 glFlush+setCurrentContext: 20 次。我的直觉告诉我这不是 GL 的最有效使用方式。

我的问题:

  • 切换上下文的成本是多少?
  • 是否必须为每个上下文执行 glFlush 实际上会减慢速度,还是 glFlush 只会停止当前上下文?

最佳答案

• Does having to glFlush for each context actually slow it down, or does glFlush only stall the current context?

上下文有自己独立的命令流。

所有这些东西最终都必须序列化以便在单个 GPU 上绘图,因此刷新 20 个并发上下文的命令流将对驱动程序执行此操作的任何部分施加一些压力。

幸运的是,GL 不保证不同上下文之间的任何同步,因此 GL 本身不会花费大量精力来确保来自不同上下文的命令以相对于彼此的特定顺序执行。但是,如果您正在等待栅栏同步。对象与其中一个命令流中的另一个上下文关联,那么它会引入一些有趣的 GL 相关开销。

• What's the cost of switching contexts?

为什么要切换上下文?

您说每个 View 都有自己的线程和上下文,所以我很难理解您为什么要将当前上下文更改为线程。

关于ios - 在许多 EAGLContext 之间切换的成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com