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

[WIP] Remove the old backends #207

Draft
wants to merge 1 commit into
base: next
Choose a base branch
from
Draft

[WIP] Remove the old backends #207

wants to merge 1 commit into from

Conversation

yshui
Copy link
Owner

@yshui yshui commented Jul 26, 2019

Signed-off-by: Yuxuan Shui yshuiv7@gmail.com

@codecov
Copy link

codecov bot commented Jul 26, 2019

Codecov Report

Attention: 21 lines in your changes are missing coverage. Please review.

Comparison is base (664f8b8) 37.39% compared to head (aa6943e) 42.85%.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             next     #207      +/-   ##
==========================================
+ Coverage   37.39%   42.85%   +5.46%     
==========================================
  Files          50       46       -4     
  Lines       11653    10091    -1562     
==========================================
- Hits         4358     4325      -33     
+ Misses       7295     5766    -1529     
Files Coverage Δ
src/common.h 92.85% <ø> (+15.07%) ⬆️
src/config.c 48.96% <ø> (ø)
src/config.h 23.52% <ø> (ø)
src/win.c 68.10% <ø> (+0.57%) ⬆️
src/win.h 78.12% <ø> (ø)
src/options.c 19.80% <85.71%> (+0.92%) ⬆️
src/picom.c 62.61% <45.94%> (+1.06%) ⬆️

... and 1 file with indirect coverage changes

@ggroucho
Copy link

Does this mean that compton will no longer be compatible with opengl 2?
The old glx backend is the best solution on my old hardware to remove tearing.
I have tried the xrender backend, but the performance is not as good.

@yshui
Copy link
Owner Author

yshui commented Jul 28, 2019

@ggroucho xrender should be preferred on old hardware. Can you elaborate why do you think xrender is not performant?

Also, what is your hardware setup?

@ggroucho
Copy link

ggroucho commented Jul 28, 2019

@yshui I am using compton on an old laptop with a first gen core i5 (which is limited to opengl 2.1 unfortunately).

My most demanding use case should be playing 60fps videos with firefox or mpv on an external monitor while doing something else on the laptop.
With the old glx backend, it was almost flawless. But with the xrender backend it is jerky or there is tearing (or maybe I haven't found the correct settings? There also seems to be an issue with Xorg 1.20.5, unfortunately I have difficulties to test Xorg git).

@ggroucho
Copy link

Actually, there is also screen tearing with the old opengl backend on vNext.
I guess I will have to stick to v7, which is the best version of compton for my use.

@yshui
Copy link
Owner Author

yshui commented Jul 29, 2019

@ggroucho there is no change made to the old backend since v7

@ggroucho
Copy link

ggroucho commented Jul 29, 2019

@yshui I can reproduce it every time, going back and forth between compton-git and compton in Arch Linux with the same config file.

With compton-git, mpv is tearing when it is in full screen on one of the monitors (I have tried opengl and xv outputs). But I have no issues with v7, even with two mpv videos in full screen on both monitors.

@aruhier
Copy link

aruhier commented Jul 29, 2019

@ggroucho : are you sure you're using 7.0 and not 6.2? The 7.0 has been updated 13h ago in [community]

@ggroucho
Copy link

@aruhier Yes, it did my test with 7.0.

But I have managed to remove the tearing with vNext and the old opengl backend by adding mpv to the unredir-if-possible-exclude list.
Which actually makes sense, since I have the issue with no composition. I guess I was using a bug as a feature...

I will try to give xorg-server-git another go, to see if it solves my issues with the new xrender backend.

@aufkrawall
Copy link

@ggroucho modesetting driver of xorg has a bug with Intel which causes stutter in regular intervals in mpv (and possibly elsewhere). Thus xf86-video-intel should be used.
But xf86-video-intel vsync was broken with xorg-server 1.20.5, it will all hopefully be fine again with 1.20.6.

Long story short for the meantime: You need to compile xorg-server-git, install it and then recompile xf86-video-intel(-git) against that newly installed xorg-server-git. This works fine for me with Gemini Lake, no tearing or stutter with new experimental xrender backend + vsync.

@ggroucho
Copy link

@aufkrawall Thank you very much.

I have tried compton-git and the latest xorg-server-git with the Intel driver (SNA, with and without TearFree) and with modesetting:

  • overall the performance is ok with one monitor
  • but the old opengl backend is still better with two monitors

It is not bad, but I think I will stick to a version with the old opengl backend.
It is the best performance I can get from this old machine for my particular use.

@yshui
Copy link
Owner Author

yshui commented Jul 31, 2019

@ggroucho Rendering with xrender is actually hardware accelerated in most case and should have performance on par with opengl if blurring is not used (in fact, if you use the modesetting driver, xrender is actually using opengl behind the scene through glamor).

I feel bad that you are stuck with an older version of compton, OTOH compton cannot support old hardware forever. I will see what I can do with the performance of the new xrender client, hopefully one day it will be good enough for you.

@ggroucho
Copy link

ggroucho commented Aug 1, 2019

@yshui No worries.
Thanks to you and to every one for the help.

@yshui yshui force-pushed the remove-old-backends branch 2 times, most recently from b85e3d0 to aa88d97 Compare September 29, 2019 00:08
@aufkrawall
Copy link

Just my two cents: Perhaps it wouldn't be a bad idea to wait with this until xorg 1.20.6 and xf86-video-amdgpu 19.1 are released, as they are important for new xrender backend vsync. Shouldn't take too long anymore.

@yshui
Copy link
Owner Author

yshui commented Oct 2, 2019

@aufkrawall don't worry. this is more a WIP. there are still features missing from the new backends (e.g. glx-fshader-win) so this probably won't be merged anytime soon.

@yshui yshui changed the title Remove the old backends [WIP] Remove the old backends Oct 2, 2019
@yshui yshui marked this pull request as draft February 10, 2024 16:04
@yshui yshui force-pushed the remove-old-backends branch 3 times, most recently from 84a5665 to d8ad95d Compare February 10, 2024 16:24
@yshui yshui added this to the v13 milestone Feb 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants