1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Linux Multi-Monitor Support Could Be Improved

Gaming

Published on 08 September 2012 11:06 AM EDT
Written by Michael Larabel in Gaming
38 Comments

While some want Linux multi-monitor support removed, others are looking for it to be improved. Multiple display support for Linux has improved over the years with X.Org and desktop environment advancements, it's still generally less than ideal, especially for Linux gamers.

With the liaising earlier this week between a long-time Linux desktop developer (circa 1996) and a game company, besides talking about the AMD Catalyst driver being on his blacklist of junk, he had many thoughts to share on the state of Linux multi-monitor support.

Since this isn't a problem for just one hardware/driver vendor or game company -- and this remains an active problem on the Linux desktop -- copied below is the extracted part of his message in hopes it spurs other forthcoming Linux game developers to better think through their multi-monitor support and more broadly their window manager interactions. Plus there's some recommendations from this long-time Linux desktop developer about better handling the situation.

Linux Multi-Monitor Support Could Be Improved

From my office setup, I can frustratingly confirm that Linux multi-montior support and handling can be a mess at times. Just not from the Linux graphics driver side but, yes, with games and desktop environments / applications each handling the multi-screen interaction differently.
[If using SDL] beware it has some nasty habits when it comes to fiddling with screen resolution and multi-monitor support. please please please make it play nice! i know it's trying to do these things because it "has to" but it has nasty side-effects.

...i have a few games here (i even bought them... *GASP*), and the almost all behave horribly when it comes to trying to be fullscreen and if i have multiple monitors. from some quick looking it seems SDL just doesn't care that my xinerama setup has 1 root window spanning 2 screens (insanely common in linux/x11 for people with > 1 screen. the most popular by far), BUT my window manager has DIFFERENT virtual desktops per screen. i can switch desktop on one and not the other (unlike most other linux desktops). to be honest.. everyone who discovers it falls in love with it and wonders why it isn't default.

the problem comes with games. some try screw with my screen res and end up messing up at least 1 monitor and getting it wrong and not even making their window the right size. others just bypass the window manager (override-redirect window) and make their window the size of root and span both screens. they don't know that some of their window is hidden as its out of screen bounds (2560x1440 and 1920x1200 monitor so the pixels on root below the 1920x1200 screen are invisible). also they totally mess up badly if the game crashes. it leaves my screen in the resoltuion it set up, with me having to go find my screen settings dialogs and reset it back to normal.

now here comes my "we are happy to help" bit. i understand that sometimes games DO want to adjust resolution. there is already a netwm request for becoming fullscreen. please use it liberally. the wm them may choose to fullscreen you across 2 screens, or only on 1 screen - depending on policies. this lets me keep my irc, im, browser or whatever windows on 1 screen and a game on the other. nicely. what you don't have is some way of having the resolution changed for you AND get this fullscreen policy handling. on the wm side we can extend protocol/property handling to do this for you. should you crash, wm restores the resolution. if your window loses focus it can also restore resolution. of course the wm will need to advertise it supports this and you need to detect it.

the other thing you may need/want is to maybe span all screens. but to do this you need to know the geometry of those screens. again this should be a "please, pretty please" request with wm dealing with it. the user may have 3 screens and want to always ban the use of a specific screen (maybe it has a special use).

now here comes the catch. it MAY be better to open multiple windows and not have 1 big one. if you have screens of vastly differing resolution then you avoid using excess backbuffer sizes. i have some real world examples where 1 screen has 60dpi and another 300dpi. the 300dpi screen is special and you never want to span it. you want to specially handle it. now again you'll need help. you need to know how many windows to open up and then mark them appropriately. you need to be given some general relative geometries of those windows. they then can be specially managed and placed accordingly. again - will need some custom stuff to handle this.

i don't know if you are planning on tackling the multi-screen thing at the moment, but at a minimum it'd be nice to be a good citizen in the single window/screen+fullscreen department above.

Latest Linux Hardware Reviews
  1. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  2. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  3. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  4. Overclocking The AMD AM1 Athlon & Sempron APUs
Latest Linux Articles
  1. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  2. AMD OpenCL Performance With AM1 Kabini APUs
  3. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  4. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
Latest Linux News
  1. Git 2.0 Test Releases Begin With Many Changes
  2. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  3. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  4. Debian To Maintain 6.0 Squeeze As An LTS Release
  5. Wasteland 2 Is Finally Released For Linux Gamers
  6. FreeBSD Advances For ARM, Bhyve, Clang
  7. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  8. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  9. QEMU 2.0 Released With ARM, x86 Enhancements
  10. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  11. R600 Gallium3D Disables LLVM Back-End By Default
  12. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
Latest Forum Discussions
  1. Suggestions about how to make a Radeon HD 7790 work decently?
  2. The GNOME Foundation Is Running Short On Money
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. Radeon 8000M problematic on Linux?
  5. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  6. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  7. Suspected PHP Proxy Issue
  8. Change installation destination from home directory