[IMX6Q][Dunfell] Problem using imxeglvivsink on top of X11


Wouter Vanhauwaert
 

I'm using a custom board/custom distro, based on yocto Dunfell. It's using vivante drivers (so not etnaviv).
Running kernel is: 5.4-2.1.x-imx
X11 itself is working fine. Although I get a VivDRIScreenInit -releated error message in the log:

X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[    34.528] Build Operating System: Linux 
[    34.528] Current Operating System: Linux imx6qtelevic_generic 5.4.46-04202-gd069a637b280 #15 SMP PREEMPT Wed Oct 14 12:13:42 CEST 2020 armv7l
[    34.528] Kernel command line: version=DEV_33968064_1-04-02 console=ttymxc3,115200 ubi.mtd=0 root=ubi0:rootfsA rootfstype=ubifs mtdparts=gpmi-nand:-(ubipart) quiet
[    34.528] Build Date: 29 March 2020  08:21:46PM
[    34.528]  
[    34.534] Current version of pixman: 0.38.4
[    34.535] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[    34.535] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    34.538] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar  9 12:41:08 2018
[    34.565] (==) Using config file: "/etc/X11/xorg.conf"
[    34.566] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    34.574] (==) No Layout section.  Using the first Screen section.
[    34.576] (==) No screen section available. Using defaults.
[    34.576] (**) |-->Screen "Default Screen Section" (0)
[    34.576] (**) |   |-->Monitor "<default monitor>"
[    34.584] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[    34.584] (**) |   |-->Device "i.MX Accelerated Framebuffer Device"
[    34.584] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[    34.585] (**) Option "BlankTime" "0"
[    34.585] (**) Option "StandbyTime" "0"
[    34.585] (**) Option "SuspendTime" "0"
[    34.585] (**) Option "OffTime" "0"
[    34.586] (==) Automatically adding devices
[    34.586] (==) Automatically enabling devices
[    34.586] (==) Automatically adding GPU devices
[    34.588] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    34.589] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    34.589] Entry deleted from font path.
[    34.590] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    34.590] Entry deleted from font path.
[    34.590] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    34.590] Entry deleted from font path.
[    34.590] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    34.590] Entry deleted from font path.
[    34.590] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    34.590] Entry deleted from font path.
[    34.590] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    34.590] Entry deleted from font path.
[    34.590] (==) FontPath set to:
 
[    34.591] (==) ModulePath set to "/usr/lib/xorg/modules"
[    34.591] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[    34.600] (II) Loader magic: 0x5f8d80
[    34.600] (II) Module ABI versions:
[    34.600] X.Org ANSI C Emulation: 0.4
[    34.601] X.Org Video Driver: 24.1
[    34.601] X.Org XInput driver : 24.1
[    34.601] X.Org Server Extension : 10.0
[    34.610] (II) no primary bus or device found
[    34.614] (II) LoadModule: "glx"
[    34.630] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    34.793] (II) Module glx: vendor="X.Org Foundation"
[    34.794] compiled for 1.20.8, module version = 1.0.0
[    34.794] ABI class: X.Org Server Extension, version 10.0
[    34.797] (II) LoadModule: "vivante"
[    34.798] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[    34.809] (II) Module vivante: vendor="X.Org Foundation"
[    34.809] compiled for 1.20.8, module version = 1.0.0
[    34.810] ABI class: X.Org Video Driver, version 24.1
[    34.812] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
VivanteGCCORE
[    34.814] (--) using VT number 3
 
