This was a dubious "fix" for a Nvidia driver problem. The problem was
never fully understood, and the then developers took a shotgun approach
and implemented xsync fences as a fix. Which somehow fixed the problem.
Again, I don't see any indication that the developers understood why
this "fix" worked.
(for details, see chjj/compton#152 and chjj/compton#181)
The driver problem should have been fixed almost 5 years ago. So this
shouldn't be needed anymore. In addition the way compton uses xsync fences
is apparently wrong according to the xsync spec (fences are attached to
screen, but compton uses them as if they were attached to drawables).
So, I will try removing it and see if anyone will complain. If there are
real concrete reasons why fences are needed, it will be brought back.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
- GLX backend: Fix a bug that ARGB windows / shadows are rendered too
dark. Thanks to derhass in FreeNode/##opengl for help.
- GLX backend: Fix a problem that during window resize the content looks
jittering, by letting compton fetch pixmap sizes with XGetGeometry()
instead of relying on window width/height, which could be inaccurate
during window resize. Negative effect on performance. Thanks to M4he
for reporting. (#7)
- Add .desktop file. Thanks to quequotion for providing it. (#97)
- Avoid checking presence of window pixmap, because they may not exist
with very old X Composite implementations.
- Add workaround for a strange window restack issue when compton
receieves a ConfigureNotify with non-existent new above window.
- Add debugging function hexdump(). Extra sanity checks on various
places.
- Add experimental OpenGL backend (--opengl). --blur-background is
currently not possible with this backend, because I'm still trying to
find a proper way to do blur with OpenGL. Flipping backend on-the-fly
is really hard, so it isn't supported right now. No configuration file
option exists to enable this, because it isn't stable enough.
- Add `opengl-swc` VSync method that uses SGI_swap_control to control
buffer swap, with OpenGL backend. (#7)
- Fix a potential read-from-freed-memory issue in paint_all().
- Correctly reattach GLX context after fork.
- Dump error text in error(). Add GLX error code handling.
- Code clean-up.
- Known issues: Region operations take a lot of time in glx_render().
I'm hesitating about what to do.
- Make Makefile compatible with BSD install, by dropping -D.
- Make CFG independent in Makefile, to allow people to specify CFLAGS
as a parameter to make.
- Correct location of .clang_complete.
- Add advanced window matching system, capable of matching against
arbitrary window properties as well as a series of internal
properties, with 4 additional operators (>, <, >=, <=) useful for
integer targets, and support of logical operators. The old matching
system is removed, but compatibility with the format is retained.
- As the new matching system is pretty complicated, and I have no past
experience in writing a parser, it's pretty possible that bugs are
present. It also has inferior performance, but I hope it doesn't
matter on modern CPUs.
- It's possible to disable matching system at compile time with NO_C2=1
now.
- Add ps->o.config_file to track which config file we have actually
read. Queryable via D-Bus.
- Parse -d in first pass in get_cfg() as c2 needs to query X to get
atoms during condition parsing.
- Fix a bug in wid_get_prop_adv() that 0 == rformat is not handled
correctly.
- Fix incompatibility with FreeBSD sed in dbus-examples/cdbus-driver.sh
.
- Add recipe to generate .clang_complete in Makefile, used by Vim
clang_complete plugin.
- Add DEBUG_C2 for debugging condition string parsing. DEBUG_WINMATCH is
still used for match debugging.
- Rename win_on_wdata_change() to win_on_factor_change().
- Extra malloc() failure checks. Add const to matching cache members in
session_t. Code clean-up. Documentation update.
- Create a session_t structure, to get rid of most global variables and
let information pass in/out mostly through parameters. Huge changes,
so bugs may very well appear. I'm worried about resource leakages, in
particular.
- Add gcc attributes on various functions.
- Add Doxygen configuration.
- Replace much Xlib Bool with C99 bool.
- Add and adjust some comments.
- Drop unused parameters from some functions.
- Cache default Visual and Depth, mainly to shorten code.
- Rename some types, variables, and functions.
- Add win_ev_stop() and set_ignore_next() for convenience.
- Modify wid_get_prop_wintype() and wid_get_opacity_prop() to use
wid_get_prop().
- Rename --respect-attr-shadow to --respect-prop-shadow.
- Fix a memory leak in --respect-prop-shadow.
- Many other small changes.
Add Asciidoc man pages. The old man page is still kept, and you need to
run "make docs" to generate the new man pages and a HTML version of it.
An Asciidoc man page for compton-trans is not added yet.
Pregenerate alpha pictures to save time when painting. Add --alpha-step
to control the step of alpha picture generation (the opacity difference
between two consecutively generated alpha pictures).
Add CMakeLists.txt to support building with CMake, as @pvanek requests.
The old Makefile system and CPackConfig.cmake are still usable. (Of
course, make sure you don't overwrite them by executing cmake.) There
must be a bunch of bugs in CMakeLists.txt. :-) Let chjj decide which one
he will choose, here I keep both.
- Let window type detection start with the client window if there's one,
in hope to enhance performance.
- Change get_wintype_prop() to fetch the property only once.
- Default to WINTYPE_UNKNOWN instead of WINTYPE_NORMAL if
_NET_WM_WINDOW_TYPE is missing.
- Fix a mistake in calc_opacity().
- Add some items to .gitignore.
- Fix a typo in usage().