AnsweredAssumed Answered

IMX6Q X11 Vivante GPU acceleration Segmentation Fault

Question asked by Neil Patel on Nov 14, 2019
Latest reply on Nov 20, 2019 by Bio_TICFSL

Hi,

 

I am currently facing issues when trying to start X11 with Vivante GPU acceleration. This is on a custom board, using the NXP 4.14.98_2.0.0 GA Linux Kernel. I am currently using:

 

X.Org X Server 1.20.4

imx-gpu-viv_6.2.4.p1.8

xf86-video-imx-vivante  -->
SRCREV = "b765c3ffc0dcc4246afa659aa0d59f78a6736b08"
SRCBRANCH = "imx_exa_viv6_g2d"
SRC_URI = "git://source.codeaurora.org/external/imx/xf86-video-imx-vivante.git;protocol=https;branch=${SRCBRANCH}

 

Galcore version: 6.2.4.150331 (from NXP 4.9.88_2.0.0 GA Linux kernel release, which is the one that works)

 

Here is Xorg log, in which a segmentation fault occurs:

 

 

X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[    19.959] Build Operating System: Linux 4.15.0-65-generic x86_64
[    19.959] Current Operating System: Linux dbh670 4.14.98-imx+g1175b5961153 #1 SMP Mon Oct 14 20:04:51 UTC 2019 armv7l
[    19.959] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw vmalloc=400M
[    19.960] Build Date: 16 October 2019  05:31:35PM
[    19.960]
[    19.960] Current version of pixman: 0.38.0
[    19.960]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    19.960] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    19.960] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Oct 16 17:03:58 2019
[    19.960] (==) Using config file: "/etc/X11/xorg.conf"
[    19.960] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    19.961] (==) ServerLayout "Default Layout"
[    19.961] (**) |-->Screen "Default Screen" (0)
[    19.961] (**) |   |-->Monitor "Configured Monitor"
[    19.962] (**) |   |-->Device "Your Accelerated Framebuffer Device"
[    19.963] (==) Automatically adding devices
[    19.963] (==) Automatically enabling devices
[    19.963] (==) Automatically adding GPU devices
[    19.963] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    19.963] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (==) FontPath set to:

[    19.963] (==) ModulePath set to "/usr/lib/xorg/modules"
[    19.963] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    19.963] (II) Loader magic: 0x557dd0
[    19.963] (II) Module ABI versions:
[    19.963]    X.Org ANSI C Emulation: 0.4
[    19.963]    X.Org Video Driver: 24.0
[    19.963]    X.Org XInput driver : 24.1
[    19.963]    X.Org Server Extension : 10.0
[    19.966] (--) using VT number 2

[    19.966] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    19.970] (II) xfree86: Adding drm device (/dev/dri/card2)
[    19.970] (II) xfree86: Adding drm device (/dev/dri/card0)
[    19.975] (II) xfree86: Adding drm device (/dev/dri/card1)
[    19.975] (II) no primary bus or device found
[    19.975]    falling back to /sys/devices/platform/platform:Vivante GCCore/drm/card2
[    19.975] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[    19.975] (II) LoadModule: "dbe"
[    19.976] (II) Module "dbe" already built-in
[    19.976] (II) LoadModule: "extmod"
[    19.976] (II) Module "extmod" already built-in
[    19.976] (II) LoadModule: "glx"
[    19.976] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    19.988] (II) Module glx: vendor="X.Org Foundation"
[    19.988]    compiled for 1.20.4, module version = 1.0.0
[    19.988]    ABI class: X.Org Server Extension, version 10.0
[    19.988] (II) LoadModule: "dri"
[    19.988] (II) Module "dri" already built-in
[    19.988] (II) LoadModule: "vivante"
[    19.988] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[    19.989] (II) Module vivante: vendor="X.Org Foundation"
[    19.989]    compiled for 1.20.4, module version = 1.0.0
[    19.989]    ABI class: X.Org Video Driver, version 24.0
[    19.989] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
        VivanteGCCORE
