cvt 2560 1080 30
27 November 2016
I picked up a very-slightly-used 34-inch LG 34UM67 display to use on my Debian Linux workstation that I use for processing photos. It’s an IPS display with 2560x1080 pixels, so that should fit nicely with photo work.
The built-in graphics on my Dell T20 only supports VGA, so I also needed to buy a new video card to support HDMI. My needs are modest, so I picked out an Asus ATI Radeon HD6450. I’ve always gone for ATI/AMD and Intel when I could, since their fully open-source versions of drivers have worked well in the past. I’m also not a gamer, so I can skip over Nvidia.
Upon plugging it all together, I needed to ensure I had all the "amdgpu" packages installed from Debian Unstable, so I could get higher resolutions beyond VGA.
It still didn’t recognize the crazy-wide 21:9 aspect ratio out of the box, so I still had some work to do. By default, the display awkwardly stretched the card’s 1920x1080 across the whole screen. That can be fixed in the display: Menu → Quick Settings → Ratio → 1:1, and then you’ll have letter boxes on the sides, but no stretching.
That left me still needing to convince my Xorg xserver to use the rest of the screen, all 2560x1080 pixels. I found a stackexchange article which provided me just about everything I needed.
Generate a modeline for the new resolution: 
cvt 2560 1080 30
Create that new modeline dynamically. In my case mine, looked like this:
xrandr --newmode "2560x1080_30.00" 106.75 2560 2640 2896 3232 1080 1083 1093 1102 -hsync +vsync
Add the mode to the HDMI interface.
In my case it was named
xrandr --addmode HDMI-0 2560x1080_30.00
Then switch to it:
xrandr --output HDMI-0 --mode 2560x1080_30.00
Once I had proven these settings to work nicely,
I obviously wanted to keep them,
so I persisted them by creating a file for them
in the xorg config directory along-side the existing configs
that Debian provides.
I called my file
Section "Monitor" Identifier "HDMI-0" Modeline "2560x1080_30.00" 106.75 2560 2640 2896 3232 1080 1083 1093 1102 -hsync +vsync Option "PreferredMode" "2560x1080_30.00" EndSection
everything was working,
and I was happy for a week or 2,
but I noticed performance wasn’t great during fast 2D updates.
I was seeing some tearing
when I’d play a video in full-screen
or even a large window.
I dug around a little in the
amdgpu(4) man page
and found a couple more options to add to my
Section "Device" Identifier "AMDgpu" Option "TearFree" "on" Option "ShadowPrimary" "on" EndSection
Those final adjustments solved the performance problem for me. I expect those adjustments may only be specific to the cheap card I bought, though.
Next I’ll need to figure out how to speed up my mouse, since it’s such a long way from one side of the screen to the other. I’ll also further rethink the windows I keep beside one another.
I bought the display figuring Linux can be made to do anything, and I was right. I just needed to figure out how.
Filed Under: Linux