| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | | |
Make usage of glFinish() optional to avoid high CPU usage. (#163)
|
| | |
| | |
| | |
| | |
| | | |
Fix a spelling mistake (xr_glx_hybird -> xr_glx_hybrid). Thanks to cju
for reporting.
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add new backend "xr_glx_hybird", which uses X Render for all
compositing but GLX on the last step of rendering to screen. This
makes GLX-backend-specific VSync methods usable while may avoid
certain bugs with GLX backend. The idea comes from ali1234.
Experimental.
- GLX backend: Stop using or rendering to depth buffer.
- Use glFinish() instead of glFlush() before VSync. It probably uses
more CPU but could be more reliable than glFlush().
|
| |
| |
| |
| |
| | |
Add WM_CLASS, COMPTON_VERSION, and _NET_WM_PID properties to the
registration window, to ease the development of pcman's compton-conf.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --write-pid-path to write process ID to a file, to help
determining compton's process ID when -b is used.
- Add a few extra targets to query through D-Bus opts_get (version, pid,
etc.) and through win_get, primarily for debugging.
- Add helper macros likely(), unlikely(), cmalloc(), ccalloc(),
crealloc().
- Change w->opacity_set to opacity_t. Determine display_repr in
session_init(), etc.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Possible fix for a very rare timing issue in focus detection. Compton
may fail to detect the currently focused window, when a window newly
mapped gets focused, we failed to listen to events and get FocusIn from
it in time, and a series of focus change events before it happens stay
in the event queue and puzzled compton. My choice is to force focus
recheck on all focus-related events. More roundtrips to X, but not
necessarily worse performance, due to the high cost of focus flipping
especially when there's a lot of conditions. Thanks to SlackBox for
reporting. (#153)
|
| |
| |
| |
| |
| |
| |
| | |
- Fix a bug that --opacity-rule misbehaves with a value higher than 50%
on 32-bit systems. Thanks to mrinx for reporting. (#149)
- Fix a bug that opacity-rule in configuration file does not work.
|
| |
| |
| |
| | |
I typed ps->glXGetVideoSyncSGI as ps->glXWaitVideoSyncSGI...
|
| |
| |
| |
| |
| | |
Add configuration file options for
--unredir-if-possible-{delay,exclude}. (#140)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Rewrite focus detection logic. Remove w->focused_real and use
ps->active_win to identify focused window uniformly. Use a more
expensive way to filter FocusIn/Out events to improve reliability.
Only limited tests are done, and bugs are likely to be introduced.
(#99)
- Known issue: Under fvwm, compton sometimes does not consistently
report the window input gets sent to. But there's something wrong in
that case: XGetInputFocus() shows the root window is focused but
another window is receiving input.
|
| |
| |
| |
| |
| | |
Dynamically detect window type as a workaround to insane applications.
Thanks to Feltzer for reporting. (#144)
|
| |
| |
| |
| |
| | |
Set LC_NUMERIC=C when generating GLSL shader strings to avoid decimal
point issues on European locales. Thanks to hiciu for reporting.
|
| |
| |
| |
| |
| | |
Move setlocale(LC_NUMERIC, "C") to a better place, in hope to fix #143.
Thanks to hiciu for reporting!
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Possible fix for high CPU usage with a low --unredir-possible-delay.
Thanks to Feltzer for reporting. (#140)
- Rewrite some parts to (hopefully) increase performance, especially
with --unredir-if-possible.
- Known issue: With GTX 670 and x11-drivers/nvidia-drivers-325.15, and
compton --unredir-if-possible --config /dev/null, if you send a
SIGUSR1 to compton when a full-screen solid window is there, in which
case compton either redirects then immediately unredirects the screen,
or just don't redirect it altogether, X freezes after compton
unredirects the screen. Requests sent by other X clients are not
responded until compton is killed, which indicates the possibility of
a bug in X. Attaching to X process shows X is on ./os/waitFor.c.
Backend does not matter. --paint-on-overlay fixes the issue somehow.
compton-git-v0.1_beta1-5-g4600f43-2013-08-28 doesn't exhibit the
issue, but it's probably timing-related.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --unredir-if-possible-exclude, to exclude certain windows when
evaluating --unredir-if-possible. (#140)
- Add --unredir-if-possible-delay, to add some delay before
unredirecting screen. (#138, #140)
- Code clean-up.
|
| |
| |
| |
| |
| | |
Avoid using multi-sampled visuals, like the cogl patch:
http://people.freedesktop.org/~glisse/0001-glx-do-not-use-multisample-visual-config-for-front-o.patch
|
| |
| |
| |
| |
| | |
Attempt to auto-detect screen changes to address the issue reported by
Feltzer.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Add "xinerama_shadow_crop" configuration option.
- Add long commandline switches corresponding to the short ones.
- Documentation update.
|
| |
| |
| |
| |
| | |
Add --xinerama-shadow-crop to crop shadow to current Xinerama screen.
Thanks to Feltzer for suggestion.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add stoppaint_force option, controlled via D-Bus, to stop painting
completely, which may look better than unredirecting the screen,
sometimes. (#41)
- Add x2, y2 matching targets.
- Update documentation.
|
| |
| |
| |
| |
| |
| |
| | |
- Add "redirected_force" to D-Bus opts_get to forcefully
redirect/unredirect windows.
- Add D-Bus method "repaint", to, namely, repaint the screen.
|
| |
| |
| |
| |
| | |
- Check FBConfig X visual depth, like Compiz, to fix issues with
nvidia-drivers-325.08 . Thanks to guotsuan for reporting.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Fix OpenGL 3.0 compatibility by changing glFramebufferTexture() to
glFramebufferTexture2D(). Thanks to danfe for suggestion!
- Add notification about DocBook toolchina dependencies. Thanks to
danfe. (#121)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --paint-exclude to prevent certain windows from being painted, for
debugging purposes.
- Add predefined matching target "x", "y", "width", "height", "widthb",
"heightb", "border_width", and "fullscreen".
- Fix bug #119, wrong man page install dir in CMake configuration.
Thanks to sstewartgallus for reporting.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --shadow-exclude-reg, which excludes certain regions on the screen
to have shadows painted in. (#116)
- Adjust session initialization order. Now X root and screen info and
basic X extensions are available in configuration parsing step.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --opacity-rule, which sets opacity based on conditions, as
requested by zabbal. (#113)
- Add a data field for each condition.
- Correct the FAQ link in README.md. Silly me.
- Code clean-up.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add multipass blur support. Note GLX Framebuffer support is required.
My benchmark shows multipass blur brings 5% performance boost for X
Render backend (3x3box). On GLX backend it brings 10% performance
boost for 5x5box but negatively affects performance for 3x3box. Thanks
to jrfonseca for advice. (#107)
- GLX backend: Cache blur texture for each window, for a 12% performance
boost.
- Add D-Bus fading control. Thanks to yulan6248 for testing. (#112)
- Fix FAQ link in README.md. Thanks to lorenzos for report. (#111)
- Correctly deinitialize VSync on on-the-fly VSync method switch.
- X Render backend: Normalize blur kernel.
- Code clean-up.
- Known issue: Linear corruption on border of a window may appear with X
Render multi-pass blur. Possible to fix but probably not worthwhile.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- GLX backend: Add DEBUG_GLX_MARK, to add GL marks around functions with
glStringMarkerGREMEDY(), and mark frame termination with
glFrameTerminatorGREMEDY().
- Print output of `compton -h` to stdout. (#110)
- GLX backend: Strip out elements with factor 0 in GLSL blur code.
Thanks to jrfonseca for guides. (#107)
|
| |
| |
| |
| |
| | |
- Fix compilation failure with NO_LIBCONFIG or NO_C2. Thanks to
Spaulding for reporting.
|
| |
| |
| |
| |
| | |
- GLX: Add DEBUG_GLX_PAINTREG, for debugging painting region issues, for
p4ddy's problem.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Fix GL_TEXTURE_RECTANGLE support. Thanks to amonakov for guides.
(#107)
- Enhance --glx-copy-from-front to improve performance and make it work
with --glx-swap-method, copied from kwin patch. Thanks to bwat47 for
info. (#107)
- Add texture2Doffset() support in blur GLSL shader. Thanks to amonakov
for advice. No visible benefit here, though. (#107)
- Only limited tests are done and I'm super sleepy. Bugs expected
|
| |
| |
| |
| |
| |
| |
| | |
- Split Pixmap validation out to validate_pixmap(). Validate wallpaper
Pixmap as well.
- Update README.md and man page.
|
| |
| |
| |
| |
| |
| | |
- Add a few predefined blur kernels, requested by jerri in #104.
- Add compton-convgen.py to generate blur kernels.
|
| |
| |
| |
| | |
Just a small and mostly harmless issue. Sorry, didn't test throughly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Fix --resize-damage. I forgot to shrink the painting region back when
actually copying to destination.
- Include extra pixels around the blur texture to avoid some possible
small issues, if --resize-damage is positive.
- Known issue: Line artifacts may still appear with --dbe (X Render
backend) or --glx-swap-method (GLX backend). I doubt if there's way to
fix this without very inefficient mechanisms.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --resize-damage to enlarge/shrink repaint region by a specific
number of pixels, used for solving the line corruption issue with
blur. Thanks to Nuck and jerri in #104 for reporting.
- Fix the memory leak of blur shader string.
|
| |
| |
| |
| | |
Fix gcc compilation error about "initializer element is not constant".
|
| |
| |
| |
| |
| | |
- Enhance --glx-swap-method to support longer buffers ages (3-6), and
automatic buffer age detection via GLX_EXT_buffer_age.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add blur convolution kernel customization, --blur-kern. The format is
a bit tricky so be sure to read the description in `compton -h`. Not
much tests received.
- GLX backend: Tolerate missing GLSL uniforms for strangely shaped
convolution kernel.
- Fix a memory leak that blur-background blacklist is not freed.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Fix description of "opengl" VSync.
- Add DEBUG_GLX_ERR to check for OpenGL errors.
- Update man page.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- GLX backend: Add --glx-swap-method, to reduce painting region if the
driver uses exchange or copy buffer swaps. Untested.
- Add --fade-exclude, to disable fading on specific windows based on
some conditions. Untested.
- Expose GLX backend options through configuration file. Add fetching of
GLX backend options through D-Bus.
- Use NULL pointer instead of element count to delimit string arrays in
parse_vsync()/parse_backend()/parse_glx_swap_method().
- Add documentation about "wintypes" section in configuration file.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- GLX backend: Fix broken dim and blur with --glx-no-stencil when
dealing with shaped windows.
- GLX backend: Cache region contents and do a local region intersection
instead of using XFixesIntersectRegion(). Drastic reduction in CPU
usage for --glx-no-stencil. Now --glx-no-stencil substantially
outperforms (~15%) normal mode.
- Use macros to reuse paint-in-region code in opengl.c . Add new type
"reg_data_t" to store XserverRegion cache.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Cache region contents in is_region_empty(), mostly useful only for GLX
backend to save one roundtrip to X.
- GLX backend: Add --glx-no-rebind-pixmap, which prevents rebinding of
GLX texture to pixmap on content change. It doesn't work on some
drivers, but it saves some CPU on those where it does.
- Wrap XFree() with a new function cxfree() since its man page claims
NULL pointers are not acceptable (although in fact it does...).
- Use macro to save some code in get_cfg(). Code clean-up.
|
| |
| |
| |
| |
| | |
- Add workarounds for missing GL_TEXTURE_RECTANGLE and PictOpDifference
definitions in broken GL headers / old X Composite headers.
|
| |
| |
| |
| |
| |
| | |
- Add default active window opacity (--active-opacity). (#4)
- Add win_focusin and win_focusout D-Bus signals.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- GLX backend: Fix broken --inactive-dim.
- GLX backend: Fix bugs when inverting colors of windows. Thanks to
madsy and neure for help.
- GLX backend: Lift `glx_no_stencil` restriction from glx_init_blur().
It still probably won't work, but the user can try.
- XRender backend: Use XRenderFillRectangles() instead of
XRenderComposite() to do dimming.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add --blur-background-exclude. (#98)
- Add `opengl-mswc` VSync, which uses MESA_swap_control instead of
SGI_swap_control. I don't expect it to perform better than
SGI_swap_control, though.
- Update CMakeLists.txt .
- Add a few targets for D-Bus `win_get`. Misc changes.
- Known issue: Apparently I've forgotten implementing --inactive-dim on
GLX backend... Silly me.
|
| |
| |
| |
| |
| |
| | |
- Fix a bug that ConfigureNotify placing a window in bottom
(ConfigureNotify with .new_above == 0) is not correctly handled,
introduced in 1a88e3d0c5.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- GLX backend: Add --glx-use-copysubbuffermesa, to use
MESA_copy_sub_buffer to do partial screen update. Huge performance
boost on mesa drivers for partial screen updates, but does not work
for nvidia-drivers and may break VSync. Automagically overrides
--glx-copy-from-front.
- Add rect_is_fullscreen() to reuse code. Misc changes.
|