Issues with Dual Monitors and Screen Flickering with Intel Raptor Lake-P [Iris Xe Graphics] on Linux

Hello everyone,

I’m having issues with setting up dual monitors and screen flickering on my laptop running Linux with an Intel Raptor Lake-P [Iris Xe Graphics] GPU. I’ve tried several solutions found online, but none of them have solved my problems. Here’s a summary of my issues and what I’ve tried:

  1. I’m unable to use a dual monitor setup. When attempting to do so, my laptop fails to recognize or correctly use the second monitor.

  2. On my laptop monitor, I experience black lines flashing across the screen. This issue doesn’t occur on an external monitor, which works perfectly fine.

I’ve ensured that my system and packages are up to date and have the correct drivers installed. Here is the output of lspci -k | grep -EA3 'VGA|3D|Display':

00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
        Subsystem: Lenovo Raptor Lake-P [Iris Xe Graphics]
        Kernel driver in use: i915
        Kernel modules: i915

I’ve also checked my Xorg configuration and added several options as recommended in various places. Here’s my /etc/X11/xorg.conf.d/20-intel.conf file:

Section "Device" Identifier "Intel Graphics"
  Driver "modesetting"
  Option "Flip" "False"
  Option      "DRI"  "3"
  Option      "TearFree"        "false"
  Option      "TripleBuffer"    "false"
  Option      "SwapbuffersWait" "false"
EndSection

After modifying this file, I’ve tried restarting X by logging out and back in, as well as rebooting my computer, but the problem persists.

When I check my Xorg log file (/var/log/Xorg.0.log), I see a lot of warnings about failing to queue async flip:

$ cat /var/log/Xorg.0.log
[ 27681.872] (II) modeset(0): Allocate new frame buffer 5120x1440 stride
[ 27682.400] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.405] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 0 failed: Device or resource busy
[ 27682.436] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.464] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.481] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.485] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.491] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.495] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.498] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.500] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.503] (WW) modeset(0): Present-flip: queue async flip during flip on CRTC 1 failed: Device or resource busy
[ 27682.504] (WW) modeset(0): flip queue retry
[ 27682.504] (WW) modeset(0): Present-flip: detected too frequent flip errors, disabling logs until frequency is reduced
[ 27685.757] (WW) modeset(0): flip queue retry
[ 27686.574] (WW) modeset(0): flip queue retry
[ 27686.625] (WW) modeset(0): flip queue retry
[ 27686.741] (WW) modeset(0): flip queue retry
[ 27688.676] (WW) modeset(0): flip queue retry
[ 27689.877] (WW) modeset(0): flip queue retry
[ 27691.979] (WW) modeset(0): flip queue retry
[ 27692.546] (WW) modeset(0): flip queue retry
[ 27693.013] (WW) modeset(0): flip queue retry
[ 27694.097] (WW) modeset(0): flip queue retry
[ 27694.113] (WW) modeset(0): flip queue retry
[ 27694.497] (WW) modeset(0): flip queue retry
[ 27698.217] (WW) modeset(0): flip queue retry
[ 27698.935] (WW) modeset(0): flip queue retry
[ 27699.101] (WW) modeset(0): flip queue retry
[ 27701.737] (WW) modeset(0): flip queue retry
[ 27701.954] (WW) modeset(0): flip queue retry
[ 27702.604] (WW) modeset(0): flip queue retry
[ 27706.729] (II) modeset(0): Allocate new frame buffer 2560x1440 stride

I’ve also checked my system logs using journalctl, and here’s what I found:

