Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 574008 - dev-qt/qt*:5 - Enhancement: +egl , +opengl USE flags function are quite ambiguous
Summary: dev-qt/qt*:5 - Enhancement: +egl , +opengl USE flags function are quite ambig...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-06 16:02 UTC by Bob Wya
Modified: 2016-04-10 13:15 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bob Wya 2016-02-06 16:02:58 UTC
I have found that the +egl, +gles2 USE flags for: dev-qt/qtgui:5, dev-qt/qtopengl:5, etc are very ambiguous. When enabled they disable Desktop GL support which is not clear to the end (Gentoo) user - i.e. me (and others)!!

In the end my troubleshooting led me to do a lot of Googling to figure out what the critical line:

-opengl $(usex gles2 es2 desktop)

meant in these ebuilds... You're aren't getting more "GL" support by enabling these mobile flags - you're getting significantly less!! Also the dev-qt/qtquick1:5 ebuild has an +opengl USE flag - leading to further confusion!!

I know it may sound dumb - but isn't there some way that the ebuild can have some kind of +opengl or +desktopgl USE flag that is linked to the "mobile" gl flags (+egl +gles2)...

Sort of like...

REQUIRED_USE="opengl? ( !egl !gles2 )"

or

REQUIRED_USE="desktopgl? ( !egl !gles2 )"

to make the GL platform choice "more explicit".

I spent a long time trying to troubleshoot this issue (2+ weeks in my case). As have others with nearly identical issues - see the recent Gentoo forums - blank SDDM login screen, broken Plasma Desktop effects, etc...
Comment 1 Michael Palimaka (kensington) gentoo-dev 2016-02-09 04:33:35 UTC
While having mutually-exclusive GL USE flags can make a situation like this clearer, the resulting usability cost from constantly hitting REQUIRED_USE is usually pretty high.

Note that both qtgui and qtopengl have USE flags descriptions for gles2 - "Use GLES 2.0 or later instead of full OpenGL".
Comment 2 Bob Wya 2016-02-09 04:57:04 UTC
(In reply to Michael Palimaka (kensington) from comment #1)
... 
> Note that both qtgui and qtopengl have USE flags descriptions for gles2 -
> "Use GLES 2.0 or later instead of full OpenGL".

In my case I think I had +egl enabled globally -but I _didn't_ have gles2 USE flag enabled. So in my case I probably thought "damn thing won't compile without gles2" - when portage blew up - and enabled that flag on a per package basis. Leading to a blank SDDM login screen, etc.

The change in dev-qt/*:5 is quite significant IMHO...

"Use GLES 2.0 or later instead of full OpenGL" doesn't really cut it for me. It's really easy to miss the full implications of this statement. In fact I would suggest that switching over to egl+gles2 support might warrant an ewarn (and perhaps even a news item) - the results aren't going to be pretty when using x11-drivers/nvidia-drivers!!

The current situation makes it really easy to walk into a really busted Plasma 5 Desktop... So surely this is more of an issue then the "qt4" "qt5" use flag debates I've read on the gentoo-dev ML.
Comment 3 Davide Pesavento gentoo-dev 2016-02-09 15:15:06 UTC
(In reply to Bob Wya from comment #2)
> In my case I think I had +egl enabled globally -but I _didn't_ have gles2
> USE flag enabled. So in my case I probably thought "damn thing won't compile
> without gles2" - when portage blew up - and enabled that flag on a per
> package basis.

What are you talking about? egl does not require gles2, it's the other way around. You can have egl managing full (non-ES) GL contexts.

> The change in dev-qt/*:5 is quite significant IMHO...

What change? the desktop and ES variants of opengl have always been mutually exclusive in qt... (we just never exposed the switch as a USE flag in qt4)
Comment 4 Arfrever Frehtes Taifersar Arahesis 2016-02-09 17:50:29 UTC
(In reply to Davide Pesavento from comment #3)
> (In reply to Bob Wya from comment #2)
> > In my case I think I had +egl enabled globally -but I _didn't_ have gles2
> > USE flag enabled.
> 
> egl does not require gles2, it's the other way
> around. You can have egl managing full (non-ES) GL contexts.

dev-qt/qtmultimedia-5.5.1-r2[qml,-gles2] depends on ~dev-qt/qtgui-${PV}[-egl], which makes it impossible to have egl globally enabled and gles2 globally disabled.
Maybe this dependency is incorrect (i.e. maybe it should be [-gles2] instead of [-egl])?
Comment 5 Michael Palimaka (kensington) gentoo-dev 2016-02-10 13:08:11 UTC
(In reply to Arfrever Frehtes Taifersar Arahesis from comment #4)
> (In reply to Davide Pesavento from comment #3)
> > (In reply to Bob Wya from comment #2)
> > > In my case I think I had +egl enabled globally -but I _didn't_ have gles2
> > > USE flag enabled.
> > 
> > egl does not require gles2, it's the other way
> > around. You can have egl managing full (non-ES) GL contexts.
> 
> dev-qt/qtmultimedia-5.5.1-r2[qml,-gles2] depends on
> ~dev-qt/qtgui-${PV}[-egl], which makes it impossible to have egl globally
> enabled and gles2 globally disabled.
> Maybe this dependency is incorrect (i.e. maybe it should be [-gles2] instead
> of [-egl])?

qtmultimedia's gles2 USE flag used to be egl but was renamed in bug #574008.
Comment 6 Bob Wya 2016-02-10 13:23:28 UTC
(In reply to Michael Palimaka (kensington) from comment #5)
...
> qtmultimedia's gles2 USE flag used to be egl but was renamed in bug #574008.

Uhhmm... Isn't that this bug - you've linked to (recursively) :-)
Comment 7 Michael Palimaka (kensington) gentoo-dev 2016-02-10 13:24:15 UTC
(In reply to Bob Wya from comment #6)
> (In reply to Michael Palimaka (kensington) from comment #5)
> ...
> > qtmultimedia's gles2 USE flag used to be egl but was renamed in bug #574008.
> 
> Uhhmm... Isn't that this bug - you've linked to (recursively) :-)

Sorry! That should be bug #565588.
Comment 8 Davide Pesavento gentoo-dev 2016-04-10 12:23:52 UTC
(In reply to Arfrever Frehtes Taifersar Arahesis from comment #4)
> (In reply to Davide Pesavento from comment #3)
> > (In reply to Bob Wya from comment #2)
> > > In my case I think I had +egl enabled globally -but I _didn't_ have gles2
> > > USE flag enabled.
> > 
> > egl does not require gles2, it's the other way
> > around. You can have egl managing full (non-ES) GL contexts.
> 
> dev-qt/qtmultimedia-5.5.1-r2[qml,-gles2] depends on
> ~dev-qt/qtgui-${PV}[-egl], which makes it impossible to have egl globally
> enabled and gles2 globally disabled.
> Maybe this dependency is incorrect (i.e. maybe it should be [-gles2] instead
> of [-egl])?

This was properly fixed in bug 576636.
Comment 9 Davide Pesavento gentoo-dev 2016-04-10 12:30:41 UTC
The USE flag conflicts should be completely solved now (for 5.6.0 and later).

As for the original request... well, if users don't read flag descriptions, it's their problem. I also agree with kensington that relying on REQUIRED_USE is a non-solution and usually more painful for the user than the problem it's trying to solve.

Therefore I'm closing as WFM for now, but please reopen if you come up with a better way of clarifying the meaning of the USE flags (especially gles2). Thanks.
Comment 10 Bob Wya 2016-04-10 13:15:41 UTC
Fair cop... I see I opened a whole can of worms here...