FS#37386 - [qt5-base] why GLES?
Attached to Project:
Arch Linux
Opened by Byoung-young Lee (xylosper) - Friday, 18 October 2013, 13:22 GMT
Last edited by Felix Yan (felixonmars) - Sunday, 13 December 2015, 13:54 GMT
Opened by Byoung-young Lee (xylosper) - Friday, 18 October 2013, 13:22 GMT
Last edited by Felix Yan (felixonmars) - Sunday, 13 December 2015, 13:54 GMT
|
Details
Description:
I found that Qt5 recetly updated is built with gles, but why? Is there critical issue related this change? OpenGL ES lacks lots of features of OpenGL, for instance, no GL_TEXTURE_3D support. Even if some platforms like wayland require only EGL, GLX is still major implmentation for OpenGL in Linux. This change implies the restriction of OpenGL ES to all applications integrated with Qt5 and could break OpenGL(and GLX) dependent functionalities. Can you revert it to desktop OpenGL? |
This task depends upon
Closed by Felix Yan (felixonmars)
Sunday, 13 December 2015, 13:54 GMT
Reason for closing: None
Additional comments about closing: See comments.
Sunday, 13 December 2015, 13:54 GMT
Reason for closing: None
Additional comments about closing: See comments.
He didn't know of any regression, neither I, so I enabled it.
I'll revert it.
Just for your information, the wayland site is also mentioning about this issue:
--------------------------------------
Why does Wayland use EGL and GLES2?
EGL is the only GL binding API that lets us avoid dependencies on existing window systems, in particular X. GLX obviously pulls in X dependencies and only lets us set up GL on X drawables. The alternative is to write a Wayland specific GL binding API, say, WaylandGL.
A more subtle point is that libGL.so includes the GLX symbols, so linking to that library will pull in all the X dependencies. This means that we can't link to full GL without pulling in the client side of X, so we're using GLES2 for now. Longer term, we'll need a way to use full GL under Wayland.
--------------------------------------
They are saying that the abcence of full GL support shoud be fixed and EGL is a temporary solution 'for now'.
It's compatibility issue.
OpenGL ES is not compatible with OpenGL.
EGL is an implementation of OpenGL ES and GLX is an implementation of OpenGL.
Enabling EGL means disabling OpenGL support which is totally nonsense because OpenGL is much more extensible than OpenGL ES, which is natural because OpenGL ES is for ES(embedded system).
OpenGL ES is powerful enough to be used in desktop but it's not as powerful as non-ES OpenGL.
If OpenGL ES support for Qt 5 is really required, it should be provided by separated pacakge, such as qt5-base-egl which conflicts with qt5-base.
Just make sure EGL is still enabled via the -egl configure switch (-eglfs will also be needed to enable the eglfs QPA plugin).
This is especially true with Qt 5.5 and the xcb plugin that has now separate GL integrations or with platform plugins where EGL is mandatory such as kms.
EDIT: This won't interfere with GLX.
That's what happened when I posted this issue.
Check this out: https://github.com/qtproject/qtbase/tree/dev/src/plugins/platforms/xcb/gl_integrations
If you have no problem with OpenGL sepecific functions with EGL support, then it would be fine.
This was fixed with Qt 5.3 or Qt 5.4.
To my knowledge both GL and EGL can coexist especially with the upcoming release that enables a QtWayland compositor to run a X11 window and still get EGL support, while preserving the ability to use GLX.
[...]
kwin_core: Forcing EGL native interface through environment variable
kwin_core: Initializing OpenGL compositing
kwin_core: bind OpenGL API failed
kwin_core: Creating the OpenGL rendering failed: "Could not initialize rendering context"
kwin_core: Failed to initialize compositing, compositing disabled
[...]
The nvidia driver has EGL and GLES 2.0 support. EGL tests from mesa-demos work.
Is this qt5 recompile not enough for egl & gles support in qt apps such as kwin? Is there something else that I'm missing?
EDIT: I changed to radeon driver & mesa, and now kwin works with EGL. Seems to be nvidia-related.
It would seem that egl support should be a non issue now. Can this bug be closed?