Jun 08 11:40:03 acascais kernel: adding CRTC not allowed without modesets: requested 0x1, affected 0x3
Jun 08 11:40:03 acascais kernel: WARNING: CPU: 7 PID: 841 at drivers/gpu/drm/drm_atomic.c:1406 drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel: Modules linked in: tun tls uinput rfcomm ccm snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes cmac algif_hash algif_skcipher af_alg snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_soc_dmic snd_sof_pci_intel_tgl snd_sof_intel_hda_common soundwire_intel soundwire_generic_allocation soundwire_cadence snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_sof_utils snd_soc_hdac_hda snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi soundwire_bus snd_soc_core intel_tcc_cooling x86_pkg_temp_thermal intel_powerclamp coretemp snd_compress ac97_bus snd_pcm_dmaengine iwlmvm kvm_intel snd_hda_intel snd_intel_dspcfg qrtr bnep kvm snd_intel_sdw_acpi mac80211 iTCO_wdt irqbypass libarc4 squashfs hid_multitouch intel_pmc_bxt mei_pxp mei_hdcp snd_hda_codec rapl iTCO_vendor_support intel_cstate pmt_telemetry i915 intel_rapl_msr btusb pmt_class think_lmi uvcvideo firmware_attributes_class wmi_bmof videobuf2_vmalloc
Jun 08 11:40:03 acascais kernel:  iwlwifi videobuf2_memops snd_hda_core btrtl processor_thermal_device_pci intel_uncore drm_buddy videobuf2_v4l2 btbcm psmouse pcspkr processor_thermal_device videobuf2_common processor_thermal_rfim btintel btmtk snd_hwdep thinkpad_acpi ucsi_acpi videodev ttm ledtrig_audio bluetooth processor_thermal_mbox cfg80211 spi_nor typec_ucsi mei_me drm_display_helper snd_pcm intel_lpss_pci platform_profile processor_thermal_rapl i2c_i801 vfat typec ecdh_generic intel_lpss cec snd_timer mtd fat i2c_smbus mc idma64 video mei thunderbolt rfkill intel_rapl_common intel_vsec snd roles intel_gtt i2c_hid_acpi int3400_thermal intel_hid i2c_hid soundcore int3403_thermal soc_button_array wmi acpi_thermal_rel acpi_pad sparse_keymap mousedev joydev int340x_thermal_zone acpi_tad mac_hid nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_masq nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nf_tables libcrc32c nfnetlink fuse crypto_user loop bpf_preload ip_tables
Jun 08 11:40:03 acascais kernel:  x_tables ext4 crc32c_generic crc16 mbcache jbd2 hid_logitech_hidpp hid_logitech_dj hid_maltron usbhid dm_crypt cbc encrypted_keys trusted asn1_encoder tee dm_mod crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic gf128mul ghash_clmulni_intel serio_raw sha512_ssse3 atkbd libps2 vivaldi_fmap nvme aesni_intel crypto_simd xhci_pci cryptd nvme_core spi_intel_pci xhci_pci_renesas spi_intel nvme_common i8042 serio
Jun 08 11:40:03 acascais kernel: CPU: 7 PID: 841 Comm: Xorg Tainted: G     U  W          6.1.31-2-MANJARO #1 f7e23b5df7ec048ccfbcce2261913c53c5ebe5aa
Jun 08 11:40:03 acascais kernel: Hardware name: LENOVO 21HMCTO1WW/21HMCTO1WW, BIOS N3XET37W (1.12 ) 04/18/2023
Jun 08 11:40:03 acascais kernel: RIP: 0010:drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel: Code: 48 c7 c1 60 40 d2 8a ba 04 00 00 00 31 ff e8 68 d1 00 00 e9 4e f9 ff ff 8b 74 24 1c 89 da 48 c7 c7 38 44 d2 8a e8 e1 6f 8f ff <0f> 0b 31 c0 e9 3c fd ff ff 4d 8b 4a 20 45 8b 42 60 48 85 f6 74 04
Jun 08 11:40:03 acascais kernel: RSP: 0018:ffffb6edc113fbd8 EFLAGS: 00010282
Jun 08 11:40:03 acascais kernel: RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000027
Jun 08 11:40:03 acascais kernel: RDX: ffffa088cf5e1668 RSI: 0000000000000001 RDI: ffffa088cf5e1660
Jun 08 11:40:03 acascais kernel: RBP: 0000000000000000 R08: 0000000000000000 R09: ffffb6edc113fa50
Jun 08 11:40:03 acascais kernel: R10: 0000000000000003 R11: ffffffff8b4cc7a8 R12: 0000000000000000
Jun 08 11:40:03 acascais kernel: R13: ffffa08588de5800 R14: ffffa0859b8fa800 R15: 0000000000000008
Jun 08 11:40:03 acascais kernel: FS:  00007f4b7666d480(0000) GS:ffffa088cf5c0000(0000) knlGS:0000000000000000
Jun 08 11:40:03 acascais kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jun 08 11:40:03 acascais kernel: CR2: 00007f2b4631a000 CR3: 000000011b8f2000 CR4: 0000000000f50ee0
Jun 08 11:40:03 acascais kernel: PKRU: 55555554
Jun 08 11:40:03 acascais kernel: Call Trace:
Jun 08 11:40:03 acascais kernel:  <TASK>
Jun 08 11:40:03 acascais kernel:  ? drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel:  ? __warn+0x7d/0xd0
Jun 08 11:40:03 acascais kernel:  ? drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel:  ? report_bug+0xe6/0x150
Jun 08 11:40:03 acascais kernel:  ? handle_bug+0x3c/0x80
Jun 08 11:40:03 acascais kernel:  ? exc_invalid_op+0x17/0x70
Jun 08 11:40:03 acascais kernel:  ? asm_exc_invalid_op+0x1a/0x20
Jun 08 11:40:03 acascais kernel:  ? drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel:  ? drm_atomic_check_only+0x92f/0xa40
Jun 08 11:40:03 acascais kernel:  drm_atomic_nonblocking_commit+0x17/0x70
Jun 08 11:40:03 acascais kernel:  drm_atomic_helper_page_flip+0x63/0xd0
Jun 08 11:40:03 acascais kernel:  drm_mode_page_flip_ioctl+0x580/0x5e0
Jun 08 11:40:03 acascais kernel:  ? drm_mode_cursor2_ioctl+0x10/0x10
Jun 08 11:40:03 acascais kernel:  drm_ioctl_kernel+0xca/0x170
Jun 08 11:40:03 acascais kernel:  drm_ioctl+0x239/0x420
Jun 08 11:40:03 acascais kernel:  ? drm_mode_cursor2_ioctl+0x10/0x10
Jun 08 11:40:03 acascais kernel:  __x64_sys_ioctl+0x91/0xd0
Jun 08 11:40:03 acascais kernel:  do_syscall_64+0x5d/0x90
Jun 08 11:40:03 acascais kernel:  ? __x64_sys_ioctl+0xac/0xd0
Jun 08 11:40:03 acascais kernel:  ? syscall_exit_to_user_mode+0x1b/0x40
Jun 08 11:40:03 acascais kernel:  ? do_syscall_64+0x6c/0x90
Jun 08 11:40:03 acascais kernel:  ? do_syscall_64+0x6c/0x90
Jun 08 11:40:03 acascais kernel:  entry_SYSCALL_64_after_hwframe+0x63/0xcd
Jun 08 11:40:03 acascais kernel: RIP: 0033:0x7f4b7704a76f
Jun 08 11:40:03 acascais kernel: Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 18 48 8b 44 24 18 64 48 2b 04 25 28 00 00
Jun 08 11:40:03 acascais kernel: RSP: 002b:00007fff6b69e740 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
Jun 08 11:40:03 acascais kernel: RAX: ffffffffffffffda RBX: 00005605c5de9cf0 RCX: 00007f4b7704a76f
Jun 08 11:40:03 acascais kernel: RDX: 00007fff6b69e7d0 RSI: 00000000c01864b0 RDI: 0000000000000010
Jun 08 11:40:03 acascais kernel: RBP: 00007fff6b69e7d0 R08: 00000000001dea96 R09: 0000000000000001
Jun 08 11:40:03 acascais kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 00000000c01864b0
Jun 08 11:40:03 acascais kernel: R13: 0000000000000010 R14: 00005605c5cf1eb0 R15: 0000000000000129
Jun 08 11:40:03 acascais kernel:  </TASK>
Jun 08 11:40:03 acascais kernel: ---[ end trace 0000000000000000 ]---

I would greatly appreciate any advice or suggestions on how to solve these issues. Thank you in advance for your help!

Unfortunately problem persists. Any help is welcome :slight_smile:

Hello @acascais ,

I am looking for another problem but found this https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2003031 issue that looks quite similar like your problem.

Maybe you can set the MUTTER_DEBUG_FORCE_KMS_MODE=simple like described there.

It reads like it is a problem of “mutter” / wayland.
I am not so familiar with wayland. Does anybody can tell me more about it?

This is 6 months later.
Either then or now I would suggest trying newer kernels … as raptor lake support was added in kernel 5.18 … meaning one should use 6.1 at a minimum.