[mythtv] OpenGL: MythRenderOpenGL is not a valid OpenGL rendering context

John Pilkington johnpilk222 at gmail.com
Wed Jan 29 13:24:53 UTC 2020


On 29/01/2020 11:28, Mark Kendall wrote:
> On Wed, 29 Jan 2020 at 09:30, John Pilkington <johnpilk222 at gmail.com> wrote:
>> Hi Mark:  This is my main FE/BE system, which has always run the
>> frontend in a window.  Output to the TV is via DLNA or NAS.  It's an old
>> office machine with no extra graphics hardware.
>>
>> Linux version 4.4.211-1.el7.elrepo.x86_64
>>
>> Hewlett-Packard HP Compaq dc5800 Microtower/2820h, BIOS 786F2 v01.60
>> 10/26/2015
> 
> John
> 
> To be honest, I'm confused - but first some background.
> 
> I'm assuming that this commit  is causing your problems:-
> 
> https://github.com/MythTV/mythtv/commit/104cad9911d55734988075e5244d5436cb27ec48
> 
> which will 'encourage' Qt to try and use EGL for its OpenGL interface
> - rather than GLX.
> 
> So I need to check whether it is indeed causing the issue - and if so,
> how best to work around it, preferably in a generic manner.
> 
> As explained in the commit/code, we need to force EGL before we do any
> kind of Qt GUI initialisation. We don't have a window to check the
> OpenGL/EGL vendor/version, a Qt platform name - or pretty much
> anything else to give us a hint about the best approach. So I check
> directly with EGL and at the moment it just rejects anything nvidia -
> which causes problems - and we don't currently need EGL with nvidia.
> 
> I can (and will) restrict the use of EGL for any mythtv GUI
> application that doesn't explicitly need EGL (i.e. mythtv-setup). It
> may also help to reject older versions of EGL - which is easy enough
> to check for. But failing that, I would need to add further
> restrictions based on the vendor string - but if the vendor is intel
> or mesa, then that will cause major issues - as that is the major
> target platform.
> 
> So with that in mind, your glxinfo output reports accelerated, intel
> support but your mythfrontend log extract from the earlier version
> shows it is using some form of emulation. I don't understand that.
> 
> I'm assuming you are not using any form of containerisation, virtual
> machine or are remotely logged in? The actual driver in use is fairly
> critical here.

mesa-libEGL looks like a standard el7 package, last patched by redhat in 
2019 April.  See below for more packages...  Bare metal install.
> 
> Can you run the latest master version with this environment variable set:-
> 
> MYTHTV_NO_EGL=1 mythfrontend
> 
> and see if that helps.

I haven't done this yet.  For my earlier posts I hadn't tried starting 
the frontend; only mythtv-setup, which uses the display options created 
in an earlier run of the frontend.

With the older installation:

[john at HP_Box ~]$ MYTHTV_NO_EGL=1 mythfrontend -v playback

2020-01-29 13:17:32.939267 C  mythfrontend version: HEAD -> master 
[v31-Pre-0d3bb87db71] www.mythtv.org
2020-01-29 13:17:32.939281 C  Qt version: compile: 5.9.7, runtime: 5.9.7
2020-01-29 13:17:32.939341 I  Scientific Linux 7.7 (Nitrogen) (x86_64)

2020-01-29 13:17:37.453854 I  Display: Have main widget
2020-01-29 13:17:37.454548 I  UI Screen Resolution: 1024 x 576
2020-01-29 13:17:37.606571 I  Display: Have main window
2020-01-29 13:17:37.620214 I  Display: Found screen 'VGA1'
2020-01-29 13:17:37.717812 I  OpenGL: OpenGL vendor        : VMware, Inc.
2020-01-29 13:17:37.717821 I  OpenGL: OpenGL renderer      : llvmpipe 
(LLVM 7.0, 128 bits)
2020-01-29 13:17:37.717826 I  OpenGL: OpenGL version       : 2.1 Mesa 18.3.4
2020-01-29 13:17:37.717832 I  OpenGL: Qt platform          : xcb
2020-01-29 13:17:37.717873 I  OpenGL: EGL display          : No
2020-01-29 13:17:37.717878 I  OpenGL: EGL images           : No
2020-01-29 13:17:37.717882 I  OpenGL: Qt OpenGL format     : OpenGL 2.1
2020-01-29 13:17:37.717887 I  OpenGL: Qt OpenGL surface    : RGBA: 8880 
Depth: 0 Stencil: 0

> 
> Can you also paste the full output of 'eglinfo'. Hopefully there is a
> package available for that on your system. On debian/ubuntu etc it is
> available through mesa-extra-utils. That will give helpful information
> on whether EGL is available and what version etc.

These packages are installed now.  egl-utils wasn't.  The attached 
eglinfo.txt was created without a post-install reboot.

[john at HP_Box ~]$ rpm -qa | grep -i egl
libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64
freeglut-3.0.0-8.el7.x86_64
mesa-libEGL-18.3.4-5.el7.x86_64
egl-utils-8.3.0-10.el7.x86_64
libwayland-egl-1.15.0-1.el7.x86_64
mesa-libEGL-devel-18.3.4-5.el7.x86_64
[john at HP_Box ~]$

> 
> And finally - are you actually using this machine for video playback?

Yes.  This box has only DVB-T tuners, so it records only in SD, but I 
have a few HD files on it and all playback in the frontend window seems 
to be of generally acceptable quality.  But there is no direct video 
output to the TV, so the wow-factor is perhaps low.

