mutter/clutter
Robert Bragg 130c79ac03 glx: throttle clipped redraws
When we come to presenting the result of a clipped redraw to the front
buffer with a blit we need to ensure that all the rendering is done,
otherwise redraw operations that are slower than the framerate can queue
up in the pipeline during a heavy animation, causing a larger and larger
backlog of rendering visible as lag to the user.

Note: Since calling glFinish() and sycnrhonizing the CPU with the GPU is
far from ideal, we hope that this is only a short term solution.

One idea is to using sync objects to track render completion so we can
throttle the backlog (ideally with an additional extension that lets us
get notifications in our mainloop instead of having to busy wait for the
completion.)

Another option is to support clipped redraws by reusing the contents of
old back buffers such that we can flip instead of using a blit and then
we can use GLX_INTEL_swap_events to throttle. For this though we would
still probably want an additional extension so we can report the limited
region of the window damage to X/compositors.

Thanks to Owen Taylor and Alexander Larsson for reporting the problem.
2011-04-01 18:50:55 +01:00
..
cally cally: Remove unused variables 2011-02-19 16:47:20 +00:00
cogl cogl: Use GHookList instead of CoglCallbackList 2011-03-14 18:18:15 +00:00
egl Add private header for event-related API 2011-02-18 16:35:36 +00:00
evdev Add private header for event-related API 2011-02-18 16:35:36 +00:00
fruity cogl: Adds _cogl_swap_buffers_notify for clutter backends 2011-01-21 16:18:10 +00:00
glx glx: throttle clipped redraws 2011-04-01 18:50:55 +01:00
osx Add private header for event-related API 2011-02-18 16:35:36 +00:00
wayland Add private header for event-related API 2011-02-18 16:35:36 +00:00
win32 win32/event: Set the core pointer directly 2011-03-08 10:01:53 +00:00
x11 x11: Map Net/DndDragThreshold to ClutterSettings 2011-03-09 14:21:00 +00:00
clutter-action.c
clutter-action.h
clutter-actor-box.c Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00
clutter-actor-meta-private.h Move ActorMeta private function in the private header 2011-02-18 16:53:31 +00:00
clutter-actor-meta.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-actor-meta.h Move ActorMeta private function in the private header 2011-02-18 16:53:31 +00:00
clutter-actor-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-actor.c culling: Don't cull actors not being painted on the stage 2011-03-10 21:02:29 +00:00
clutter-actor.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-align-constraint.c align-constraint: Fix typo in the vertical align 2011-04-01 15:36:22 +01:00
clutter-align-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-alpha.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-alpha.h
clutter-animatable.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-animatable.h
clutter-animation.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-animation.h
clutter-animator.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-animator.h
clutter-backend-private.h backend: Move event translators to the base class 2011-02-09 13:29:30 +00:00
clutter-backend.c Assert if we call backend API without a valid backend 2011-02-18 17:51:01 +00:00
clutter-backend.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-behaviour-depth.c Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-depth.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-ellipse.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-ellipse.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-opacity.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-opacity.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-path.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-path.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-rotate.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-rotate.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-scale.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-scale.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-bezier.c
clutter-bezier.h
clutter-bin-layout.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-bin-layout.h
clutter-bind-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-bind-constraint.h bind-constraint: Add BIND_POSITION and BIND_SIZE 2011-01-25 11:14:37 +00:00
clutter-binding-pool.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-binding-pool.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-blur-effect.c Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-blur-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-box-layout.c box-layout: Plug a memory leak 2010-10-08 13:29:49 +01:00
clutter-box-layout.h
clutter-box.c box: Implement the correct paint volume 2011-03-08 19:27:07 +00:00
clutter-box.h
clutter-cairo-texture.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-cairo-texture.h gtk-doc: Fixes for the API references 2010-11-08 16:01:19 +00:00
clutter-child-meta.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-child-meta.h
clutter-click-action.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-click-action.h click-action: add API to get modifier type 2011-01-17 17:31:46 +00:00
clutter-clone.c clutter-clone: Make clutter_clone_get_paint_volume static 2011-03-18 14:11:08 +00:00
clutter-clone.h
clutter-color-static.h color: Add named, global colors 2010-11-11 13:14:23 +00:00
clutter-color.c color: Mark the new static color API as being new from 1.6 2011-01-17 15:22:48 +00:00
clutter-color.h color: Mark the new static color API as being new from 1.6 2011-01-17 15:22:48 +00:00
clutter-colorize-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-colorize-effect.h clutter-color-size-effect: Fix a minor typo in the docs 2011-02-16 14:11:59 +00:00
clutter-config.h.in build: Generate an instealled config header 2011-01-19 14:33:27 +00:00
clutter-constraint.c constraint: Queue a relayout on :enabled changes 2011-03-01 19:04:31 +00:00
clutter-constraint.h
clutter-container.c introspection: Override the GParamSpec type 2011-02-15 12:40:12 +00:00
clutter-container.h Merge remote-tracking branch 'nobled/wayland-fixes2' 2011-02-11 16:45:45 +00:00
clutter-debug.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-deform-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-deform-effect.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-deprecated.h
clutter-desaturate-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-desaturate-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-device-manager-private.h Clean up crossing event synthesis code 2011-01-28 18:19:49 +00:00
clutter-device-manager.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-device-manager.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-drag-action.c drag-action: Fix a compiler warning 2011-03-21 12:41:40 +00:00
clutter-drag-action.h drag-action: Allow using settings for the drag threshold 2011-03-09 14:21:01 +00:00
clutter-effect-private.h Move ClutterEffect private symbols to a private header 2011-02-18 16:00:39 +00:00
clutter-effect.c effect: Queue a redraw on :enabled changes 2011-03-01 19:04:31 +00:00
clutter-effect.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-event-private.h event: Add setters for ClutterEvent members 2011-02-28 14:16:23 +00:00
clutter-event-translator.c event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event-translator.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event.c event: Return the CrossingEvent.device field 2011-03-08 10:05:57 +00:00
clutter-event.h event: Add setters for ClutterEvent members 2011-02-28 14:16:23 +00:00
clutter-feature.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-feature.h
clutter-fixed-layout.c
clutter-fixed-layout.h
clutter-fixed.c
clutter-fixed.h introspection: Skip some C-only structures 2010-12-10 17:15:39 +00:00
clutter-flow-layout.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-flow-layout.h
clutter-frame-source.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-frame-source.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-group.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-group.h
clutter-id-pool.c Privatize all ClutterIdPool functions 2011-02-18 15:53:27 +00:00
clutter-id-pool.h Privatize all ClutterIdPool functions 2011-02-18 15:53:27 +00:00
clutter-input-device.c Add private header for event-related API 2011-02-18 16:35:36 +00:00
clutter-input-device.h device: Allow enabling/disabling non-master devices 2011-01-21 10:25:45 +00:00
clutter-interval.c interval: Remember to chain up to parent in finalize() 2010-10-25 00:31:36 +01:00
clutter-interval.h
clutter-keysyms-compat.h keysyms: Update the list 2010-12-02 09:53:00 +00:00
clutter-keysyms-table.c Move the keysym ↔ Unicode table to .rodata 2011-02-28 14:16:24 +00:00
clutter-keysyms-update.pl
clutter-keysyms.h keysyms: Update the list 2010-12-02 09:53:00 +00:00
clutter-layout-manager.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-layout-manager.h Reduce the amount of g-ir-scanner warnings 2010-12-09 12:36:50 +00:00
clutter-layout-meta.c
clutter-layout-meta.h
clutter-list-model.c ClutterListModel: Implement get_n_rows for improved performance 2011-01-10 21:22:22 +00:00
clutter-list-model.h
clutter-main.c Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-main.h Add G_GNUC_WARN_UNUSED_RESULT to clutter_init and init_with_args 2011-02-28 14:10:05 +00:00
clutter-marshal.list event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-master-clock.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-master-clock.h
clutter-media.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-media.h
clutter-model-private.h
clutter-model.c model: Add support to define rows in ClutterScript 2011-01-21 20:44:17 +00:00
clutter-model.h model: Change the column argument type to gint for clutter_model_set_sort 2011-01-21 20:42:52 +00:00
clutter-offscreen-effect-private.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-offscreen-effect.c clutter-offscreen-effect: Paint with 'nearest' texture filter mode 2011-03-17 12:20:53 +00:00
clutter-offscreen-effect.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-page-turn-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-page-turn-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-paint-volume-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-paint-volume.c paint-volume: Zero-sized actors don't have paint volume 2011-04-01 11:43:34 +01:00
clutter-path-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-path-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-path.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-path.h
clutter-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-profile.c
clutter-profile.h
clutter-rectangle.c annotations: Use caller-allocates for color getters 2011-02-14 18:41:18 +00:00
clutter-rectangle.h
clutter-score.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-score.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-script-parser.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-script-private.h script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-script.h
clutter-scriptable.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-scriptable.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-settings.c settings: Add dnd-drag-threshold property 2011-03-09 14:21:00 +00:00
clutter-settings.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-shader-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-shader-effect.h
clutter-shader-types.c
clutter-shader-types.h
clutter-shader.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-shader.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-snap-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-snap-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-stage-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-stage-manager.c Clean up clutter-private.h/2 2010-10-21 11:30:19 +01:00
clutter-stage-manager.h
clutter-stage-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-stage-window.c stage-window: Add ::redraw virtual function 2011-02-08 15:49:19 +00:00
clutter-stage-window.h stage-window: Add ::redraw virtual function 2011-02-08 15:49:19 +00:00
clutter-stage.c stage: handle ACCEPT_FOCUS in set_/get_property 2011-03-11 17:14:54 +00:00
clutter-stage.h stage: Add :accept-focus property and accessors 2010-12-30 12:44:13 +00:00
clutter-state.c docs: Add an ClutterState definition section 2011-03-09 13:22:08 +00:00
clutter-state.h Use G_DEFINE_BOXED_TYPE for all boxed types 2010-10-18 11:26:45 +01:00
clutter-table-layout.c clutter: Remove unused variables 2011-02-19 16:47:20 +00:00
clutter-table-layout.h
clutter-text.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-text.h
clutter-texture.c texture: Add some safeguards for paint volumes of empty textures 2011-04-01 11:42:41 +01:00
clutter-texture.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-timeline.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-timeline.h ClutterTimeline: Fix the 'msecs' parameter for the new-frame signal 2011-01-24 11:52:47 +00:00
clutter-timeout-interval.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-timeout-interval.h Move away from GTimeVal 2010-11-17 16:19:10 +00:00
clutter-timeout-pool.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-timeout-pool.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-types.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-units.c docs: Documentation fixes 2010-12-09 13:59:08 +00:00
clutter-units.h introspection: Skip some C-only structures 2010-12-10 17:15:39 +00:00
clutter-util.c util: optimize _clutter_util_fully_transform_vertices 2011-03-07 13:26:20 +00:00
clutter-util.h
clutter-version.h.in
clutter.h build: Generate an instealled config header 2011-01-19 14:33:27 +00:00
clutter.pc.in build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00
Makefile.am win32: mkdir -p win32 needed for out of tree builds 2011-03-16 11:22:20 +00:00