Skindesigner and openGL OSD

  • Sometimes if you call the OSD immediately after exiting the MPV or external plugin, it is not correct

    I set the refresh interval in the worker thread to 5 seconds, but that's too long.

    You can set it in "extensions/workers.c" to a shorter time.

    Code
    #define REFESH_INTERVALL_MS 5000

    In the final version, i will set it back to 1sec.

    With suspend/resume I still see the same OSD without background.

    Can you please check that with "#define REFESH_INTERVALL_MS 1000", then it should have the same behavior as before.

    Otherwise I'll have to look at it again.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • No rush for me please!

    No problem.

    I set "#define REFESH_INTERVALL_MS 1000" but I see the same OSD "without background" after susp/resu

    The strange thing is that it works with the original solution, but not with moving the identical code to a separate thread.

    I'll think about it.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • REFESH is hopefully only a typo here in the forum?!
    In the code it should be REFRESH, I think.

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • As far as i remember it is not allowed to access an opengl context from different threads….

    That shouldn't be the problem here. This thread just calls cDevice::PrimaryDevice()->GetVideoSize() periodically to see if the video size has changed in the softhddevice plugin.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Maybe it helps, below my softhddevice and skindesigner settings

    I'm using the 'shady' skin


  • Hi Fans

    Und was bring der Eintrag skindesigner.FixForopenGL = 1

    vor dem Eintrag skindesigner.FPS = 50 bitte einfügen .

    MfG Helmut

    Test_VDR: Lintec Senior - MSI G41M P25 MS7592 Board - Intel P4 E8500 / 775 CPU - MSI GT710 PCI-e passiv - DVBSky S2 952 Dual SAT - 120GB Intenso SSD + Big HDD - 2x2GB DDR3 RAM - LG GH24NSD1 S-ATA DVD - SMK RC6 MCE 50GB FB. an STM32 USB-Arduino - EasyVDR 5 - Softhddevice mit Pulseaudio - Kodi 20.5 m. Confluence Skin
    Clients:Div. Raspberry PI

    Fernbedienungsempfänger: Siehe hier:RP 2040 Zero I.R. Empfänger kompl.

  • carel , thanks, I'll take a look at that.

    Und was bring der Eintrag skindesigner.FixForopenGL = 1

    Das war mal eine Zwischenlösung in der Version 1.2.8.5, aktuell ist 1.2.23.

    Das Problem hier ist, das der image-cache vom skindesigner in manchen Fällen ungültig wird (DETA, ATTA, SUSP, RESU von softhddevice), wenn softhddevice mit openGL-OSD benutzt wird.

    FixForopenGL hat damals einfach den Cache jedesmal neu angelegt, wenn ein OSD geöffnet wurde, das funktioniert auch, ist aber kontraproduktiv für den Cache.

    Aktuell wird über cDevice::PrimaryDevice()->GetVideoSize() geprüft, ob sich da was geändert hat, und nur dann wird der Cache neu angelegt.

    Im Moment ist die Aufgabe, diese Funktionalität aus dem MainThreadHook() zu entfernen und über einen eigenen thread zu lösen, was noch nicht zu 100% funktioniert.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • I set "#define REFESH_INTERVALL_MS 1000" but I see the same OSD "without background" after susp/resu

    That doesn't work with the MainThreadHook() Version either.

    I will adopt the current solution for now.


    I use the version 1.12.5 of softhddevice here, because I get an error when compiling newer versions (for example v2.3.8):

    Code
    video.c: In Funktion »GlxInit«:                                                                                                                                                     
    video.c:1514:32: Fehler: »GlxSwapIntervalMESA« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »GlxSwapIntervalSGI«?                                       
     1514 |     if (GlxVSyncEnabled > 0 && GlxSwapIntervalMESA) {                                                                                                                       
          |                                ^~~~~~~~~~~~~~~~~~~                                                                                                                          
          |                                GlxSwapIntervalSGI

    I use vdpau with an Nvidia card. lnj , do you have any idea about this.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • ls -la /usr/include/GL

    insgesamt 858

    drwxr-xr-x 3 root root 22 24. Jun 12:16 .

    drwxr-xr-x 460 root root 1151 8. Nov 10:40 ..

    -rw-r--r-- 1 root root 121129 24. Jan 2024 eglew.h

    -rw-r--r-- 1 root root 11174 9. Jun 19:44 freeglut_ext.h

    -rw-r--r-- 1 root root 681 9. Jun 19:44 freeglut.h

    -rw-r--r-- 1 root root 27250 9. Jun 19:44 freeglut_std.h

    -rw-r--r-- 1 root root 5871 9. Jun 19:44 freeglut_ucall.h

    -rw-r--r-- 1 root root 425985 12. Sep 2023 glcorearb.h

    -rw-r--r-- 1 root root 1307180 24. Jan 2024 glew.h

    -rw-r--r-- 1 root root 852735 12. Sep 2023 glext.h

    -rw-r--r-- 1 root root 80393 12. Sep 2023 gl.h

    -rw-r--r-- 1 root root 17192 21. Jul 2023 glu.h

    -rw-r--r-- 1 root root 639 9. Jun 19:44 glut.h

    -rw-r--r-- 1 root root 75395 24. Jan 2024 glxew.h

    -rw-r--r-- 1 root root 47796 12. Sep 2023 glxext.h

    -rw-r--r-- 1 root root 16906 12. Sep 2023 glx.h

    -rw-r--r-- 1 root root 4696 26. Mär 2024 glxint.h

    -rw-r--r-- 1 root root 2085 26. Mär 2024 glxmd.h

    -rw-r--r-- 1 root root 78531 26. Mär 2024 glxproto.h

    -rw-r--r-- 1 root root 11429 26. Mär 2024 glxtokens.h

    drwxr-xr-x 2 root root 4 4. Sep 12:23 internal

    -rw-r--r-- 1 root root 64114 24. Jan 2024 wglew.h


    I use Fedora 40 here.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Looks like a bug. SGI and MESA was swapped, need GLX_SGI_swap_control -> GlxSwapIntervalSGI, GLX_MESA_swap_control -> GlxSwapIntervalMESA.

    Try swap it:

  • Ok, I did it so:

    Look at the new return and the commented out else, otherwise there will be a new error.


    Then new errors occurred:

    I only commentd out "VAAPI" in the Makefile.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!