在OSX上将项目升级到OpenGL 4.1 - 使用NSOpenGLProfileVersion4_1Core使渲染变慢

时间:2015-01-05 16:40:43

标签: macos opengl opengl-4

我试图将OSX OpenGL项目更新为OpenGL 4.1。我的着色器使用#version 410,一切正常,非常活泼。今天我注意到4.1的新NSOpenGLPFAOpenGLProfile值,所以我将像素格式配置文件从NSOpenGLProfileVersion3_2Core更新为NSOpenGLProfileVersion4_1Core,现在渲染疯狂慢。我的像素格式初始化代码如下所示:

NSOpenGLPixelFormatAttribute attrs[] =
{
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFADepthSize, 24,
    NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion4_1Core,
    0
};

NSOpenGLPixelFormat *pf =
    [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];

任何人都知道为什么会这么慢 - 我还需要更新一些东西吗?

2 个答案:

答案 0 :(得分:1)

在Mavericks上使用NSOpenGLProfileVersion4_1Core会导致完整的软件回退。这不是优胜美地的问题。

答案 1 :(得分:0)

在任何一种情况下(10.9或10.10)使用NSOpenGLPFAOpenGLProfile,NSOpenGLProfileVersion3_2Core实际上将启用OpenGL和GLSL版本4.1。我在两种情况下都用过它。

NSOpenGLProfileVersion3_2Core用词不当。它实际上可以使用最新版本,不一定是3.2。

使用prepareOpenGL方法中的以下调用检查此项为真:

NSLog(@"OpenGL version = %s", glGetString(GL_VERSION));
NSLog(@"GLSL version = %s", glGetString(GL_SHADING_LANGUAGE_VERSION));