为什么基于GLX的应用程序可以在Ubuntu的Wayland上运行?
因此,GLX是X11上OpenGL的图形上下文创建和管理系统。但从设计上看,Wayland与X11不兼容,并为OpenGL上下文管理而不是GLX实现EGL。那么,在Ubuntu17.10上基于Wayland的会话上,我如何仍然可以运行使用GLX创建上下文的应用程序(例如,为什么基于GLX的应用程序可以在Ubuntu的Wayland上运行?,ubuntu,opengl,glx,wayland,Ubuntu,Opengl,Glx,Wayland,因此,GLX是X11上OpenGL的图形上下文创建和管理系统。但从设计上看,Wayland与X11不兼容,并为OpenGL上下文管理而不是GLX实现EGL。那么,在Ubuntu17.10上基于Wayland的会话上,我如何仍然可以运行使用GLX创建上下文的应用程序(例如,glxinfo和glxgears)?是否正在进行一些透明的GLX仿真 另外(因为这可能与上述问题有关)为什么在Wayland上运行时,这些基于GLX的应用程序不能使用MSAA(例如,glxinfo不返回任何支持MSAA的上下文类
glxinfo
和glxgears
)?是否正在进行一些透明的GLX仿真
另外(因为这可能与上述问题有关)为什么在Wayland上运行时,这些基于GLX的应用程序不能使用MSAA(例如,
glxinfo
不返回任何支持MSAA的上下文类型)-至少在我测试它们的英特尔GPU上-而MSAA对相同的应用程序运行良好,在X.org而不是Wayland上运行GPU和Ubuntu版本?因此根据@genpfault提供的链接:
- XWayland是XOrg的一部分,XOrg在Wayland之上提供了一个X服务器。任何与X11 LIB链接并在Wayland下运行的应用程序都将自动使用XWayland作为其后端。因此,XWayland的GLX部分是允许基于GLX的OpenGL应用程序在Wayland上运行的机制
- 无法在基于GLX的应用程序中使用MSAA似乎是XWayland的一个已知缺陷,至少对于Intel和AMD GPU(参见)。但我找不到关于此事的任何其他信息
export GDK_backend=X11
,然后启动你的应用程序/myapp
,如果有人对“Wayland/Xorg”更了解的话可以更深入地了解细节。