Dual screen with separate X screens fails with generated nvidia-settings config

I have a Geforce 770 and I got a new monitor (connected w/ Display port) now I am unable to have a dual screen setup with separate X screens. I want the following configuration:

  • Display port -> primary display ( :0.0 )
  • HDMI ( :0.1 )

Before I used DVI, this worked fine, but I am unable to replicate the setup using the monitor connected to the Displayport.

I used ‘nvidia-settings’ to generate the xorg configuration file. But that doesn’t work for some reason, I have the xorg log file attached. When it doesn’t work, it always seems to report “Setting a mode on head 1 failed: Invalid surface parameters”.

Using linux 4.3
Nvidia-drivers 358.16-r1 (gentoo package)
Xorg-server 1.17.4

This is the config file as generated by nvidia-settings. I tried a lot of variations of this, but it all seems to fail.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 358.16  (buildmeister@swio-display-x64-rhel04-12)  Mon Nov 16 19:58:01 PST 2015

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ROG PG278Q"
    HorizSync       30.0 - 210.0
    VertRefresh     30.0 - 150.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "SAMSUNG"
    HorizSync       26.0 - 81.0
    VertRefresh     24.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 770"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 770"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-4"
    Option         "metamodes" "DP-1: 2560x1440 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

This is the log file of a slightly modified xorg.conf (only the names in the ‘metamodes’ lines are modified, same results tho)

[  4615.295] 
X.Org X Server 1.17.4
Release Date: 2015-10-28
[  4615.295] X Protocol Version 11, Revision 0
[  4615.295] Build Operating System: Linux 4.3.0-gentoo x86_64 Gentoo
[  4615.295] Current Operating System: Linux nitrogen 4.3.0-gentoo #1 SMP Thu Dec 3 14:24:12 CET 2015 x86_64
[  4615.295] Kernel command line: BOOT_IMAGE=/kernel-genkernel-x86_64-4.3.0-gentoo root=/dev/mapper/vg-root ro dolvm
[  4615.295] Build Date: 14 December 2015  03:08:51AM
[  4615.295]  
[  4615.295] Current version of pixman: 0.33.4
[  4615.295] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  4615.295] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  4615.295] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Dec 17 10:26:42 2015
[  4615.295] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  4615.295] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  4615.295] (==) ServerLayout "Layout0"
[  4615.295] (**) |-->Screen "Screen0" (0)
[  4615.295] (**) |   |-->Monitor "Monitor0"
[  4615.295] (**) |   |-->Device "Device0"
[  4615.295] (**) |-->Screen "Screen1" (1)
[  4615.295] (**) |   |-->Monitor "Monitor1"
[  4615.295] (**) |   |-->Device "Device1"
[  4615.295] (**) |-->Input Device "Keyboard0"
[  4615.295] (**) |-->Input Device "Mouse0"
[  4615.295] (**) Option "Xinerama" "0"
[  4615.295] (==) Automatically adding devices
[  4615.295] (==) Automatically enabling devices
[  4615.295] (==) Automatically adding GPU devices
[  4615.295] (WW) The directory "/usr/share/fonts/TTF/" does not exist.
[  4615.295] 	Entry deleted from font path.
[  4615.295] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
[  4615.295] 	Entry deleted from font path.
[  4615.295] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[  4615.295] 	Entry deleted from font path.
[  4615.295] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[  4615.295] 	Entry deleted from font path.
[  4615.295] 	(Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[  4615.295] (==) FontPath set to:
	/usr/share/fonts/misc/,
	/usr/share/fonts/100dpi/
[  4615.295] (**) ModulePath set to "/usr/lib64/opengl/nvidia,/usr/lib64/xorg/modules"
[  4615.295] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[  4615.295] (WW) Disabling Keyboard0
[  4615.295] (WW) Disabling Mouse0
[  4615.295] (II) Loader magic: 0x804c60
[  4615.296] (II) Module ABI versions:
[  4615.296] 	X.Org ANSI C Emulation: 0.4
[  4615.296] 	X.Org Video Driver: 19.0
[  4615.296] 	X.Org XInput driver : 21.0
[  4615.296] 	X.Org Server Extension : 9.0
[  4615.296] (II) xfree86: Adding drm device (/dev/dri/card1)
[  4615.296] (II) xfree86: Adding drm device (/dev/dri/card0)
[  4615.296] (--) PCI: (0:0:2:0) 8086:0412:1043:8534 rev 6, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64
[  4615.296] (--) PCI:*(0:1:0:0) 10de:1184:1462:2835 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/134217728, 0xe8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[  4615.296] (II) LoadModule: "glx"
[  4615.296] (II) Loading /usr/lib64/opengl/nvidia/extensions/libglx.so
[  4615.298] (II) Module glx: vendor="NVIDIA Corporation"
[  4615.298] 	compiled for 4.0.2, module version = 1.0.0
[  4615.298] 	Module class: X.Org Server Extension
[  4615.298] (II) NVIDIA GLX Module  358.16  Mon Nov 16 18:54:01 PST 2015
[  4615.298] (II) LoadModule: "nvidia"
[  4615.299] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[  4615.299] (II) Module nvidia: vendor="NVIDIA Corporation"
[  4615.299] 	compiled for 4.0.2, module version = 1.0.0
[  4615.299] 	Module class: X.Org Video Driver
[  4615.299] (II) NVIDIA dlloader X Driver  358.16  Mon Nov 16 18:32:40 PST 2015
[  4615.299] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  4615.299] (++) using VT number 8

