How to use vsync with multiple monitors

Hello,
I am working on a project and it consists of displaying multiple fullscreen borderless windows on each display.
I have 4 input video streams and 4 monitors. I would like to display them after processing input frames.
Problem I encounter is I have lots of screen tearing on displays. I intended to use opengl and sync using vsync to eliminate tearing. But nvidia documentation states that it only provides vsync for one display so other displays will experience tearing.
I try to use libdrm to get vsync events and sync frames based on that but looks like nvidia is not providing monitor based vsync.
What should I use. I want to eliminate tearing and vsync is the way to go but I am not able to get vsync for each individual monitors.
What options does nvidia provides to solve this problem.

Don’t know whether that works: using 4 processes each having a different __GL_SYNC_DISPLAY_DEVICE set.
Hardware wise: quadro+quadro sync.

I am running vision and image processing algorithms on frames so I need them in the same process. It is sort of not applicable using multiple processes.
Lets say I used different process, if I set __GL_SYNC_DISPLAY_DEVICE to different monitors in each process, will it work? If I can get different vblank events in different processes, why I cannot get them in single process?

Like said, I don’t know but I can imagine this could work.

I guess due to the single-threaded nature of opengl, how it was designed decades ago.

Okay,
What is the solution here, I am kind of out of options.
I set up for vsync and looks like not working or not sure if it will work or not.
What options do I have here. Any suggestions?

If you’re using Xorg, you can also enable ForceCompositionPipeline in xorg.conf so the driver tries to sync your output.

ForceCompositionPipeline is already on. we still have tearing.
I cannot be the only one having this problem.
Multiple monitors, fullscreen borderless windows, different frames needs to be shown.
How can I sync frames with monitors to prevent tearing?
How can I do that? Isn’t it supposed to be simple solution.
Give me vsync events per monitor and I can flip pages or swap buffers.
why there is no good enough answer to this question?

You might ask in the ogl forum
https://forums.developer.nvidia.com/c/gaming-and-visualization-technologies/apis/opengl/199