ios - iOS glGenerateMipmap 是同步的,还是可能是异步的?

标签 ios ipad opengl-es mipmaps

我正在开发一款在 OpenGL ES 中使用大型纹理的 iPad 应用程序。当场景第一次加载时,我在天花板上看到一个大的黑色伪影持续了几帧,如下图所示。就好像更高级别的 mipmap 尚未填充。在后续帧中,天花板正确显示。

当我开始使用 mipmapping 时,这个问题才开始出现。一种可能的解释是 glGenerateMipmap() 调用异步执行其工作,生成一些 mipmap 创建工作程序(在单独的进程中,或者可能在 GPU 中)并返回。

这可能吗,还是我找错树了?

Higher mipmap levels don't exist

最佳答案

在单一上下文中,所有操作似乎都严格按顺序执行。但是,在您最近的回复中,您提到了使用第二个线程。为此,您必须创建第二个共享上下文:重新进入 OpenGL 上下文始终是非法的。如果已经在使用共享上下文,您仍然必须遵循一些同步规则,这些规则记录在 http://developer.apple.com/library/ios/ipad/#DOCUMENTATION/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithOpenGLESContexts/WorkingwithOpenGLESContexts.html 中。

关于ios - iOS glGenerateMipmap 是同步的,还是可能是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727206/

相关文章:

iphone - 区分分段控制值变化是来自用户还是来自系统

ios - 在自定义 uitableViewCell 中获取错误值

ios - 当加载WKWebview时,它是nil

objective-c - 增加 UISearchDisplayController PopOver 结果的宽度

ios - 为 UITableViewCell 附件的背景设置自定义颜色

iphone - 更改 UIPageViewController 的背面颜色

objective-c - 将 ANSI C 移植到 Objective C 所需的最小更改是什么?

ios - 如何在 Qualcomm 样本的帧标记上使用 glDrawArrays() 而不是 glDrawElements()

graphics - webgl:使用透明度(alpha)时为白色边框

iPhone UIImagePickerController : show camera preview on top of openGl viewport