[  4615.300] (II) Loading sub module "fb"
[  4615.300] (II) LoadModule: "fb"
[  4615.300] (II) Loading /usr/lib64/xorg/modules/libfb.so
[  4615.300] (II) Module fb: vendor="X.Org Foundation"
[  4615.300] 	compiled for 1.17.4, module version = 1.0.0
[  4615.300] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  4615.300] (II) Loading sub module "wfb"
[  4615.300] (II) LoadModule: "wfb"
[  4615.300] (II) Loading /usr/lib64/xorg/modules/libwfb.so
[  4615.300] (II) Module wfb: vendor="X.Org Foundation"
[  4615.300] 	compiled for 1.17.4, module version = 1.0.0
[  4615.300] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  4615.300] (II) Loading sub module "ramdac"
[  4615.300] (II) LoadModule: "ramdac"
[  4615.300] (II) Module "ramdac" already built-in
[  4615.301] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[  4615.301] (==) NVIDIA(0): RGB weight 888
[  4615.301] (==) NVIDIA(0): Default visual is TrueColor
[  4615.301] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  4615.301] (**) NVIDIA(0): Option "Stereo" "0"
[  4615.301] (**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DFP-4"
[  4615.301] (**) NVIDIA(0): Option "SLI" "Off"
[  4615.301] (**) NVIDIA(0): Option "MultiGPU" "Off"
[  4615.301] (**) NVIDIA(0): Option "BaseMosaic" "off"
[  4615.301] (**) NVIDIA(0): Stereo disabled by request
[  4615.301] (**) NVIDIA(0): NVIDIA SLI disabled.
[  4615.301] (**) NVIDIA(0): NVIDIA Multi-GPU disabled.
[  4615.301] (**) NVIDIA(0): Option "MetaModes" "DFP-4: 2560x1440_144 +0+0"
[  4615.301] (**) NVIDIA(1): Option "MetaModes" "DFP-1: 1920x1080_60 +0+0"
[  4615.301] (**) NVIDIA(0): Enabling 2D acceleration
[  4615.688] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:1:0:0
[  4615.688] (--) NVIDIA(0):     CRT-0
[  4615.688] (--) NVIDIA(0):     DFP-0
[  4615.688] (--) NVIDIA(0):     DFP-1 (boot)
[  4615.688] (--) NVIDIA(0):     DFP-2
[  4615.688] (--) NVIDIA(0):     DFP-3
[  4615.688] (--) NVIDIA(0):     DFP-4
[  4615.691] (--) NVIDIA(0): CRT-0: disconnected
[  4615.691] (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock
[  4615.691] (--) NVIDIA(0): 
[  4615.694] (--) NVIDIA(0): DFP-0: disconnected
[  4615.694] (--) NVIDIA(0): DFP-0: Internal TMDS
[  4615.694] (--) NVIDIA(0): DFP-0: 330.0 MHz maximum pixel clock
[  4615.694] (--) NVIDIA(0): 
[  4615.705] (--) NVIDIA(0): SAMSUNG (DFP-1): connected
[  4615.705] (--) NVIDIA(0): SAMSUNG (DFP-1): Internal TMDS
[  4615.705] (--) NVIDIA(0): SAMSUNG (DFP-1): 340.0 MHz maximum pixel clock
[  4615.705] (--) NVIDIA(0): 
[  4615.705] (--) NVIDIA(0): DFP-2: disconnected
[  4615.705] (--) NVIDIA(0): DFP-2: Internal TMDS
[  4615.705] (--) NVIDIA(0): DFP-2: 165.0 MHz maximum pixel clock
[  4615.705] (--) NVIDIA(0): 
[  4615.705] (--) NVIDIA(0): DFP-3: disconnected
[  4615.705] (--) NVIDIA(0): DFP-3: Internal TMDS
[  4615.705] (--) NVIDIA(0): DFP-3: 330.0 MHz maximum pixel clock
[  4615.705] (--) NVIDIA(0): 
[  4615.786] (--) NVIDIA(0): Ancor Communications Inc ROG PG278Q (DFP-4): connected
[  4615.786] (--) NVIDIA(0): Ancor Communications Inc ROG PG278Q (DFP-4): Internal DisplayPort
[  4615.786] (--) NVIDIA(0): Ancor Communications Inc ROG PG278Q (DFP-4): 960.0 MHz maximum pixel clock
[  4615.786] (--) NVIDIA(0): Ancor Communications Inc ROG PG278Q (DFP-4): supports NVIDIA 3D Vision stereo.
[  4615.786] (--) NVIDIA(0): 
[  4615.787] (II) NVIDIA(GPU-0): Found DRM driver nvidia-drm (20150116)
[  4615.788] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 770 (GK104) at PCI:1:0:0 (GPU-0)
[  4615.788] (--) NVIDIA(0): Memory: 2097152 kBytes
[  4615.788] (--) NVIDIA(0): VideoBIOS: 80.04.c3.00.38
[  4615.788] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[  4615.788] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[  4615.788] (**) NVIDIA(0):     device Ancor Communications Inc ROG PG278Q (DFP-4) (Using
[  4615.788] (**) NVIDIA(0):     EDID frequencies has been enabled on all display
[  4615.788] (**) NVIDIA(0):     devices.)
[  4615.789] (II) NVIDIA(0): Validated MetaModes:
[  4615.789] (II) NVIDIA(0):     "DFP-4:2560x1440_144+0+0"
[  4615.789] (II) NVIDIA(0): Virtual screen size determined to be 2560 x 1440
[  4615.792] (--) NVIDIA(0): DPI set to (108, 107); computed from "UseEdidDpi" X config
[  4615.792] (--) NVIDIA(0):     option
[  4615.792] (**) NVIDIA(1): Depth 24, (--) framebuffer bpp 32
[  4615.792] (==) NVIDIA(1): RGB weight 888
[  4615.792] (==) NVIDIA(1): Default visual is TrueColor
[  4615.792] (==) NVIDIA(1): Using gamma correction (1.0, 1.0, 1.0)
[  4615.792] (**) NVIDIA(1): Option "Stereo" "0"
[  4615.792] (**) NVIDIA(1): Option "SLI" "Off"
[  4615.792] (**) NVIDIA(1): Option "MultiGPU" "Off"
[  4615.792] (**) NVIDIA(1): Option "BaseMosaic" "off"
[  4615.792] (**) NVIDIA(1): Stereo disabled by request
[  4615.792] (**) NVIDIA(1): NVIDIA SLI disabled.
[  4615.792] (**) NVIDIA(1): NVIDIA Multi-GPU disabled.
[  4615.792] (II) NVIDIA(1): NVIDIA GPU GeForce GTX 770 (GK104) at PCI:1:0:0 (GPU-0)
[  4615.792] (--) NVIDIA(1): Memory: 2097152 kBytes
[  4615.792] (--) NVIDIA(1): VideoBIOS: 80.04.c3.00.38
[  4615.792] (II) NVIDIA(1): Detected PCI Express Link width: 16X
[  4615.792] (**) NVIDIA(1): Using HorizSync/VertRefresh ranges from the EDID for display
[  4615.792] (**) NVIDIA(1):     device SAMSUNG (DFP-1) (Using EDID frequencies has been
[  4615.792] (**) NVIDIA(1):     enabled on all display devices.)
[  4615.794] (II) NVIDIA(1): Validated MetaModes:
[  4615.794] (II) NVIDIA(1):     "DFP-1:1920x1080_60+0+0"
[  4615.794] (II) NVIDIA(1): Virtual screen size determined to be 1920 x 1080
[  4615.800] (--) NVIDIA(1): DPI set to (69, 70); computed from "UseEdidDpi" X config
[  4615.800] (--) NVIDIA(1):     option
[  4615.800] (--) Depth 24 pixmap format is 32 bpp
[  4615.804] (II) NVIDIA: Using 3072.00 MB of virtual memory for indirect memory
[  4615.804] (II) NVIDIA:     access.
[  4615.807] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[  4615.807] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[  4615.807] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[  4615.807] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[  4615.807] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[  4615.807] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[  4615.807] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[  4615.807] (II) NVIDIA(0):     Config Options in the README.
[  4615.824] (II) NVIDIA(0): Setting mode "DFP-4:2560x1440_144+0+0"
[  4615.899] (==) NVIDIA(0): Disabling shared memory pixmaps
[  4615.899] (==) NVIDIA(0): Backing store enabled
[  4615.899] (==) NVIDIA(0): Silken mouse enabled
[  4615.899] (**) NVIDIA(0): DPMS enabled
[  4615.899] (II) Loading sub module "dri2"
[  4615.899] (II) LoadModule: "dri2"
[  4615.899] (II) Module "dri2" already built-in
[  4615.899] (II) NVIDIA(0): [DRI2] Setup complete
[  4615.899] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[  4615.899] (--) RandR disabled
[  4615.902] (II) NVIDIA(1): ACPI: failed to connect to the ACPI event daemon; the daemon
[  4615.902] (II) NVIDIA(1):     may not be running or the "AcpidSocketPath" X
[  4615.902] (II) NVIDIA(1):     configuration option may not be set correctly.  When the
[  4615.902] (II) NVIDIA(1):     ACPI event daemon is available, the NVIDIA X driver will
[  4615.902] (II) NVIDIA(1):     try to use it to receive ACPI event notifications.  For
[  4615.902] (II) NVIDIA(1):     details, please see the "ConnectToAcpid" and
[  4615.902] (II) NVIDIA(1):     "AcpidSocketPath" X configuration options in Appendix B: X
[  4615.902] (II) NVIDIA(1):     Config Options in the README.
[  4615.919] (II) NVIDIA(1): Setting mode "DFP-1:1920x1080_60+0+0"
[  4615.919] (WW) NVIDIA(1): Failed to set the display configuration
[  4615.919] (WW) NVIDIA(1):  - Setting a mode on head 1 failed: Invalid surface parameters
[  4615.919] (WW) NVIDIA(1):     were specified
[  4615.919] (EE) 
Fatal server error:
[  4615.919] (EE) AddScreen/ScreenInit failed for driver 1
[  4615.920] (EE) 
[  4615.920] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[  4615.920] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  4615.920] (EE) 
[  4615.965] (EE) Server terminated with error (1). Closing log file.

I’m sorry to hijack you thread, but are you able to use your monitor at 1440p 144Hz? Just asking because, I can’t (https://devtalk.nvidia.com/default/topic/894932/linux/no-144hz-option-for-asus-mg279q-monitor/)

Did you ever find a solution to this issue? I just got an Asus PG279Q and am having what looks like an identical problem.

I have a GTX 780 Ti.

Before the new monitor I had been using an old Iiyama LCD monitor via VGA (dongle on the DVI port) along with a Dell U2414H LCD monitor via DisplayPort. I had xorg.conf set up to have the Dell as Screen0 and the Iiyama RightOf that as Screen 1.

I’d hoped I could just find the requisite identifiers (old setup had the Dell identified via DFP-4 and the Iiyama as CRT-0), edit the file and I’d be done. But no.

Initially the issue was that the Asus, on DisplayPort (I’d moved the Dell to HDMI) seemed to be slow to be detected. Eventually it would show up as DFP-4, with the Dell on DFP-1, but that meant the Dell would be primary with the Asus on its right, when what I want is the Asus as primary and the Dell on its right.

After much fiddling around all I could get working was a xinerama setup through having NO xorg.conf. Any attempt to assign the Dell as Screen1 would result in an xorg.conf that didn’t work (either no effect, monitors still around the wrong way, or gdm3/xorg hanging at startup, or during user login). During this time some configurations would result in a “invalid surface parameters” message when trying to initialise the Asus. Then I found an option on the Asus “System Setup” > “DisplayPort Deep Sleep”, which I turned off.

NOW I get the “invalid surface parameters” about the Dell!

I’ll be back shortly after I’ve made sure I have the best debug/log output to add to this post.

Ok, this is after a HARD power off of everything for ~20 seconds, just to be sure.

With no xorg.conf I end up with a xinerama setup that works, but that’s not what I want.

A “startx – -logverbose 6” with the attempt at separate Screens produces the following nvidia-bug-report.sh output, with the “invalid surface parameters” issues.

The forum isn’t playing ball with the huge nvidia-bug-report.log, so I’ve uploaded all relevant files, including it, here:

https://miggy.org/misc/nvidia/hard-poweroff-reboot-invalid-surface-params/

After more fiddling I’ve come up with a solution to this. Using this xorg.conf

Section "ServerLayout"
        Identifier      "Athan's manual config"
        Screen          0 "Screen0" 2560 0
        Screen          1 "Screen1" 0 0
        InputDevice     "Mouse0" "CorePointer"
        InputDevice     "Keyboard0" "CoreKeyboard"
EndSection

Section "Module"
#       Load           "glx"
#       Load           "dbe"
#       Load           "extmod"
#       Load  "pex5"
#       Load           "record"
#       Disable  "xie"
#       Load           "freetype"
#       Load           "bitmap"
#       Disable  "type1"
        Load           "glx"
#       Disable  "xtt"
EndSection

Section "ServerFlags"
        Option          "StandbyTime" "1800"
        Option          "SuspendTime" "3600"
        Option          "OffTime" "7200"
        Option          "Xinerama" "false"
#    Option         "AllowEmptyInput" "false"
EndSection

Section "InputDevice"
        Identifier      "Keyboard0"
        Driver          "kbd"
        Option          "AutoRepeat" "500 30"
        Option          "XkbRules" "xfree86"
#       Option          "XkbModel" "pc104"
        Option          "XkbLayout" "gb"
EndSection

Section "InputDevice"
        Identifier      "Mouse0"
        Driver          "evdev"
#       Option         "Floating" "off"
        Option          "Device" "/dev/input/event4"
        Option          "YAxisMapping" "4 5"
        Option          "XAxisMapping" "18 19"
EndSection

Section "Device"
        Identifier      "Card0"
        Driver          "nvidia"
        VendorName      "NVidia"
        BoardName       "GeForce GTX 780 Ti"
        BusID           "PCI:1:0:0"
        Option          "Monitor-DFP-1" "Monitor0"
        Screen          0
EndSection

Section "Device"
        Identifier      "Card1"
        Driver          "nvidia"
        VendorName      "NVidia"
        BoardName       "GeForce GTX 780 Ti"
        BusID           "PCI:1:0:0"
        Option          "Monitor-DFP-4" "Monitor1"
        Screen          1
EndSection

Section "Monitor"
        Identifier      "Monitor0"
        Option          "metamodes" "DFP-1: 1920x1080_60"
        Option          "RightOf" "DFP-4"
        Option          "DPMS" "on
EndSection

Section "Monitor"
        Identifier      "Monitor1"
        Option          "metamodes" "DFP-4: 2560x1440_60"
        Option          "Primary" "true"
        Option          "DPMS" "on
EndSection

Section "Screen"
        Identifier      "Screen0"
        Device          "Card0"
        Monitor         "Monitor0"
        DefaultDepth    24
        Option          "NoLogo" "on"
EndSection

Section "Screen"
        Identifier      "Screen1"
        Device          "Card1"
        Monitor         "Monitor1"
        DefaultDepth    24
        Option          "NoLogo" "on"
EndSection

In short, specify as little as possible per monitor, but DO specify the resolution and refresh rate. Then use pixel positioning to place them in the correct orientation, rather than trying to use:

Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"

I instead use:

Screen          0 "Screen0" 2560 0
        Screen          1 "Screen1" 0 0

Then I just had to swap my per-screen fvwm2 configs, i.e. ~/.fvwm/fvwm2rc.screen-[01] had their digits swapped.

I’d still like to get a working configuration where the Asus/DisplayPort is actually the primary monitor though.