eglfs is not work
-
Cross compile Qt 5.9.0 for raspberry pi 3 problem: eglfs is not work, it is not display my 3.5 inch touchscreen, linuxfb is ok
the log:
pi@raspberrypi:~$ ./openglwindow
qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_brcm", "eglfs_emu")
qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_brcm", "eglfs_emu")
qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_brcm"
qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_brcm"
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
qt.qpa.input: evdevkeyboard: Using device discovery
qt.qpa.input: static device discovery for type QFlagsQDeviceDiscovery::QDeviceType(Device_Keyboard)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevmouse: Using device discovery
qt.qpa.input: static device discovery for type QFlagsQDeviceDiscovery::QDeviceType(Device_Mouse|Device_Touchpad)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevtouch: Using device discovery
qt.qpa.input: static device discovery for type QFlagsQDeviceDiscovery::QDeviceType(Device_Touchpad|Device_Touchscreen)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: Found touchscreen at "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/mice"
qt.qpa.input: doing static device discovery for "/dev/input/mouse0"
qt.qpa.input: Found matching devices ("/dev/input/event0")
qt.qpa.input: evdevtouch: Adding device at "/dev/input/event0"
qt.qpa.input: evdevtouch: Using device /dev/input/event0
qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type A (single), filtered=no
qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: 4095
qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 65535
qt.qpa.input: evdevtouch: /dev/input/event0: device name: ADS7846 Touchscreen
Created context for format QSurfaceFormat(version 2.0, options QFlagsQSurfaceFormat::FormatOption(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples 16, swapBehavior QSurfaceFormat::SwapBehavior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) with config:
EGL_BUFFER_SIZE: 16
EGL_ALPHA_SIZE: 0
EGL_BLUE_SIZE: 5
EGL_GREEN_SIZE: 6
EGL_RED_SIZE: 5
EGL_DEPTH_SIZE: 0
EGL_STENCIL_SIZE: 0
EGL_CONFIG_CAVEAT: 12344
EGL_CONFIG_ID: 24
EGL_LEVEL: 0
EGL_MAX_PBUFFER_HEIGHT: 2048
EGL_MAX_PBUFFER_PIXELS: 4194304
EGL_MAX_PBUFFER_WIDTH: 2048
EGL_NATIVE_RENDERABLE: 1
EGL_NATIVE_VISUAL_ID: 107544
EGL_NATIVE_VISUAL_TYPE: 12344
EGL_SAMPLES: 4
EGL_SAMPLE_BUFFERS: 1
EGL_SURFACE_TYPE: 1639
EGL_TRANSPARENT_TYPE: 12344
EGL_TRANSPARENT_BLUE_VALUE: 0
EGL_TRANSPARENT_GREEN_VALUE: 0
EGL_TRANSPARENT_RED_VALUE: 0
EGL_BIND_TO_TEXTURE_RGB: 0
EGL_BIND_TO_TEXTURE_RGBA: 0
EGL_MIN_SWAP_INTERVAL: 0
EGL_MAX_SWAP_INTERVAL: 2147483647
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)no error in log,but the touchscrren is not any display,who can help me?
Forgive my poor English -
You can use the eglfs plugin on rpi due to the bcrm chip hardware restrictions only on hdmi or dsi connected displays. If you have a i2c or spi display you can only use linuxfb.
One workaround we used was to run the application on eglfs without a hdmi display and use framebuffer copy (https://github.com/tasanakorn/rpi-fbcp) to mirrow the eglfs application to a spi display. This was working quit well.