jonaburg / picom

A lightweight compositor for X11 (previously a compton fork)
Other
956 stars 99 forks source link

Crashes when moving, opening, maximizing or closing windows. #1

Open SkyyySi opened 4 years ago

SkyyySi commented 4 years ago

Platform

Arch Linux

GPU, drivers, and screen setup

GTX 750 ti, latest Nvidia driver from Arch's repos, two monitors configured side-by-side

Environment

Official i3-gaps & openbox packages from Arch's reops

picom version

Version: vgit-d6bc6

Extensions:

Misc:

Drivers (inaccurate):

NVIDIA

Configuration:

# Shadow
shadow = false;
shadow-radius = 12;
shadow-offset-x = -12;
shadow-offset-y = -12;
shadow-opacity = 1.0;
#shadow-red = 0.05;
#shadow-green = 0.08;
#shadow-blue = 0.15;
shadow-exclude = [
    "n:e:Notification",
    "_GTK_FRAME_EXTENTS@:c",
#   "window_type = 'unknown'",
    "window_type = 'dock'",
    "window_type = 'desktop'",
    "window_type = 'dnd'",
#   "window_type = 'menu'",
#   "window_type = 'dropdown_menu'",
#   "window_type = 'popup_menu'",
    "name = 'GLava'",
    "class_g = 'Conky'",
    "class_g ?= 'Notify-osd'",
    "class_g = 'Cairo-clock'",
    "class_g = 'Ulauncher'",
    "class_g = 'albert'",
    "class_g = 'Gnome-screenshot'",
];

# Blur
#blur-background = true;
#blur-background-frame = true;
#blur-method = "kawase";
blur-strength = 8;
blur-background-fixed = true;
blur-background-exclude = [
    "_GTK_FRAME_EXTENTS@:c",
    "window_type = 'unknown'",
    "window_type = 'dock'",
    "window_type = 'desktop'",
    "window_type = 'dnd'",
#   "window_type = 'menu'",
#   "window_type = 'dropdown_menu'",
#   "window_type = 'popup_menu'",
    "class_g = 'GLava'",
    "class_g = 'Polybar'",
    "class_g = 'Ulauncher'",
    "class_g = 'Gnome-screenshot'",
    "class_g = 'Xfce4-screenshooter'",
    "class_g = 'albert'",
    "class_g = 'firefox'"
];

# Opacity
active-opacity = 1.0;
inactive-opacity = 1.0;
frame-opacity = 1.0;
inactive-opacity-override = false;
opacity-rule = [
    "100:class_g = 'Alacritty'",
    "100:class_g = 'konsole'",
    "100:class_g = 'Chromium'",
    "100:class_g = 'Google-chrome'",
    "100:class_g = 'firefox'",
];

# Fading
fading = true;
fade-delta = 7;
fade-in-step = 0.05;
fade-out-step = 0.05;
no-fading-openclose = false;
fade-exclude = [
    "_GTK_FRAME_EXTENTS@:c",
#   "window_type = 'unknown'",
#   "window_type = 'dock'",
#   "window_type = 'desktop'",
#   "window_type = 'dnd'",
#   "window_type = 'menu'",
#   "window_type = 'dropdown_menu'",
#   "window_type = 'popup_menu'",
    "name = 'GLava'",
    "class_g = 'Alacritty'",
    "class_g = 'konsole'",
    "class_g = 'Polybar'",
    "class_g = 'Tint2'",
    "class_g = 'Ulauncher'",
    "class_g = 'albert'",
    "class_g = 'Chromium'",
    "class_g = 'Google-chrome'",
    "class_g = 'firefox'",
];

# Other
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
use-damage = true;

Steps of reproduction

Move some windows around on i3-gaps

Expected behavior

It just slides the windows

Current Behavior

Other details

I am aware that this fork is still very experimental, but I still hope you can make it a bit more stable :)

jonaburg commented 4 years ago

Unfortunately I can't recreate this bug :/ Does this happen as well when using the xrender backend?

jonaburg commented 4 years ago

Are there any errors that pop when it crashes? Is it just a segfault?

xeals commented 4 years ago

No idea on the specific issue OP gets, but I'm able to reproduce crashes frequently.

 ~ ››› picom --experimental-backend --config /dev/null --backend glx
picom: ../src/picom.c:430: paint_preprocess: Assertion `now >= ps->fade_time' failed.
[1]    2999 abort (core dumped)  picom --experimental-backend --config /dev/null  glx

Also occurs with the xrender backend.

Able to reproduce by triggering too many (for some definition of "too many") animations simultaneously: spawning a lot of windows, layout changes with many windows. Easier to reproduce with a minimal config setting transition-length to something like 1000.

Issue template with system details

SkyyySi commented 4 years ago

I also just get this "core dumped" error with no further details, so I gess it's for the same reason.

mrdgo commented 3 years ago

I have a similar issue. It starts normally but crashes as soon as I open another window.

Error message: free(): double free detected in tcache 2 Interestingly the error disappears as I run valgrind picom Now it shows lots of invalid reads but it doesn't crash anymore. Sadly running it with valgrind by default is not an option. Hopefully this helps.

Platform

Artix Linux latest updates (Nov. 26 2020)

GPU, drivers, and screen setup

One screen via HDMI connected to Laptop No GPU, just the intel internal chipset.

XMonad

picom version

vgit-3ecf9

Configuration:

backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-swap-method = 1;
blur-background = true;
blur-kern = "7x7box";

corner-radius = 15;
transition-length = 1000

# Shadow
shadow = false;         # Disabled client-side shadows on windows.
dropdown_menu = { shadow = false;  };
popup_menu    = { shadow = false;  };
utility       = { shadow = false;  };

#Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = false; };
  menu = { shadow = false; };
  dropdown_menu = { shadow = false; };
  popup_menu =  { shadow = false; };
};
K4rakara commented 3 years ago

:+1: Same issue & error message as @mrdgo on Arch linux with BSPWM.

GPU is AMD rx570

Config:

backend = "glx";
vsync = true;

corner-radius = 16.0;

shadow = false;
shadow-offset-x = -4;
shadow-offset-y = -3;
shadow-radius = 12.0;
shadow-opacity = 0.85;

If I comment-out backend = "glx", it segfaults instead of aborting.

arthurbacci commented 3 years ago

I had the same issue, solved it by using --experimental-backends.

NicTanghe commented 3 years ago

where do you need to add --experimental-backends

arthurbacci commented 3 years ago

where do you need to add --experimental-backends

Running picom --experimental-backend -f --config ~/.config/picom instead of picom -f --config ~/.config/picom