[    34.830] (WW) Falling back to old probe method for vivante
[    34.831] (II) Loading sub module "fbdevhw"
[    34.831] (II) LoadModule: "fbdevhw"
[    34.832] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    34.842] (II) Module fbdevhw: vendor="X.Org Foundation"
[    34.843] compiled for 1.20.8, module version = 0.0.2
[    34.843] ABI class: X.Org Video Driver, version 24.1
[    34.843] (II) VIVANTE(0): using default device
[    34.849] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    34.857] (II) VIVANTE(0): Device preferred mode 'fb0':U:1280x800p-59 
[    34.857] (II) VIVANTE(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[    34.858] (==) VIVANTE(0): Depth 24, (==) framebuffer bpp 32
[    34.858] (==) VIVANTE(0): RGB weight 888
[    34.858] (==) VIVANTE(0): Default visual is TrueColor
[    34.858] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[    34.858] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    34.858] (**) VIVANTE(0): mExaHwType:1
[    34.858] (II) VIVANTE(0): checking modes against framebuffer device...
[    34.858] (II) VIVANTE(0): checking modes against monitor...
[    34.858] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[    34.858] (==) VIVANTE(0): DPI set to (96, 96)
[    34.858] (II) Loading sub module "fb"
[    34.859] (II) LoadModule: "fb"
[    34.859] (II) Loading /usr/lib/xorg/modules/libfb.so
[    34.889] (II) Module fb: vendor="X.Org Foundation"
[    34.889] compiled for 1.20.8, module version = 1.0.0
[    34.889] ABI class: X.Org ANSI C Emulation, version 0.4
[    34.889] (II) Loading sub module "exa"
[    34.889] (II) LoadModule: "exa"
[    34.889] (II) Loading /usr/lib/xorg/modules/libexa.so
[    34.894] (II) Module exa: vendor="X.Org Foundation"
[    34.894] compiled for 1.20.8, module version = 2.6.0
[    34.894] ABI class: X.Org Video Driver, version 24.1
[    35.200] (II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[    35.202] (II) VIVANTE(0): Modeline "U:1280x800p-59"x0.0   71.10  1280 1320 1400 1440  800 803 813 823 -hsync -vsync -csync (49.4 kHz eP)
[    35.236] (II) VIVANTE(0): Output DISP3 BG has no monitor section
[    35.237] (II) VIVANTE(0): Printing probed modes for output DISP3 BG
[    35.237] (II) VIVANTE(0): Modeline "U:1280x800p-59"x60.0   71.10  1280 1320 1400 1440  800 803 813 823 -hsync -vsync -csync (49.4 kHz eP)
[    35.238] (II) VIVANTE(0): Output DISP3 BG connected
[    35.238] (II) VIVANTE(0): Using exact sizes for initial modes
[    35.239] (II) VIVANTE(0): Output DISP3 BG using initial mode U:1280x800p-59 +0+0
[    35.239] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1280 x 800, display width 0
[    35.239] (II) VIVANTE(0): VivPreInit: adjust display width 1280
[    35.321] (II) VIVANTE(0): reserve 8355840 bytes for on screen frame buffer; total fb memory size 16721920 bytes; offset of shadow buffer 8355840
[    35.414] (II) VIVANTE(0): hardware: DISP3 BG (video memory: 16330kB)
[    35.472] (II) VIVANTE(0): FB Start = 0xb55c4000  FB Base = 0xb55c4000  FB Offset = (nil)
[    35.484] (II) VIVANTE(0): test Initializing EXA
[    35.606] (II) EXA(0): Driver allocated offscreen pixmaps
[    35.607] (II) EXA(0): Driver registered support for the following operations:
[    35.607] (II)         Solid
[    35.607] (II)         Copy
[    35.607] (II)         Composite (RENDER acceleration)
[    35.607] (II)         UploadToScreen
[    35.609] (==) VIVANTE(0): Backing store enabled
[    35.627] (==) VIVANTE(0): DPMS enabled
[    35.704] (EE) VIVANTE(0): [dri] VivDRIScreenInit failed because Drm can't be opened.
[    35.705] (II) Initializing extension Generic Event Extension
[    35.708] (II) Initializing extension SHAPE
[    35.709] (II) Initializing extension MIT-SHM
[    35.709] (II) Initializing extension XInputExtension
[    35.713] (II) Initializing extension XTEST
[    35.715] (II) Initializing extension BIG-REQUESTS
[    35.715] (II) Initializing extension SYNC
[    35.718] (II) Initializing extension XKEYBOARD
[    35.721] (II) Initializing extension XC-MISC
[    35.721] (II) Initializing extension XFIXES
[    35.722] (II) Initializing extension RENDER
[    35.724] (II) Initializing extension RANDR
[    35.724] (II) Initializing extension COMPOSITE
[    35.726] (II) Initializing extension DAMAGE
[    35.728] (II) Initializing extension MIT-SCREEN-SAVER
[    35.728] (II) Initializing extension DOUBLE-BUFFER
[    35.729] (II) Initializing extension DPMS
[    35.729] (II) Initializing extension Present
[    35.730] (II) Initializing extension DRI3
[    35.732] (II) Initializing extension X-Resource
[    35.732] (II) Initializing extension XVideo
[    35.733] (II) Initializing extension XVideo-MotionCompensation
[    35.734] (II) Initializing extension GLX
[    35.752] (II) AIGLX: Screen 0 is not DRI2 capable
[    36.443] (II) IGLX: Loaded and initialized swrast
[    36.444] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    36.444] (II) Initializing extension XFree86-VidModeExtension
[    36.445] (II) Initializing extension XFree86-DGA
[    36.445] (II) Initializing extension XFree86-DRI
[    36.447] (II) Initializing extension DRI2
[    36.447] (II) Initializing extension vivext
[    36.450] (II) VIVANTE(0): Setting screen physical size to 338 x 211

