Skip to content

Shadow flickering when mixing transparent/opaque tiled windows #4828

Description

@julius-boettger

Hyprland Version

System/Version info
Hyprland, built from branch  at commit v0.35.0  ().
Date: 2024-02-05
Tag:

flags: (if any)


System Information:
System name: Linux
Node name: nixos
Release: 6.7.5
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 16 18:14:32 UTC 2024


GPU information:
2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080] [10de:2704] (rev a1) (prog-if 00 [VGA controller])


os-release: BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="23.11.4516.e0da498ad77a"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 23.11 (Tapir)"
SUPPORT_END="2024-06-30"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="23.11 (Tapir)"
VERSION_CODENAME=tapir
VERSION_ID="23.11"


plugins:

Bug or Regression?

Bug

Description

When having a window that uses transparency and one that doesn't open at the same time (both in tiled-mode) some weird shadow-flickering starts to show on transparent windows that are in the bottom or background layer. I assume this is caused by shadows, but I'm not entirely sure, as I have fully disabled shadows in my Hyprland config, but that also doesn't seem to matter from my testing.

The window that shows this flickering in the video below is an Eww widget on the background layer, although I have tried putting it on the bottom layer (which didn't change anything). This might even be an Eww issue, but I can not determine that, because I don't have another program that creates transparent windows (sitting on one of the mentioned layers) that I could try this out with.

All the windows shown in the video below run natively on Wayland, no XWayland action going on.

When trying the same thing shown in the video with either two windows that use transparency or two that don't no flickering occurs. It seems to be caused by the combination of a transparent and an opaque window being present at the same time.

Moving the mouse also seems to increase the flickering for some reason.

Thank you in advance! I love Hyprland. Weirdly specific issue I have here.

How to reproduce

  1. Have a window that uses transparency open on either the background or bottom layer, e.g. an Eww widget
  2. Open a window that uses transparency in tiled-mode
  3. Open another window that doesn't use transparency next to it, also in tiled-mode
  4. Look for flickering on the transparent window in the background

Note: I'm not sure if it's necessary that the window in the background uses transparency.

Crash reports, logs, images, videos

hyprland_issue.mp4

Output of hyprctl layers (gtk-layer-shell is Eww):

Monitor HDMI-A-1:
	Layer level 0 (background):
		Layer 12de7e0: xywh: 0 100 1920 1080, namespace: swww
		Layer 29d8d40: xywh: 644.5 549 631 182, namespace: gtk-layer-shell
	Layer level 1 (bottom):
	Layer level 2 (top):
	Layer level 3 (overlay):


Monitor DP-1:
	Layer level 0 (background):
		Layer 12df600: xywh: 1920 0 2560 1440, namespace: swww
		Layer fff350: xywh: 2884.5 629 631 182, namespace: gtk-layer-shell
	Layer level 1 (bottom):
	Layer level 2 (top):
	Layer level 3 (overlay):

My dotfiles at the time of posting

$second_monitor = HDMI-A-1
$second_monitor_config = $second_monitor, 1920x1080@144, 0x100, 1, bitdepth, 10
monitor = $second_monitor_config
workspace = $second_monitor, 1 # hyprsome

$first_monitor = DP-1
monitor = $first_monitor, 2560x1440@144, 1920x0, 1, bitdepth, 10
workspace = $first_monitor, 11 # hyprsome

### environment variables
# for nvidia gpu
env = XCURSOR_SIZE,32
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstaleNot much going on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions