Created attachment 138627 [details]
Example of artifacts
I want to report some graphical artifacts with AMD Radeon RX 570 card.
I've been noticing some random artifacts when I open/resize/close windows.
I was able to narrow down this problem to mesa surfaces updating. For instance
if i suspend program with such surface and try to resize it, I will see these artifacts. So I think there is a moment between receiving resize event and updating surface when driver somehow render those artifacts.
I'm using Arch Linux with i3, but I was able to reproduce this bug on wayland
by resizing alacritty terminal emulator.
Created attachment 138628 [details]
Artifacts when window is opening
Created attachment 138629 [details]
Xeyes render artifacts instead of background
Created attachment 138630 [details]
dmesg full log
Created attachment 138631 [details]
Created attachment 138632 [details]
I think it's not just mesa, but some drivers issue.
Also still happens on linux 4.16 and mesa 18.0.2.
I'm also having graphical artifacts with i3. I have an amd rx 580. Here's a thread with the issues I was getting: https://bbs.archlinux.org/viewtopic.php?id=242727
I have also tried taking out my rx 580 card out of my computer and uninstalled AMDGPU and tried running i3 through my iGPU, i7-7700k CPU. I still had graphical artifacts when I tried that.
Here is a vid of the artifacting:
At least with xeyes, this is expected with i3, see https://github.com/i3/i3/issues/2742#issuecomment-433304928 and later comments.
I suspect it could be similar with VirtualBox.
The issue with alacritty on Wayland is probably different, maybe in Xwayland, or if it uses the Wayland protocol directly, maybe one of the known issues described on https://github.com/jwilm/alacritty => https://github.com/tomaka/winit/issues/306 .
Anyway, I don't see clear evidence of a driver bug here.
Things are increasingly pointing to this being an i3 bug. It creates a cairo surface with cairo_xcb_surface_create and copies from that to its parent window. But according to /usr/include/cairo/cairo.h, cairo doesn't initialize the contents of a surface created with cairo_xcb_surface_create, so i3 needs to initialize them explicitly.