Why won't MESA let me use OpenGL 4.5 (or anything but 3.0)?

点点圈 提交于 2019-12-11 02:31:27

问题


I have installed the newest version of MESA (17.0.3), which should allow me to use OpenGL higher than 3.0 (right?)

The problem: I am stuck at version 3.0. (and by that I mean I don't know how to make MESA use a higher version, or even if I can) I know my computer (Chromebook running crouton for linux) has OpenGL 4.5 capability... But I also know nothing about MESA :\.

I do know that you can get info about OpenGL and such using glxinfo, so here's my best info I can give at the moment.

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 400 (Braswell) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.3
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.0.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

Thanks in advance and any help is appreciated :)

Also, for bonus marks, if anybody knows what a 'Core Profile Version' is, I would love to know :)


回答1:


Note that the version string appears three times (we ignore the shading language version string):

OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.3
...
OpenGL version string: 3.0 Mesa 17.0.3
...
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.3

So if you create a core context, you get 4.5. If you create a non-core (compatibility) context, you get 3.0. If you create an ES context, you get 3.1.

So if you want to use OpenGL 4.5 you have to request a core context. The compatibility context is the default. Information on how to create a core context will be in the documentation for whatever API you use to create an OpenGL context (GLFW, SDL, or whatever).

The (non-Mesa) vendor drivers do not behave the same way, they make the latest version available even if you select a compatibility context. However, Mesa and macOS drivers will only give you newer versions for core contexts.



来源:https://stackoverflow.com/questions/43288180/why-wont-mesa-let-me-use-opengl-4-5-or-anything-but-3-0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!