If I run a simple gst-pipeline, it gets a SIGSEGV fault.
root@imx6qtelevic_generic:/lib/modules# DISPLAY=:0 gst-launch-1.0 videotestsrc ! imxeglvivsink
Setting pipeline to PAUSED ...
Xlib:  extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLING ...
Xlib:  extension "XFree86-DRI" missing on display ":0".
Xlib:  extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Caught SIGSEGV
#0  0x76bdebe4 in ?? () from /lib/libc.so.6
#1  0x76c57744 in poll () from /lib/libc.so.6
#2  0x76d66bfa in ?? () from /usr/lib/libglib-2.0.so.0
Spinning.  Please run 'gdb gst-launch-1.0 694' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:03:45.501871360
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Am I lacking something? Anyone else with similar issues?


Otavio Salvador
 

Hello Wouter,

Em sex., 16 de out. de 2020 às 05:24, Wouter Vanhauwaert
<w.vanhauwaert@...> escreveu:
I'm using a custom board/custom distro, based on yocto Dunfell. It's using vivante drivers (so not etnaviv).
...
If I run a simple gst-pipeline, it gets a SIGSEGV fault.

root@imx6qtelevic_generic:/lib/modules# DISPLAY=:0 gst-launch-1.0 videotestsrc ! imxeglvivsink
Setting pipeline to PAUSED ...
Xlib: extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLING ...
Xlib: extension "XFree86-DRI" missing on display ":0".
Xlib: extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Caught SIGSEGV
#0 0x76bdebe4 in ?? () from /lib/libc.so.6
#1 0x76c57744 in poll () from /lib/libc.so.6
#2 0x76d66bfa in ?? () from /usr/lib/libglib-2.0.so.0
What plugin are you using? gstreamer1.0-imx or gst-imx-plugin?

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750


Wouter Vanhauwaert
 

The distro is based on fslc-x11, so I guess that would make gstreamer1.0-imx then


Otavio Salvador
 

Em sex., 16 de out. de 2020 às 12:17, Wouter Vanhauwaert
<w.vanhauwaert@...> escreveu:
The distro is based on fslc-x11, so I guess that would make gstreamer1.0-imx then
Could you check against 'fsl-x11' and see if it also fails, please?


--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750


Wouter Vanhauwaert
 

Ok, I'll do that now.
In the mean time I built a core-image-x11 for imx6qdlsabresd with following changes in local.conf:
DISTRO ?= "fslc-x11"
ACCEPT_FSL_EULA = "1"
IMX_DEFAULT_BSP = "nxp"
CORE_IMAGE_EXTRA_INSTALL += " \
    packagegroup-fsl-gstreamer1.0-full \
"
With none of my own layers enabled, and the problem persists.

root@imx6qdlsabresd:~# uname -an
Linux imx6qdlsabresd 5.4.70+g2d1241e38347 #1 SMP PREEMPT Wed Oct 7 17:10:48 UTC 2020 armv7l GNU/Linux
root@imx6qdlsabresd:~# DISPLAY=:0 gst-launch-1.0 videotestsrc ! imxeglvivsink
Setting pipeline to PAUSED ...
Xlib:  extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLING ...
Xlib:  extension "XFree86-DRI" missing on display ":0".
Xlib:  extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Caught SIGSEGV
exec gdb failed: No such file or directory
Spinning.  Please run 'gdb gst-launch-1.0 474' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
 


Wouter Vanhauwaert
 

Ok, so I did the same with distro fsl-x11 distro (same local.conf as above, only changed distro) and issue prevails.
though imxeglvivsink is tot there anymore, but I tried with glimagesink and caught exactly the same segfault:

root@imx6qdlsabresd:~# DISPLAY=:0 gst-launch-1.0 videotestsrc ! glimagesink
Setting pipeline to PAUSED ...
Xlib:  extension "XFree86-DRI" missing on display ":0".
Xlib:  extension "XFree86-DRI" missing on display ":0".
Xlib:  extension "XFree86-DRI" missing on display ":0".
Pipeline is PREROLLING ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
Caught SIGSEGV
exec gdb failed: No such file or directory
Spinning.  Please run 'gdb gst-launch-1.0 589' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
 


Otavio Salvador
 

Em ter., 20 de out. de 2020 às 05:28, Wouter Vanhauwaert
<w.vanhauwaert@...> escreveu:
Ok, so I did the same with distro fsl-x11 distro (same local.conf as above, only changed distro) and issue prevails.
though imxeglvivsink is tot there anymore, but I tried with glimagesink and caught exactly the same segfault:
Please open an issue on github so we can hook NXP people on it.

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750


Wouter Vanhauwaert
 

Ehm, which github?
And would anyone be able to reproduce it at his side? (so I know it's not just me ;-))


Otavio Salvador
 

https://github.com/Freescale/meta-freescale

Em ter., 20 de out. de 2020 às 14:28, Wouter Vanhauwaert
<w.vanhauwaert@...> escreveu:


Ehm, which github?
And would anyone be able to reproduce it at his side? (so I know it's not just me ;-))

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750