Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Window update stutter and window disappearance #301

Open
yshui opened this issue Jan 17, 2020 · 5 comments
Open

Window update stutter and window disappearance #301

yshui opened this issue Jan 17, 2020 · 5 comments
Labels
upstream Bug is upstream and there is likely not much compton can do

Comments

@yshui
Copy link
Owner

yshui commented Jan 17, 2020

Sometimes picom will stop receiving any DamageNotify events for a given window, causing the window only to get updates when some other window is updated.

Unmapping then mapping the window doesn't fix the problem, and will make the window disappear altogether.

Unsure if this is a picom bug or a xorg-server bug.

Unfortunately this is rare and cannot be produced reliably.

@yshui
Copy link
Owner Author

yshui commented Mar 27, 2020

Noticed a

[ 03/27/2020 20:43:26.502 x_fetch_region ERROR ] Failed to fetch rectangles

One time this happened, not sure if related.

@yshui
Copy link
Owner Author

yshui commented Apr 4, 2020

This seems to be caused by a BadIDChoice error returned by xcb_xfixes_create_region. Perhaps a bug in libxcb.

@yshui
Copy link
Owner Author

yshui commented Aug 26, 2020

Finally nailed down the root cause with the help of Xorg devs. Turn out to be a really hard to fix xlib bug.

I wonder if we need workaround for this.

@yshui
Copy link
Owner Author

yshui commented Aug 30, 2020

For more details, see: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/118

GLX requests use XAllocID to allocated XIDs internally, which has a bug that can cause ID conflicts with the XIDs allocated via xcb_generate_id.

yshui added a commit that referenced this issue Aug 30, 2020
This is a workaround for #301. This doesn't fix the bug, but by
allocating X resources much less frequently, this should make the
bug almost never happen.

Also, it might generally be a good idea to not create/destroy X
resources so often. (XFixes Region accounts for >99% of the resource
creations/destructions)

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
@yshui
Copy link
Owner Author

yshui commented Aug 30, 2020

Having an EGL backend should largely solve this problem, at least for Mesa users.

@yshui yshui added the upstream Bug is upstream and there is likely not much compton can do label Aug 30, 2020
@yshui yshui changed the title DamageNotify sometimes stops for a certain window (severe frame drop for a window, window disappearence) Window update stutter and window disappearance Aug 31, 2020
yshui added a commit that referenced this issue Sep 8, 2020
This is a workaround for #301. This doesn't fix the bug, but by
allocating X resources much less frequently, this should make the
bug almost never happen.

Also, it might generally be a good idea to not create/destroy X
resources so often. (XFixes Region accounts for >99% of the resource
creations/destructions)

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Oct 3, 2020
Changes:
    Fixed yshui/picom#470 yshui/picom#471 yshui/picom#474 yshui/picom#465
    Worked around yshui/picom#301
    Fixed specifying a window id with the picom-trans script
    Fixed minor memory leaks
zappolowski pushed a commit to zappolowski/picom that referenced this issue Oct 16, 2020
This is a workaround for yshui#301. This doesn't fix the bug, but by
allocating X resources much less frequently, this should make the
bug almost never happen.

Also, it might generally be a good idea to not create/destroy X
resources so often. (XFixes Region accounts for >99% of the resource
creations/destructions)

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
upstream Bug is upstream and there is likely not much compton can do
Projects
None yet
Development

No branches or pull requests

1 participant