> I'm trying to understand whether 'Output to the TV is via DLNA or NAS'
> is a red herring.
> 
> Thanks and regards
> Mark


-------------- next part --------------
[john at HP_Box ~]$ eglinfo
EGL client extensions string:
    EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query
    EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
    EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_wayland
    EGL_EXT_platform_x11 EGL_MESA_platform_gbm
                                                                                                                                                                          
GBM platform:                                                                                                                                                             
get chip id failed: -1 [13]
param: 4, val: 0
[intel_init_bufmgr:1009] Error initializing buffer manager.
EGL API version: 1.4
EGL vendor string: Mesa Project
EGL version string: 1.4
EGL client APIs: OpenGL OpenGL_ES 
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_KHR_cl_event2
    EGL_KHR_config_attribs EGL_KHR_create_context
    EGL_KHR_create_context_no_error EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
    EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
    EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
    EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
    EGL_KHR_no_config_context EGL_KHR_reusable_sync
    EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
    EGL_KHR_wait_sync EGL_MESA_configless_context
    EGL_MESA_image_dma_buf_export
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces 
---------------------------------------------------------------------
0x01 32  0 10 10 10  2  0  0  0 0 0x30335241--         y  y  y     win
0x02 32  0 10 10 10  2 16  0  0 0 0x30335241--         y  y  y     win
0x03 32  0 10 10 10  2 24  0  0 0 0x30335241--         y  y  y     win
0x04 32  0 10 10 10  2 24  8  0 0 0x30335241--         y  y  y     win
0x05 32  0 10 10 10  2 32  0  0 0 0x30335241--         y  y  y     win
0x06 30  0 10 10 10  0  0  0  0 0 0x30335258--         y  y  y     win
0x07 30  0 10 10 10  0 16  0  0 0 0x30335258--         y  y  y     win
0x08 30  0 10 10 10  0 24  0  0 0 0x30335258--         y  y  y     win
0x09 30  0 10 10 10  0 24  8  0 0 0x30335258--         y  y  y     win
0x0a 30  0 10 10 10  0 32  0  0 0 0x30335258--         y  y  y     win
0x0b 32  0  8  8  8  8  0  0  0 0 0x34325241--         y  y  y     win
0x0c 32  0  8  8  8  8 16  0  0 0 0x34325241--         y  y  y     win
0x0d 32  0  8  8  8  8 24  0  0 0 0x34325241--         y  y  y     win
0x0e 32  0  8  8  8  8 24  8  0 0 0x34325241--         y  y  y     win
0x0f 32  0  8  8  8  8 32  0  0 0 0x34325241--         y  y  y     win
0x10 24  0  8  8  8  0  0  0  0 0 0x34325258--         y  y  y     win
0x11 24  0  8  8  8  0 16  0  0 0 0x34325258--         y  y  y     win
0x12 24  0  8  8  8  0 24  0  0 0 0x34325258--         y  y  y     win
0x13 24  0  8  8  8  0 24  8  0 0 0x34325258--         y  y  y     win
0x14 24  0  8  8  8  0 32  0  0 0 0x34325258--         y  y  y     win
0x15 16  0  5  6  5  0  0  0  0 0 0x36314752--         y  y  y     win
0x16 16  0  5  6  5  0 16  0  0 0 0x36314752--         y  y  y     win
0x17 16  0  5  6  5  0 24  0  0 0 0x36314752--         y  y  y     win
0x18 16  0  5  6  5  0 24  8  0 0 0x36314752--         y  y  y     win
0x19 16  0  5  6  5  0 32  0  0 0 0x36314752--         y  y  y     win

Wayland platform:
eglinfo: eglInitialize failed

X11 platform:
EGL API version: 1.4
EGL vendor string: Mesa Project
EGL version string: 1.4
EGL client APIs: OpenGL OpenGL_ES 
EGL extensions string:
    EGL_CHROMIUM_sync_control EGL_KHR_config_attribs
    EGL_KHR_create_context EGL_KHR_create_context_no_error
    EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses
    EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
    EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
    EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
    EGL_KHR_no_config_context EGL_KHR_reusable_sync
    EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
    EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image
    EGL_NOK_swap_region EGL_NOK_texture_from_pixmap
    EGL_NV_post_sub_buffer EGL_WL_bind_wayland_display
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces 
---------------------------------------------------------------------
0x01 32  0  8  8  8  8  0  0  0 0 0x20TC      a  y  y  y     win,pb,pix
0x02 32  0  8  8  8  8 24  8  0 0 0x20TC      a  y  y  y     win,pb,pix
0x03 24  0  8  8  8  0  0  0  0 0 0x20TC      y  y  y  y     win,pb,pix
0x04 24  0  8  8  8  0 24  8  0 0 0x20TC      y  y  y  y     win,pb,pix
0x05 32  0  8  8  8  8  0  0  0 0 0x21DC      a  y  y  y     win,pb,pix
0x06 32  0  8  8  8  8 24  8  0 0 0x21DC      a  y  y  y     win,pb,pix
0x07 24  0  8  8  8  0  0  0  0 0 0x21DC      y  y  y  y     win,pb,pix
0x08 24  0  8  8  8  0 24  8  0 0 0x21DC      y  y  y  y     win,pb,pix

[john at HP_Box ~]$ 


More information about the mythtv-dev mailing list