Screen flickering after 23.05 update

Since I updated to 23.05, my laptop screen has been flickering severely—every few seconds its goes black for maybe ~0.25 seconds. It’s entirely black except for a strip across the width of the screen maybe three text lines tall.

My journal log is filling up with hundreds of messages like this

Jul 02 14:42:18 x1-2021 kernel: ------------[ cut here ]------------
Jul 02 14:42:18 x1-2021 kernel: i915 0000:00:02.0: drm_WARN_ON(new_crtc_state->do_async_flip && !plane->async_flip)
Jul 02 14:42:18 x1-2021 kernel: WARNING: CPU: 1 PID: 3547 at drivers/gpu/drm/i915/display/intel_display.c:6560 intel_atomic_check+0x26e5/0x2bc0 [i915]
Jul 02 14:42:18 x1-2021 kernel: Modules linked in: ccm rfcomm qrtr nf_conntrack_netlink xfrm_user xfrm_algo xt_addrtype dm_thin_pool dm_persistent_data dm_bio_prison dm_bufio cmac algif_hashalgif_skcipher af_alg snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic xt_CHECKSUMxt_MASQUERADE ipt_REJECT nf_reject_ipv4 nft_chain_nat af_packet bnep 8021q msr snd_soc_dmic joydev mousedev snd_sof_pci_intel_tgl snd_sof_intel_hda_common snd_soc_hdac_hda soundwire_intel soundwire_generic_allocation nls_iso8859_1 soundwire_cadence nls_cp437 hid_multitouch snd_sof_intel_hda vfat hid_generic fat snd_sof_pci snd_sof_xtensa_dsp snd_sof iwlmvm i2c_designware_platform i2c_designware_core i915 cmdlinepart snd_sof_utils spi_nor snd_hda_ext_core snd_soc_acpi_intel_match iTCO_wdt mtd snd_soc_acpi intel_pmc_bxt mei_pxp mei_hdcp watchdog pmt_telemetry soundwire_bus intel_rapl_msr mac80211 think_lmi pmt_class intel_tcc_cooling
Jul 02 14:42:18 x1-2021 kernel:  snd_soc_core wmi_bmof firmware_attributes_class snd_compress x86_pkg_temp_thermal libarc4 intel_powerclamp ac97_bus snd_pcm_dmaengine coretemp crc32_pclmul polyval_clmulni polyval_generic gf128mul ghash_clmulni_intel snd_hda_intel snd_intel_dspcfg sha512_ssse3 btusb snd_intel_sdw_acpi btrtl btbcm drm_buddy sha512_generic btintel ttm btmtk uvcvideo drm_display_helper snd_hda_codec bluetooth iwlwifi videobuf2_vmalloc videobuf2_memops aesni_intel cec videobuf2_v4l2 crypto_simd cryptd snd_hda_core drm_kms_helper videobuf2_common rapl snd_hwdep intel_gtt ip6_tables snd_pcm thinkpad_acpi intel_lpss_pci videodev ecdh_generic agpgart nvram ucsi_acpi ecc i2c_hid_acpi processor_thermal_device_pci_legacy ledtrig_audio i2c_algo_bit processor_thermal_device typec_ucsi i2c_i801 crc16 fb_sys_fops intel_cstate processor_thermal_rfim cfg80211 mc intel_uncore psmouse xt_conntrack snd_timer spi_intel_pci syscopyarea libaes platform_profile processor_thermal_mbox mei_me spi_intel i2c_smbus
Jul 02 14:42:18 x1-2021 kernel:  typec i2c_hid intel_lpss processor_thermal_rapl sysfillrect igen6_edac idma64 snd video intel_rapl_common mei virt_dma tiny_power_button mfd_core intel_vsec roles rfkill sysimgblt edac_core hid intel_soc_dts_iosf thermal button soundcore ip6t_rpfilter battery tpm_crb ac int3403_thermal wmi ipt_rpfilter soc_button_array int340x_thermal_zone pinctrl_tigerlake intel_hid int3400_thermal intel_pmc_core xt_pkttype acpi_thermal_rel tpm_tis sparse_keymap acpi_pad acpi_tad tpm_tis_core evdev input_leds led_class xt_LOG mac_hid nf_log_syslog serio_raw xt_tcpudp nft_compat nf_tables sch_fq_codel nfnetlink ctr loop cpufreq_powersave xt_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c crc32c_generic br_netfilter veth tun tap macvlan bridge stp llc ccp kvm_intel kvm drm irqbypass fuse backlight i2c_core deflate efi_pstore configfs efivarfs tpm rng_core dmi_sysfs ip_tables x_tables autofs4 xhci_pci xhci_pci_renesas xhci_hcd nvme atkbd libps2 vivaldi_fmap nvme_core
Jul 02 14:42:18 x1-2021 kernel:  thunderbolt usbcore t10_pi crc32c_intel rtc_cmos crc64_rocksoft crc64 crc_t10dif crct10dif_generic usb_common crct10dif_pclmul crct10dif_common i8042 serio dm_mod dax zfs(PO) zunicode(PO) zzstd(O) zlua(O) zavl(PO) icp(PO) zcommon(PO) znvpair(PO) spl(O)
Jul 02 14:42:18 x1-2021 kernel: CPU: 1 PID: 3547 Comm: X Kdump: loaded Tainted: P        W  O       6.1.35 #1-NixOS
Jul 02 14:42:18 x1-2021 kernel: Hardware name: LENOVO 20XXS7WJ00/20XXS7WJ00, BIOS N32ET71W (1.47 ) 09/06/2021
Jul 02 14:42:18 x1-2021 kernel: RIP: 0010:intel_atomic_check+0x26e5/0x2bc0 [i915]
Jul 02 14:42:18 x1-2021 kernel: Code: 4c 8b 67 50 4d 85 e4 75 03 4c 8b 27 e8 64 79 9a f3 48 c7 c1 98 7a fb c1 4c 89 e2 48 c7 c7 bd ab fd c1 48 89 c6 e8 1b 85 3d f3 <0f> 0b e9 49 e7 ff ff 44 8b 4a 68 44 39 49 68 0f 85 89 fc ff ff 44
Jul 02 14:42:18 x1-2021 kernel: RSP: 0018:ffff9d2a0544fbb0 EFLAGS: 00010286
Jul 02 14:42:18 x1-2021 kernel: RAX: 0000000000000000 RBX: ffff89a65f7da800 RCX: 0000000000000000
Jul 02 14:42:18 x1-2021 kernel: RDX: 0000000000000002 RSI: ffffffffb6272219 RDI: 00000000ffffffff
Jul 02 14:42:18 x1-2021 kernel: RBP: ffff9d2a0544fc58 R08: 0000000000000000 R09: ffff9d2a0544fa38
Jul 02 14:42:18 x1-2021 kernel: R10: 0000000000000003 R11: ffffffffb6930158 R12: ffff89a44213df00
Jul 02 14:42:18 x1-2021 kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0100000000000009
Jul 02 14:42:18 x1-2021 kernel: FS:  00007fdffb38d9c0(0000) GS:ffff89ab7f640000(0000) knlGS:0000000000000000
Jul 02 14:42:18 x1-2021 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul 02 14:42:18 x1-2021 kernel: CR2: 00002eb8005d8460 CR3: 000000011a484002 CR4: 0000000000770ee0
Jul 02 14:42:18 x1-2021 kernel: PKRU: 55555554
Jul 02 14:42:18 x1-2021 kernel: Call Trace:
Jul 02 14:42:18 x1-2021 kernel:  <TASK>
Jul 02 14:42:18 x1-2021 kernel:  ? __warn+0x7d/0xc0
Jul 02 14:42:18 x1-2021 kernel:  ? intel_atomic_check+0x26e5/0x2bc0 [i915]
Jul 02 14:42:18 x1-2021 kernel:  ? report_bug+0xe6/0x170
Jul 02 14:42:18 x1-2021 kernel:  ? console_unlock+0x148/0x1d0
Jul 02 14:42:18 x1-2021 kernel:  ? handle_bug+0x41/0x70
Jul 02 14:42:18 x1-2021 kernel:  ? exc_invalid_op+0x13/0x60
Jul 02 14:42:18 x1-2021 kernel:  ? asm_exc_invalid_op+0x16/0x20
Jul 02 14:42:18 x1-2021 kernel:  ? intel_atomic_check+0x26e5/0x2bc0 [i915]
Jul 02 14:42:18 x1-2021 kernel:  ? __kmem_cache_alloc_node+0x153/0x290
Jul 02 14:42:18 x1-2021 kernel:  ? intel_plane_duplicate_state+0x20/0x80 [i915]
Jul 02 14:42:18 x1-2021 kernel:  drm_atomic_check_only+0x5b9/0xa30 [drm]
Jul 02 14:42:18 x1-2021 kernel:  drm_atomic_nonblocking_commit+0x13/0x60 [drm]
Jul 02 14:42:18 x1-2021 kernel:  drm_atomic_helper_page_flip+0x5f/0xd0 [drm_kms_helper]
Jul 02 14:42:18 x1-2021 kernel:  drm_mode_page_flip_ioctl+0x5a7/0x600 [drm]
Jul 02 14:42:18 x1-2021 kernel:  ? drm_mode_cursor2_ioctl+0x10/0x10 [drm]
Jul 02 14:42:18 x1-2021 kernel:  drm_ioctl_kernel+0xc6/0x170 [drm]
Jul 02 14:42:18 x1-2021 kernel:  drm_ioctl+0x22f/0x410 [drm]
Jul 02 14:42:18 x1-2021 kernel:  ? drm_mode_cursor2_ioctl+0x10/0x10 [drm]
Jul 02 14:42:18 x1-2021 kernel:  __x64_sys_ioctl+0x8d/0xd0
Jul 02 14:42:18 x1-2021 kernel:  do_syscall_64+0x37/0x90
Jul 02 14:42:18 x1-2021 kernel:  entry_SYSCALL_64_after_hwframe+0x63/0xcd
Jul 02 14:42:18 x1-2021 kernel: RIP: 0033:0x7fdffb8e029f
Jul 02 14:42:18 x1-2021 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
Jul 02 14:42:18 x1-2021 kernel: RSP: 002b:00007fff23fc1820 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
Jul 02 14:42:18 x1-2021 kernel: RAX: ffffffffffffffda RBX: 0000000001bc51d0 RCX: 00007fdffb8e029f
Jul 02 14:42:18 x1-2021 kernel: RDX: 00007fff23fc18b0 RSI: 00000000c01864b0 RDI: 0000000000000010
Jul 02 14:42:18 x1-2021 kernel: RBP: 00007fff23fc18b0 R08: 000000000000b233 R09: 000000000000362c
Jul 02 14:42:18 x1-2021 kernel: R10: 00000000034d6230 R11: 0000000000000246 R12: 00000000c01864b0
Jul 02 14:42:18 x1-2021 kernel: R13: 0000000000000010 R14: 0000000001bc5810 R15: 000000000000b233
Jul 02 14:42:18 x1-2021 kernel:  </TASK>
Jul 02 14:42:18 x1-2021 kernel: ---[ end trace 0000000000000000 ]---

My laptop is a Lenovo Thinkpad x1 prime 2021. I have never had this issue before the upgrade. From the log it seems like a kernel issue, but I’m not sure what configurations I can change to fix it, or if I should elevate this with the linux kernel community. Does anyone have any ideas?

I downgraded the kernel to 5.15 and the problem is gone.