Skip to content

Shadows in xrender backend are not displayed correctly #1352

@gh0stzk

Description

@gh0stzk

Platform

Arch linux x86_64

GPU, drivers, and screen setup

Lenovo ideapad 330-14AST,
GPU: AMD Radeon R4 Graphics [Integrated]
Is a laptop with one monitor..
mesa 1:24.2.4-1
xf86-video-amdgpu 23.0.0-2
Kernel: Linux 6.11.2-zen1-1-zen
glxinfo -B:

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon R4 Graphics (radeonsi, stoney, LLVM 18.1.8, DRM 3.59, 6.11.2-zen1-1-zen) (0x98e4)
    Version: 24.2.4
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.5
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 740 MB, largest block: 740 MB
    VBO free aux. memory - total: 3344 MB, largest block: 3344 MB
    Texture free memory - total: 740 MB, largest block: 740 MB
    Texture free aux. memory - total: 3344 MB, largest block: 3344 MB
    Renderbuffer free memory - total: 740 MB, largest block: 740 MB
    Renderbuffer free aux. memory - total: 3344 MB, largest block: 3344 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 4434 MB
    Currently available dedicated video memory: 740 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon R4 Graphics (radeonsi, stoney, LLVM 18.1.8, DRM 3.59, 6.11.2-zen1-1-zen)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 24.2.4-arch1.1
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 24.2.4-arch1.1
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.2.4-arch1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

BSPWM.

picom version

v12.2 (/startdir/picom revision f9f6f2c)

Diagnostics

Version: v12.2 (/startdir/picom revision f9f6f2c)

Extensions:

  • Shape: Yes
  • RandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No
    (Another compositor is already running)
  • Config file specified: None
  • Config file used: /etc/xdg/picom.conf

Drivers (inaccurate):

AMDGPU, Radeon

Backend: glx

  • Driver vendors:
  • GLX: Mesa Project and SGI
  • GL: AMD
  • GL renderer: AMD Radeon R4 Graphics (radeonsi, stoney, LLVM 18.1.8, DRM 3.59, 6.11.2-zen1-1-zen)
  • Accelerated: 1
    [ 10/10/24 11:16:30.643 egl_init WARN ] The egl backend is still experimental, use with care.

Backend: egl

  • Driver vendors:
  • EGL: Mesa Project
  • EGL driver: radeonsi
  • GL: AMD
  • GL renderer: AMD Radeon R4 Graphics (radeonsi, stoney, LLVM 18.1.8, DRM 3.59, 6.11.2-zen1-1-zen)

Configuration:

Configuration file
## ----- Shadows ----- ##

shadow = true;

shadow-radius = 7;
#shadow-opacity = .6
shadow-offset-x = -8;
shadow-offset-y = -8;
shadow-color = "#000000"

## ----- Fading ----- ##

fading = true;

fade-in-step = 0.03;
fade-out-step = 0.03;
fade-delta = 5
no-fading-openclose = true
no-fading-destroyed-argb = true

## ----- Transparency ----- ##

frame-opacity = 1.0;

# inactive-dim-fixed = true

## ----- Corners ----- ##

corner-radius = 6

#################################
#       General Settings        #
#################################

# Available backends "xrender" "glx" "egl"
backend = "xrender"

dithered-present = false;
vsync = true;

glx-no-stencil = true;
glx-no-rebind-pixmap = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;

use-damage = true;
# xrender-sync-fence = false
# transparent-clipping = false

Steps of reproduction

Just enable the xrender backend, and the shadows look cut off. With the glx and egl backend the shadows work well.

  1. kill picom
  2. edit config to change to xrender
  3. restart picom

Expected behavior

show the normal shadows, this image is with glx backend and colored shadows in red to you can see better. This works fine!
Shot-2024-10-10-113035

Current Behavior

Now in xrender the shadows are cute off.
Shot-2024-10-10-112603
Shot-2024-10-10-112650

Stack trace

the compositor doesnt crash :)

OpenGL trace

Other details

simplescreenrecorder-2024-10-10_11.36.10.mp4

Note: I have some other laptops and desktops and I have only tried the new version 12 on this laptop and on a desktop PC with old hardware, with Intel graphics and the problem is the same, with glx it works fine and with xrender the shadows fail . Animations and everything else works fine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions