Fullscreen over multiple screens (EGLFS)



  • Hello.
    How to launch a single-window application on two screens at once? If i use x11 everything works well, but if i run the application through the EGLFS (KMS/DRM), it runs only on one of the screens.
    i can’t use two separate windows in my application since i need to draw on some screen some elements of another through the ShaderEffectSource


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What about resizing your application window so that it covers both screens ?



  • Thank you.
    It doesn’t work out, no matter what I do, the application always starts on one screen and in full screen mode.

    QGuiApplication app(argc, argv);
    QQuickView *v = new QQuickView;
    v->setScreen(app.screens()[0]);
    v->setResizeMode(QQuickView::SizeRootObjectToView);
    v->setSource(QUrl("qrc:/main.qml"));
    v->showFullScreen();
    QObject::connect(v->engine(), &QQmlEngine::quit, qGuiApp, &QCoreApplication::quit);
    

    i can specify a different screen and then the window will open on another screen in full screen mode.

    I already tried:
    v->setGeometry(screen->geometry()); v->setGeometry(screen->virtualGeometry());
    after and before calling window show.
    I already tried all window display methods:
    v->showFullScreen(); v->show(); v->showNormal();


  • Lifetime Qt Champion

    @divinus said in Fullscreen over multiple screens:

    EGLFS

    Sorry, I misread. You don't have any window manager in this case. So if memory serves well and my understanding of the EGLFS backend documentation, what you get is the expected behaviour. If you want to have your application on both screens, you will have to use either X11 or the Wayland backend. Unless you somehow have a frame buffer device that covers both screens.



  • very disappointing of course at the final stage of development to encounter such trouble :)
    maybe then somehow you can get around the restriction on accessing the ShaderEffectSource from one window to another?



  • @divinus said in Fullscreen over multiple screens:

    very disappointing of course at the final stage of development to encounter such trouble

    with due respect, given you were aiming to use a feature not so well documented or that no that much people employs, shouldn't you have tested this technique at an early stage in your development cycle?



  • @Pablo-J-Rogina said in Fullscreen over multiple screens (EGLFS):

    with due respect, given you were aiming to use a feature not so well documented or that no that much people employs, shouldn't you have tested this technique at an early stage in your development cycle?

    Initially, the project was written using a X86 platform (intel nuc) with sufficiently productive hardware and there were no problems running through the X11. But the concept has changed, and now to reduce the cost, it was decided to switch to arm architecture and use raspberry pi as a prototype. especially since a new version with two HDMI outputs has recently been released, just what we need.



  • @divinus said in Fullscreen over multiple screens (EGLFS):

    use raspberry pi as a prototype. especially since a new version with two HDMI outputs has recently been released, just what we need.

    Ok, fair enough. But given RPi 4 "power" (I didn't try it myself yet, but reviews said it's more powerful than previous devices, i.e. RPi 3) what's the problem to use X11 in that device, as you already proven it works fine for your requirements.



  • @Pablo-J-Rogina
    The source of the problems has not yet been found, but there are no problems when starting the application through the EGLFS, but they are when starting through the X11.

    The main problem is that when playing a video, overlapping frames (bands) are visible since vsync is disabled. And the processor is 100 percent loaded.

    There are still minor problems. For example, a broken multitouch on the touch panel. I think these problems can be solved, but it will take extra time as usual.


Log in to reply