[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