Windows are not getting redraawn unless i open a new window i3

Hi, i have manjaro running on VirtualBox using i3. And it has been running fine for maybe over a year.

its running i3 so its using X11 i assume, and its in a VM so its using the VirtualBox VMSVGA driver with 3D acceleration enabled.

Today i wanted to increase the RAM and The CPUs allocated to it, so i did, and suddenly i have this really really strange bug.

Its like the entire i3 GUI is frozen, until i open a new window, then it will do a single draw call and update all windows. Then its all frozen again.

Im going to try to explain the steps:

  • login to i3
  • open a terminal (any) and nothing happens, no window nothing
  • open a second terminal
  • suddenly the first terminal appears on the left side of the screen, the second terminal opens on the right but is just a border, nothing is drawn in that window.
  • open a third terminal, the second terminal is drawn and the 3rd terminal is just a border, nothing drawn in the actual window.

I can’t type in any window, or actually i can type, but what i have typed wont show up until i either open a new program, or exit a window.

If i do a soft reload of i3 it will redraw all the windows.

Iw i move the tiled windows around, it works fine. If i send a window to another warkspace, it will get sent, but the bottom bar will not get redrawn so it wont show there is a second workspace.

if i open dmenu and type something, no text appears but if i press enter, the window typed will show up.

Its sort of like it doesnt do any draw calls unless i manually do something, so that it needs to call for a draw call.

not when i type in any windows etc.

Has anyone seen anything like this before?

I know this doesn’t help your issue but wanted to say that I have this same issue, I’ve tried virt-manager VM’s, Proxmox VM’s and VirtualBox, all seem to have this issue with i3. KDE works fine on these VM’s.

I just posted this:

Manjaro i3 in virtualbox - forced to restart i3 to refresh screen content - #2 by Nachlese

basically:
change the compositor backend