在Mesa 10和GLFW3中使用OpenGL核心配置文件

恩斯洛

我在装有Intel HD 3000 GPU的HP笔记本电脑上运行带有Mesa 10的Arch Linux。(还有一张ATI卡,但我在启动时将其关闭了。)我正在尝试使用核心配置文件运行OpenGL代码。根据glxinfo,应支持OpenGL 3.1和GLSL 1.4:

-> % glxinfo | grep version
OpenGL core profile version string: 3.1 (Core Profile) Mesa 10.0.1
OpenGL core profile shading language version string: 1.40
OpenGL version string: 3.0 Mesa 10.0.1
OpenGL shading language version string: 1.3

但是,当我编译GLFW程序时,请尝试强制使用核心配置文件,并要求提供OpenGL版本,如下所示:

#include <GL/glew.h>
#include <GLFW/glfw3.h>

int main(void)
{
    // Use OpenGL 3.1 core profile
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
    glfwWindowHint(GLFW_CONTEXT_REVISION, 0);

    // Create opengl context
    int window_width = 1024;
    int window_height = 768;
    GLFWwindow* window = initialize_glfw(window_width, window_height);
    if (!window)
    {
        glfwTerminate();
        std::exit(EXIT_FAILURE);
    }

    // Display OpenGL version
    int major, minor, rev, client, forward, profile;
    glfwGetVersion(&major, &minor, &rev);
    std::cout << "OpenGL - " << major << "." << minor << "." << rev << std::endl;
}

以及使用GLSL #version 140编译着色器,这是打印输出:

-> % ./main
OpenGL - 3.0.3
Shader compilation failed with this message:
0:1(10): error: GLSL 1.40 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES

因此,似乎应该支持OpenGL 3.1和GLSL 1.4,但在我的GLFW程序中并未使用它们。谁能告诉我可能是什么问题?

恩斯洛

重新阅读文档后,似乎出现了两个问题。正如elmindreda指出的那样,在创建窗口提示后调用init会将窗口提示恢复为默认值,因此必须首先调用init。

其次,我使用的是OpenGL 3.1,GLFW文档说: “如果要求3.2以下的OpenGL版本,则必须使用GLFW_OPENGL_ANY_PROFILE。” 我正在尝试使用GLFW_OPENGL_CORE_PROFILE。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Mesa 10和GLFW3中使用OpenGL核心配置文件

来自分类Dev

OpenGL Mesa:使用OpenGL 4.0

来自分类Dev

MESA上的Opengl版本问题

来自分类Dev

Ubuntu 13.10和Mesa 9.2.1上的vdpau

来自分类Dev

Ubuntu 13.10和Mesa 9.2.1上的vdpau

来自分类Dev

如何在Ubuntu中使用CMake查找和链接OpenGL(mesa)包

来自分类Dev

Proton使用的mesa + vulkan驱动程序版本与主机mesa驱动程序版本不匹配

来自分类Dev

Ubuntu 14.10 mesa 10.1.3中的OpenGL GLSL 3.30

来自分类Dev

如何在Ubuntu上使用Mesa 10.1启用OpenGL 3.3

来自分类Dev

How to enable OpenGL 3.3 using Mesa 10.1 on Ubuntu

来自分类Dev

Mesa + Linux:gl.h不包含现代OpenGL

来自分类Dev

为什么OpenGL供应商是“ Mesa项目”

来自分类Dev

Linux-图形驱动程序和Mesa之间的关系

来自分类Dev

Linux-图形驱动程序和Mesa之间的关系

来自分类Dev

构建 Mesa3d 时缺少依赖项

来自分类Dev

在Ubuntu 16.04中安装mesa-opencl-icd

来自分类Dev

如何强制Chrome使用WebSA的Mesa软件驱动程序

来自分类Dev

如何强制Chrome使用WebSA的Mesa软件驱动程序

来自分类Dev

Steam运行但需要libgl1-mesa-dri:i386和libgl1-mesa-glx:i386

来自分类Dev

Steam运行但需要libgl1-mesa-dri:i386和libgl1-mesa-glx:i386

来自分类Dev

在 Python 中使用 Mesa 库时,是否可以在多代理系统中定义子代理?

来自分类Dev

在GLFW下创建OpenGL核心配置文件

来自分类Dev

带有软件光栅化器的Mesa 3D OpenGL 3.2

来自分类Dev

使用Mesa v18.0.5,但仅获取OpenGL v3.0

来自分类Dev

无法与Mesa一起使用OpenGL ARB_gpu_shader_int64扩展名

来自分类Dev

将Mesa安装到主文件夹,然后使应用程序从那里使用它

来自分类Dev

如何在Python上使用Mesa和Networkx获得节点之间的距离?

来自分类Dev

为什么我的32位OpenGL库指向mesa而不是nvidia,我该如何解决?

来自分类Dev

为什么 Intel 芯片的 Mesa OpenGL 驱动程序称为 i965?

Related 相关文章

  1. 1

    在Mesa 10和GLFW3中使用OpenGL核心配置文件

  2. 2

    OpenGL Mesa:使用OpenGL 4.0

  3. 3

    MESA上的Opengl版本问题

  4. 4

    Ubuntu 13.10和Mesa 9.2.1上的vdpau

  5. 5

    Ubuntu 13.10和Mesa 9.2.1上的vdpau

  6. 6

    如何在Ubuntu中使用CMake查找和链接OpenGL(mesa)包

  7. 7

    Proton使用的mesa + vulkan驱动程序版本与主机mesa驱动程序版本不匹配

  8. 8

    Ubuntu 14.10 mesa 10.1.3中的OpenGL GLSL 3.30

  9. 9

    如何在Ubuntu上使用Mesa 10.1启用OpenGL 3.3

  10. 10

    How to enable OpenGL 3.3 using Mesa 10.1 on Ubuntu

  11. 11

    Mesa + Linux:gl.h不包含现代OpenGL

  12. 12

    为什么OpenGL供应商是“ Mesa项目”

  13. 13

    Linux-图形驱动程序和Mesa之间的关系

  14. 14

    Linux-图形驱动程序和Mesa之间的关系

  15. 15

    构建 Mesa3d 时缺少依赖项

  16. 16

    在Ubuntu 16.04中安装mesa-opencl-icd

  17. 17

    如何强制Chrome使用WebSA的Mesa软件驱动程序

  18. 18

    如何强制Chrome使用WebSA的Mesa软件驱动程序

  19. 19

    Steam运行但需要libgl1-mesa-dri:i386和libgl1-mesa-glx:i386

  20. 20

    Steam运行但需要libgl1-mesa-dri:i386和libgl1-mesa-glx:i386

  21. 21

    在 Python 中使用 Mesa 库时,是否可以在多代理系统中定义子代理?

  22. 22

    在GLFW下创建OpenGL核心配置文件

  23. 23

    带有软件光栅化器的Mesa 3D OpenGL 3.2

  24. 24

    使用Mesa v18.0.5,但仅获取OpenGL v3.0

  25. 25

    无法与Mesa一起使用OpenGL ARB_gpu_shader_int64扩展名

  26. 26

    将Mesa安装到主文件夹,然后使应用程序从那里使用它

  27. 27

    如何在Python上使用Mesa和Networkx获得节点之间的距离?

  28. 28

    为什么我的32位OpenGL库指向mesa而不是nvidia,我该如何解决?

  29. 29

    为什么 Intel 芯片的 Mesa OpenGL 驱动程序称为 i965?

热门标签

归档