[REGRESSION][BISECTED] iris: Qutebrowser/QtWebEngine sporadically flashes the window in white
System information
-
inxi -GSC -xx
:System: Host: constantine-N61Ja Kernel: 5.15.11-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0 Desktop: KDE Plasma 5.23.4 tk: Qt 5.15.2 wm: i3 dm: SDDM Distro: Arch Linux CPU: Info: Dual Core model: Intel Core i5-7200U bits: 64 type: MT MCP arch: Amber/Kaby Lake note: check rev: 9 cache: L2: 3 MiB flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 21599 Speed: 800 MHz min/max: 400/3100 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800 Graphics: Device-1: Intel HD Graphics 620 vendor: Dell driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:5916 Device-2: Sunplus Innovation Integrated_Webcam_HD type: USB driver: uvcvideo bus-ID: 1-5:4 chip-ID: 1bcf:28c1 Display: x11 server: X.Org 1.21.1.2 compositor: picom driver: loaded: modesetting alternate: ati,fbdev,intel,vesa resolution: 1: 1920x1080 2: 1920x1080~60Hz s-dpi: 96 OpenGL: renderer: Mesa Intel HD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.3.0-devel (git-d901339a3e) direct render: Yes
- OS: Arch Linux
- GPU:
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)
- Kernel version:
Linux constantine-N61Ja 5.15.11-zen1-1-zen #1 ZEN SMP PREEMPT Wed, 22 Dec 2021 09:23:53 +0000 x86_64 GNU/Linux
- Mesa version:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.3.3
- Xserver version (if applicable): (
sudo X -version
)X.Org X Server 1.21.1.2 X Protocol Version 11, Revision 0 Current Operating System: Linux constantine-N61Ja 5.15.11-zen1-1-zen #1 ZEN SMP PREEMPT Wed, 22 Dec 2021 09:23:53 +0000 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux-zen root=UUID=443bd794-4b17-4bf2-8801-b0d5cf1c3432 rw loglevel=3 resume=/dev/disk/by-uuid/817bb5c9-e259-4139-b3e4-c2ae5c9232ed cpuidle.governor=teo zswap.compressor=zstd zswap.max_pool_percent=15 zswap.enabled=1 systemd.unified_cgroup_hierarchy=1 Current version of pixman: 0.40.0 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version.
- Desktop manager and compositor: i3wm and picom
Describe the issue
After upgrade to Mesa 21.3.3 an occasional bug appeared: while browsing in Qutebrowser it sometimes sporadically flashes the window in white color — sometimes full window flashes, other times only part of it. It is reproducible on many sites. Also rarely I see a stale content from another page inside that flash.
I managed to bisect it, results are:
bisect log
git bisect start
# bad: [2dc6aa567fcd198b8d0dafe3dfabdaed167d5153] VERSION: bump for 21.3.0-rc1
git bisect bad 2dc6aa567fcd198b8d0dafe3dfabdaed167d5153
# bad: [8e735dc72c942f3fb45e31775dcd52cd31c6f890] intel/isl: Add mocs settings for DG2
git bisect bad 8e735dc72c942f3fb45e31775dcd52cd31c6f890
# bad: [d17e75285732878bc3ee8307541c1b4f09cbee7c] radeonsi: disable PIPE_CAP_PREFER_BACK_BUFFER_REUSE
git bisect bad d17e75285732878bc3ee8307541c1b4f09cbee7c
# bad: [f2b08decf7d058e830f6dc55266e77d82a7318ab] auxiliary/indices: convert primitive type PIPE_PRIM_PATCHES
git bisect bad f2b08decf7d058e830f6dc55266e77d82a7318ab
# good: [5872c7ca7ba79f5e5bf8824ee474b30fa9c12948] v3dv: inject a custom passthrough geometry shader for multiview pipelines
git bisect good 5872c7ca7ba79f5e5bf8824ee474b30fa9c12948
# good: [bd15e5e6af898f558267e93797083c4ba5a5b3d2] panfrost: Move bo->label assignment into the lock
git bisect good bd15e5e6af898f558267e93797083c4ba5a5b3d2
# bad: [268158a758551a46feb120af3f3cff5fb9292310] aco/optimize_postRA: Use iterators instead of operator[] of std::array.
git bisect bad 268158a758551a46feb120af3f3cff5fb9292310
# good: [76b9dd6266f4b170e94ee47a6881c3d528c25969] aco: Unset 16 and 24-bit flags from operands in apply_extract.
git bisect good 76b9dd6266f4b170e94ee47a6881c3d528c25969
# good: [d7e36a1831b1924837f9393723310885f579d68e] zink: inline gfx pipeline hash table
git bisect good d7e36a1831b1924837f9393723310885f579d68e
# bad: [a17756c865c8a86b22c535f4b485cb8d1dc18f1d] radv: track if shader image 32-bit float atomics are enabled
git bisect bad a17756c865c8a86b22c535f4b485cb8d1dc18f1d
# good: [ec44c4894532625a246cc9eb4f406fe652ff275c] vulkan: Remove dependency on Python 3.9+
git bisect good ec44c4894532625a246cc9eb4f406fe652ff275c
# bad: [4ab1048cf982d951ee3c1369d67a30999e7033cd] iris: Annotate all BO uses through VF cache domain.
git bisect bad 4ab1048cf982d951ee3c1369d67a30999e7033cd
# good: [d1c27d214b4f67d6971db3e8a6cab779132f8379] iris: give each screen of a bufmgr a unique ID
git bisect good d1c27d214b4f67d6971db3e8a6cab779132f8379
# bad: [cbdec34db3129552a6507d87d4bf0b4866774148] venus: renderer to check map size only when mappable
git bisect bad cbdec34db3129552a6507d87d4bf0b4866774148
# bad: [9be8c48058710c447d54e526859f1e59df95e4d0] lavapipe: support EXT_primitive_topology_list_restart
git bisect bad 9be8c48058710c447d54e526859f1e59df95e4d0
# bad: [89a34cb8450a6fdaceb0e537613871fa86d93132] iris: switch to explicit busy tracking
git bisect bad 89a34cb8450a6fdaceb0e537613871fa86d93132
# first bad commit: [89a34cb8450a6fdaceb0e537613871fa86d93132] iris: switch to explicit busy tracking
The first offending commit 89a34cb8:
89a34cb8450a6fdaceb0e537613871fa86d93132 is the first bad commit
commit 89a34cb8450a6fdaceb0e537613871fa86d93132
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date: Thu Aug 5 12:23:04 2021 -0700
iris: switch to explicit busy tracking
We're moving away from relying on the Kernel's implicit busy tracking
into our own tracking, except for shared buffers.
Not only this shouldn't hurt now (it doesn't, according to my
measurements), when we switch to vm_bind we will be able to cut some
significant overhead by simply omitting all the async buffers from the
execbuf ioctl.
v2:
- Change iris_bo_busy() to bool (Ken).
- Fix coding style issues (Ken).
- Rebase on not having the refcount _inc and _dec helpers anymore
(Ken).
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4748
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12363>
src/gallium/drivers/iris/iris_batch.c | 134 +++++++++++++++++++++++++++++++--
src/gallium/drivers/iris/iris_batch.h | 2 -
src/gallium/drivers/iris/iris_bufmgr.c | 133 +++++++++++++++++++++++++++++---
src/gallium/drivers/iris/iris_bufmgr.h | 21 +++++-
4 files changed, 267 insertions(+), 23 deletions(-)
I confirm that reverting the commit makes the problem go away.
Steps to reproduce
- In Qutebrowser go here
- Try scrolling by repeatedly tapping ↓ button
You'll see at the bottom of the site repeated flashes.
Regression
Yes.
Edited by Konstantin Kharlamov