Skip to content

Commit

Permalink
config: deprecate glx-no-stencil and glx-no-rebind-pixmap
Browse files Browse the repository at this point in the history
Signed-off-by: Yuxuan Shui <[email protected]>
  • Loading branch information
yshui committed Oct 14, 2024
1 parent eaa7723 commit 2ebc97a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
6 changes: 0 additions & 6 deletions man/picom.1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -229,12 +229,6 @@ May also be one of the predefined kernels: `3x3box` (default), `5x5box`, `7x7box
* `xr_glx_hybrid` backend renders the updated screen contents with X Render and presents it on the screen with GLX. It attempts to address the rendering issues some users encountered with GLX backend and enables the better VSync of GLX backends. *--vsync-use-glfinish* might fix some rendering issues with this backend.
--

*--glx-no-stencil*::
GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. Might cause incorrect opacity when rendering transparent content (but never practically happened) and may not work with *--blur-background*. My tests show a 15% performance boost. Recommended.

*--glx-no-rebind-pixmap*::
GLX backend: Avoid rebinding pixmap on window damage. Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). Recommended if it works.

*--no-use-damage*::
Disable the use of damage information. This cause the whole screen to be redrawn every time, instead of the part of the screen has actually changed. Potentially degrades the performance, but might fix some artifacts.

Expand Down
8 changes: 6 additions & 2 deletions src/config_libconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -1054,9 +1054,13 @@ bool parse_config_libconfig(options_t *opt, const char *config_file) {
"configuration file.");
}
// --glx-no-stencil
lcfg_lookup_bool(&cfg, "glx-no-stencil", &opt->glx_no_stencil);
if (lcfg_lookup_bool(&cfg, "glx-no-stencil", &opt->glx_no_stencil)) {
log_warn("glx-no-stencil %s", deprecation_message);
}
// --glx-no-rebind-pixmap
lcfg_lookup_bool(&cfg, "glx-no-rebind-pixmap", &opt->glx_no_rebind_pixmap);
if (lcfg_lookup_bool(&cfg, "glx-no-rebind-pixmap", &opt->glx_no_rebind_pixmap)) {
log_warn("glx-no-rebind-pixmap %s", deprecation_message);
}
lcfg_lookup_bool(&cfg, "force-win-blend", &opt->force_win_blend);
// --use-damage
lcfg_lookup_bool(&cfg, "use-damage", &opt->use_damage);
Expand Down
4 changes: 2 additions & 2 deletions src/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,8 @@ static const struct picom_option picom_options[] = {
"windows. Affects --shadow-ignore-shaped, --unredir-if-possible, and "
"possibly others. You need to turn this on manually if you want to match "
"against rounded_corners in conditions."},
[298] = {"glx-no-rebind-pixmap" , ENABLE(glx_no_rebind_pixmap)},
[291] = {"glx-no-stencil" , ENABLE(glx_no_stencil)},
[298] = {"glx-no-rebind-pixmap" , WARN_DEPRECATED(ENABLE(glx_no_rebind_pixmap))},
[291] = {"glx-no-stencil" , WARN_DEPRECATED(ENABLE(glx_no_stencil))},
[325] = {"no-vsync" , DISABLE(vsync) , "Disable VSync"},
[327] = {"transparent-clipping" , ENABLE(transparent_clipping) , "Make transparent windows clip other windows like non-transparent windows do, "
"instead of blending on top of them"},
Expand Down

0 comments on commit 2ebc97a

Please sign in to comment.