[    20.004] (WW) Falling back to old probe method for vivante
[    20.004] (II) Loading sub module "fbdevhw"
[    20.004] (II) LoadModule: "fbdevhw"
[    20.004] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    20.005] (II) Module fbdevhw: vendor="X.Org Foundation"
[    20.005]    compiled for 1.20.4, module version = 0.0.2
[    20.005]    ABI class: X.Org Video Driver, version 24.0
[    20.005] (II) VIVANTE(0): using default device
[    20.007] (II) VIVANTE(0): Device preferred mode 'fb0':U:1920x1080p-0
[    20.007] (II) VIVANTE(0): Creating default Display subsection in Screen section
        "Default Screen" for depth/fbbpp 16/16
[    20.008] (**) VIVANTE(0): Depth 16, (--) framebuffer bpp 16
[    20.008] (==) VIVANTE(0): RGB weight 565
[    20.008] (==) VIVANTE(0): Default visual is TrueColor
[    20.008] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[    20.008] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    20.008] (**) VIVANTE(0): mExaHwType:1
[    20.008] (II) VIVANTE(0): checking modes against framebuffer device...
[    20.008] (II) VIVANTE(0): checking modes against monitor...
[    20.008] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[    20.008] (==) VIVANTE(0): DPI set to (96, 96)
[    20.008] (II) Loading sub module "fb"
[    20.008] (II) LoadModule: "fb"
[    20.008] (II) Loading /usr/lib/xorg/modules/libfb.so
[    20.009] (II) Module fb: vendor="X.Org Foundation"
[    20.009]    compiled for 1.20.4, module version = 1.0.0
[    20.009]    ABI class: X.Org ANSI C Emulation, version 0.4
[    20.010] (II) Loading sub module "exa"
[    20.010] (II) LoadModule: "exa"
[    20.010] (II) Loading /usr/lib/xorg/modules/libexa.so
[    20.010] (II) Module exa: vendor="X.Org Foundation"
[    20.010]    compiled for 1.20.4, module version = 2.6.0
[    20.010]    ABI class: X.Org Video Driver, version 24.0
[    20.011] (WW) VIVANTE(0): unable to support largest resolution (Invalid argument)(II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[    20.068] (EE) VIVANTE(0): unable to set VSCREENINFO for mode 'U:1920x1080p-0': Invalid argument
[    20.068] (EE) VIVANTE(0): unable to set frame buffer mode 'U:1920x1080p-0'
[    20.068] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1920 1920 1920 1920  1080 1080 1080 1080 -hsync -vsync -csync (0.0 kHz b)
[    20.118] (II) VIVANTE(0): Output  using monitor section Configured Monitor
[    20.118] (II) VIVANTE(0): Printing probed modes for output
[    20.118] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1920 1920 1920 1920  1080 1080 1080 1080 -hsync -vsync -csync (0.0 kHz b)
[    20.118] (II) VIVANTE(0): Output  connected
[    20.118] (II) VIVANTE(0): Using sloppy heuristic for initial modes
[    20.118] (II) VIVANTE(0): Output  using initial mode current +0+0
[    20.118] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1920 x 1080, display width 0
[    20.118] (II) VIVANTE(0): VivPreInit: adjust display width 1920
[    20.119] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 4147200 bytes; offset of shadow buffer 4177920
[    20.119] (EE) VIVANTE(0): fb memory is not big enough to hold shadow buffer!
[    20.127] (EE) VIVANTE(0): unable to write 'current
' to sysnode '/sys/class/graphics/fb0/mode': Invalid argument
[    20.161] (II) VIVANTE(0): hardware:  (video memory: 4050kB)
[    20.203] (II) VIVANTE(0): FB Start = 0xb613d000  FB Base = 0xb613d000  FB Offset = (nil)
[    20.204] (II) VIVANTE(0): test Initializing EXA
[    20.604] (II) EXA(0): Driver allocated offscreen pixmaps
[    20.604] (II) EXA(0): Driver registered support for the following operations:
[    20.604] (II)         Solid
[    20.604] (II)         Copy
[    20.604] (II)         Composite (RENDER acceleration)
[    20.604] (II)         UploadToScreen
[    20.604] (==) VIVANTE(0): Backing store enabled
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (==) VIVANTE(0): DPMS enabled
[    20.637] drmOpenDevice: node name is /dev/dri/card0
[    20.637] drmOpenDevice: open result is 13, (OK)
[    20.653] drmOpenDevice: node name is /dev/dri/card0
[    20.653] drmOpenDevice: open result is 13, (OK)
[    20.670] drmOpenByBusid: Searching for BusID platform:Vivante GCCore
[    20.670] drmOpenDevice: node name is /dev/dri/card0
[    20.670] drmOpenDevice: open result is 13, (OK)
[    20.670] drmOpenByBusid: drmOpenMinor returns 13
[    20.670] drmOpenByBusid: drmGetBusid reports display-subsystem
[    20.686] drmOpenDevice: node name is /dev/dri/card1
[    20.686] drmOpenDevice: open result is 13, (OK)
[    20.686] drmOpenByBusid: drmOpenMinor returns 13
[    20.687] drmOpenByBusid: drmGetBusid reports 130000.gpu
[    20.687] drmOpenDevice: node name is /dev/dri/card2
[    20.687] drmOpenDevice: open result is 13, (OK)
[    20.687] drmOpenByBusid: drmOpenMinor returns 13
[    20.687] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore
[    20.687] (II) [drm] DRM interface version 1.4
[    20.687] (II) [drm] DRM open master succeeded.
[    20.687] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[    20.687] (II) VIVANTE(0): [drm] framebuffer handle = 0x7c100000
[    20.687] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[    20.687] (II) VIVANTE(0): X context handle = 0x1
[    20.687] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[    20.687] (EE) VIVANTE(0): [dri] DRIScreenInit failed.  Disabling DRI.
[    20.687] (II) Initializing extension Generic Event Extension
[    20.687] (II) Initializing extension SHAPE
[    20.687] (II) Initializing extension MIT-SHM
[    20.687] (II) Initializing extension XInputExtension
[    20.688] (II) Initializing extension XTEST
[    20.688] (II) Initializing extension BIG-REQUESTS
[    20.688] (II) Initializing extension SYNC
[    20.688] (II) Initializing extension XKEYBOARD
[    20.688] (II) Initializing extension XC-MISC
[    20.688] (II) Initializing extension XFIXES
[    20.688] (II) Initializing extension RENDER
[    20.688] (II) Initializing extension RANDR
[    20.688] (II) Initializing extension COMPOSITE
[    20.688] (II) Initializing extension DAMAGE
[    20.688] (II) Initializing extension MIT-SCREEN-SAVER
[    20.688] (II) Initializing extension DOUBLE-BUFFER
[    20.688] (II) Initializing extension DPMS
[    20.688] (II) Initializing extension Present
[    20.688] (II) Initializing extension DRI3
[    20.688] (II) Initializing extension X-Resource
[    20.688] (II) Initializing extension XVideo
[    20.688] (II) Initializing extension XVideo-MotionCompensation
[    20.688] (II) Initializing extension GLX
[    20.688] (II) AIGLX: Screen 0 is not DRI2 capable
[    20.740] (II) IGLX: Loaded and initialized swrast
[    20.741] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    20.741] (II) Initializing extension XFree86-VidModeExtension
[    20.741] (II) Initializing extension XFree86-DGA
[    20.741] (II) Initializing extension XFree86-DRI
[    20.741] (II) Initializing extension DRI2
[    20.741] (II) Initializing extension vivext
[    20.741] (II) VIVANTE(0): Setting screen physical size to 508 x 285
[    20.954] (EE)
[    20.954] (EE) Backtrace:
[    20.954] (EE)
[    20.954] (EE) Segmentation fault at address 0xc0000000
[    20.954] (EE)
Fatal server error:
[    20.954] (EE) Caught signal 11 (Segmentation fault). Server aborting
[    20.954] (EE)
[    20.954] (EE)

 

 

What are the recommended versions of Xserver, imx-gpu-viv, and xf86-video-imx-vivante to use with NXP kernel 4.14.98_2.0.0 GA?

 

Thanks,

Neil

Outcomes