How to verify if bypass compositor window hint is accepted

My application (running on Ubuntu 20.04) is rendering to multiple windows, each on its own monitor.
The windows are created using GLFW and rendering is done using openGL.
The first window is opened in full screen mode which sends the hint to bypass the compositor. All following windows (which are on different monitors) are opened in none full screen mode.
The latency in the application is critical so I am measuring it using an external tool.
When I run it with only a single monitor (in full screen), the latency seems ok, and appears that the compositor is in play.
When I create more then 1 window it seems that the latency on all the created windows (including the full screen one) is increased and it is similar to what I get for a single monitor not running in full screen.

How can I verify whether the compositor is handling the synchronization of a given window?
Is it possible to open multiple windows (each on a separate monitor) and have the compositor only handle some of them?

On X11 mutter will only attempt to unredirect (bypass compositor) the fullscreen window if it is the top most window and if it covers all monitors on the screen. So if you open a window on top, or if your fullscreen window does not cover all the monitors, it will not unredirect.

The Wayland session will not have these limitations. even though it does not fully utilize unredirection in all possible scenarios yet.

How can I verify whether the compositor is handling the synchronization of a given window?

If you mean whether the window is unredirected or not, I’m not sure whether X11 has ways to communicate this.

Is it possible to open multiple windows (each on a separate monitor) and have the compositor only handle some of them?

In the X11 session, this is not possible. In the Wayland session, it is in theory, but is only partially implemented.

The requirement to cover all monitors means the application can only open a single window for all connected monitors.
If I understand the synchronization to display correctly, I can only synchronize this multi monitor window to a single monitor. Which will result in screen tear on the other monitors.
Is this correct?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.