Separate X screens

Anyone here unironically using Xorg with separate X screens?
It allows you to avoid the limitations of Xinerama such as bad handling of mixed refresh rates and VRR not working with multiple displays active.
I'm curious how many people are using such setup.

Attached: 1630396168328.png (251x201, 5.05K)

Mixed refresh rates actually work perfectly fine with randr and xcb. I think VRR is indeed broken though.

>Mixed refresh rates actually work perfectly fine with randr and xcb.
Do applications actually use the correct refresh rate on all displays? Do they not just always run at the refresh rate of the primary display?

Many don't run correctly and it's often mistakenly believed that it's an xorg limitation, but it's actually not. I'd wager it's because most people still use xlib which is limited in a lot of ways but it's way easier to program in. Also xcb's documentation is trash. However, with xcb you can correctly detect dynamic events like your window going to a different monitor and updating your rendering appropriately.

What about compositors? Is it possible to use xcb to make a compositor that works with mixed refresh rates?

It should be. I don't really use compositors, but for example the TearFree option (which is basically compositing just on the driver level) and glxgears work correctly.

Weird thing I've noticed about TearFree is that just enabling it can sometimes make compositors work correctly (i.e. no longer be capped to the lowest refresh rate). I wonder what the mechanism behind that is.

Anyway this is actually mostly irrelevant to me. My main motivation behind wanting to use separate X screens is VRR. There doesn't seem to be any way to make it work with Xinerama and Wayland is still like 5+ years away from being usable...

Xinerama is definitely too old for this. I'm Randr is more than a complete replacement but some people still have xinerama around in their code anyone. The best bet for fixing this is probably patching xorg. I doubt it is somehow impossible since there is already some sort of VRR support. Perhaps randr needs to be extended or something like that, but it should be doable.

I'm using two monitors, main one with 144hz and second with 60hz. Worked out of the box with xrandr by just setting the first to 144hz. Might have to mess with vsync settings a bit in order to avoid screen tearing but I haven't had any huge issues as of yet.

x11 has many different ways to synchronize to display. With the simple old ones it syncs to the primary display, which means it may run at a higher fps but it still doesn't have tearing. With the newer sync functions you can sync to a specific framerate which you can get by just checking the framerate of the display the window is on. This option also allows you to handle frame overflows to make vsync perform smoother than traditional sync options. You can also always enable vsync but sleep to fit the vsync of the display it's on. x11 makes that all possible. This is the method serious games use for more consistent frame times (even on windows).

Most applications use a very simple vsync method that syncs to the primary display but it's easy to fix in xorg server. I can fix it, but you need to wait until I buy a VRR display to test it on lol

I have a VRR display but only one monitor kek. I attempted to connect my laptop to this monitor, and it wasn't able to detect that it was VRR capable. That might just be a the limitation of the HDMI I was using though since it wasn't even able to run it at 4k 60fps (only 30fps).

I did it for a while. Works well enough for me as I rarely move windows across monitors so I'm not losing much. Only reason I stopped is that awesome doesn't support it well. It kinda works if you run two WMs, but it's still annoying in some ways.
>bad handling of mixed refresh rates
Works on my machine.

Attached: output.webm (1920x540, 2.44M)

>but it's still annoying in some ways
What are some of the issues that you ran into?

For example, switching focus between monitors was impossible without a xdotool hack and even then it was a bit buggy. Also setting up different tags on both monitors was a pain among other things I don't remember any more.
Notably, awesome DID support separate X screens before, but it was dropped after version 4.1 or something. Maybe it could be patched back in, but I just went with xrandr instead.

I stumbled upon this way or multi-monitor when I decided to put an an older video card to use in my set-up. Both monitors have the same refresh rate, so this hasn't been an issue.
It kind of feels like having two computers running, if that makes sense. You can't move windows between the two monitors, and this even goes so far as to not being able to open programs on both monitors at once. I found myself using two web browsers so I could have internet information on both monitors.
But, this also allows me have a monitor swap between workspaces independent of the other, which I think will be useful for reference.

>Xorg
This isn't 2003 anymore

>switching focus between monitors was impossible without a xdotool hack and even then it was a bit buggy.
I solved this by writing my own little C program with Xlib. It's working nicely so far.
>Also setting up different tags on both monitors was a pain among other things I don't remember any more.
This would probably be easy to patch into something like dwm, but I guess if you're using a more complicated WM that might be hard to do.

desu nvidia just werks, i dont have this problem on my 1080

Do you know if variable refresh rate on multi-monitor setups work on nvidia?

yea it does

Fucking hell. Mesa/xorg bros pls fix

I used to, mostly because I had four screens across two separate cards and couldn't make it work any other way. I strongly suspect that the reason I couldn't make it work any other way boiled down to "Nvidia are shitheads", multi-card works fine now with amdgpu, nouveau, and intel. VRR wasn't a thing back then so I never tried that.

Never, ever, under any circumstance, get Nvidia anything.