[mythtv] #13351: Add OpenGL ES configurability/autodetection

Piotr Oniszczuk piotr.oniszczuk at gmail.com
Tue Nov 27 11:21:01 UTC 2018


Peter,

As far as I reading code - usage gles is possible only on Android and currently is used only for android:
https://github.com/MythTV/mythtv/blob/9c940817da8aa001219bbded26b26f12a7b364b7/mythtv/configure#L6566
There is no way in myth to use gles on other platforms.

I think we should address 2 things:

1.Selection in configure to use gles when OS proves OpenGL Desktop _and_ OpenGL ES

2.Working myth when OS provides _only_ OpenGL ES

Patches in #13351 already are working OK for case 1)

For case 2) situation is a bit more complicated as first I need to prepare OS providing GL and Qt only at OpenGL ES level (which is not trivial).
I already have working configure+building for case 2) - but resulting code not working with GL painter. 
I don’t yet know why.
To sort this first I must investigate:
a) is this issue of underlying OS (most probably Qt5)
b) or this is issue of myth (effectively current master can’t work with GL painter without OpenGL Desktop API available - even if conditional USING_OPENGLES is set at building)  
I suspect my issue is a)

To investigate further: can anybody from android world confirm me that:
- android provides _ONLY_ OpenGL ES?
- do android has libGL.so and include/GL/*.h files?
- how config.summary from Qt5 configure looks like in android build?

Why all this?
Because almost standard in embedded systems is no OpenGL Desktop and only GLES.
Without this I can’t move forward with myth on ARM platforms with linux (not android) on platforms where there is no working Mesa yet.

thx in advance!



> Wiadomość napisana przez Peter Bennett <pb.mythtv at gmail.com> w dniu 26.11.2018, o godz. 19:39:
> 
> 
> 
> On 11/25/18 2:37 PM, Piotr Oniszczuk wrote:
>> Hi,
>> 
>> Working on ARM HW (AmLogic s905, RPI) I need OpenGL ES support in myth.
>> 
>> I added OpenGL ES configurability and it works in following way: there is new configure switch: —enable-opengles
>> 
>> Overall logic: OpenGL ES is disabled by default (if no switch passed to configure or —disable-opengles passed to configure)
>> If —enable-opengles is passed to configure, configure will detect all required and set conditional USING_OPENGLES if all is OK.
>> If anything is missing - configure will exit with error.
>> 
>> So summarising:
>> 
>> A) ./configure WITHOUT —enable-opengles
>> 
>> Result:
>> OpenGL ES disabled; what OS provides doesn’t matter
>> USING_OPENGLES is not set
>> 
>> B) ./configure WITH —enable-opengles
>> 
>> B.1) System has proper support for OpenGL ES. This means:
>> a) pkg-config present to EGL and GLESv2
>> b) *.h, GLESv2 libs are present
>> c) Qt provides Open GL ES
>> 
>> Result:
>> configure sets USING_OPENGLES
>> 
>> B.2) System has broken support for OpenGL ES
>> (any of a) or b) or c) from B.1 are not valid)
>> 
>> Result:
>> configure exits with error
>> 
>> Why exit with error?
>> If user asks for OpenGL ES but system is not properly prepared to build, user should be explicitly notified by this issue.
>> 
>> 
>> This way current build bots should still work ok.
>> Only change is required for android building: now it requires adding —enable-opengles to configure params
>> 
>> I tested it on x86 and RPI3 with fully working OpenGL ES.
>> 
>> Let me know what You think
>> 
>>      
> What is the problem with the current setup? OpenGL ES is already used in android and raspberry pi, and as far as I know it is already enabled if the correct libraries are present.
> 
> Peter
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://lists.mythtv.org/mailman/listinfo/mythtv-dev
> http://wiki.mythtv.org/Mailing_List_etiquette
> MythTV Forums: https://forum.mythtv.org



More information about the mythtv-dev mailing list