mutter/clutter
Chris Wilson 239280f855 stage-cogl: Fix damage tracking with varying buffer ages
With server-side buffer allocation, buffers may be returned out of order
(e.g. they may be held onto by external references or hardware). As such
we may see older buffers the frame after we discard the history from
seeing a very young buffer. To overcome this we want to keep the history
in a ring so we can keep track of older entries without keeping an
unbounded list. After converting to a ring, the maximum buffer age
observed during testing was 5 (expected value of 4), but before we could
see ages as high as 9 due to the huge latency spikes caused by doing full
buffer redraws (compounded by external listeners doing readback on the
damaged areas, for example vnc, drm/udl, prime). For this reason, a
maximum age of 16 was chosen to be suitably large enough to prevent these
worst cases from taxing the system.

v2: Fix off-by-one in combining the damage histroy into the clipping
rectangle, and apply copious whitespace fixes.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=745512
References: https://bugzilla.gnome.org/show_bug.cgi?id=724788
References: https://bugzilla.gnome.org/show_bug.cgi?id=669122
2015-03-15 14:46:42 +00:00
..
cally Use new introspection annotation syntax 2014-12-15 23:45:25 +00:00
cex100 docs: Port backend-specific sections to markdown 2014-03-17 23:10:07 +00:00
cogl stage-cogl: Fix damage tracking with varying buffer ages 2015-03-15 14:46:42 +00:00
deprecated rectangle: Do not draw the border if bigger than the allocation 2015-03-14 23:17:27 +00:00
egl egl: Add a way to pause the ClutterMasterClock 2014-05-19 15:48:39 -04:00
evdev docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
gdk Drop the UProf dependency 2015-03-03 17:44:15 +00:00
mir docs: Fix a gtk-doc annotation in the Mir backend 2015-03-03 16:14:15 +00:00
osx osx: Clean up installed clutter-osx.h header 2014-12-15 16:51:05 +00:00
tslib Avoid needless event copies when queueing from a backend to a stage 2014-03-15 19:44:57 +00:00
wayland Fix scaling of pointer axis vectors 2014-05-28 10:20:13 +01:00
win32 clutter-event-win32.c: Avoid a Crash 2014-03-20 22:37:17 +08:00
x11 docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-action.c
clutter-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-actor-box.c docs: Fix syntax errors in annotations 2013-12-04 16:09:09 +00:00
clutter-actor-meta-private.h ClutterActor: Add clutter_actor_has_effects 2011-09-29 19:34:24 +02:00
clutter-actor-meta.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-actor-meta.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-actor-private.h ClutterActor: expose setter for the opacity override 2015-02-21 00:26:40 +00:00
clutter-actor.c docs: Add anchors to sections in ClutterActor's description 2015-03-05 13:16:59 +00:00
clutter-actor.h ClutterActor: expose setter for the opacity override 2015-02-21 00:26:40 +00:00
clutter-align-constraint.c constraints: Clamp updated allocation to the nearest pixel 2012-06-27 21:28:01 +01:00
clutter-align-constraint.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-animatable.c animatable: Disable deprecation warnings 2012-04-27 14:21:56 +01:00
clutter-animatable.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-backend-private.h backend: Add private accessor for the keymap direction 2014-03-03 23:42:33 +00:00
clutter-backend.c Drop the UProf dependency 2015-03-03 17:44:15 +00:00
clutter-backend.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-base-types.c Deprecate ClutterGeometry 2013-04-04 11:53:39 +01:00
clutter-bezier.c debug: Clean up debugging notes 2011-10-17 10:24:25 +01:00
clutter-bezier.h
clutter-bin-layout.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-bin-layout.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-bind-constraint.c Revert "bind-constraint: Update the preferred size" 2014-12-16 13:33:16 +00:00
clutter-bind-constraint.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-binding-pool.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-binding-pool.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-blur-effect.c blur-effect: Fix the blur filter 2012-09-03 21:18:43 +01:00
clutter-blur-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-box-layout.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-box-layout.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-brightness-contrast-effect.c brightness-contrast-effect: Don't actually run if it will have no effect 2012-09-03 05:02:48 -03:00
clutter-brightness-contrast-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-cairo.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-cairo.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-canvas.c Depend on a Cairo release with cairo_surface_set_device_scale() 2015-01-22 14:13:11 +00:00
clutter-canvas.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-child-meta.c
clutter-child-meta.h docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-click-action.c click-action: disconnect signals and gsources on dispose 2013-09-10 21:48:42 +01:00
clutter-click-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-clone.c ClutterActor: expose setter for the opacity override 2015-02-21 00:26:40 +00:00
clutter-clone.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-cogl-compat.h Reduce our internal dependence on the Cogl 1.x api 2012-02-21 17:46:11 +00:00
clutter-color-static.h static-colors: Simplify the defines 2011-09-05 17:22:14 +01:00
clutter-color.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-color.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-colorize-effect.c Pass a CoglContext when calling cogl_pipeline_new 2012-02-21 17:46:11 +00:00
clutter-colorize-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-config.h.in
clutter-config.h.win32 clutter-config.h.win32: Add CLUTTER_INPUT_NULL 2011-11-14 13:33:04 +08:00
clutter-config.h.win32_GDK Visual C++ support: Add support to build GDK backend 2012-05-14 16:18:13 +08:00
clutter-constraint-private.h constraint: Add the ability to update the preferred size 2014-12-16 00:37:06 +00:00
clutter-constraint.c constraint: Fix update_allocation()'s return value 2014-12-16 00:46:16 +00:00
clutter-constraint.h docs: Add ClutterConstraintClass.update_preferred_size() 2014-12-16 00:38:27 +00:00
clutter-container.c Use new introspection annotation syntax 2014-12-15 23:45:25 +00:00
clutter-container.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-content-private.h content: Make get_preferred_size() public 2012-03-16 12:33:37 +00:00
clutter-content.c canvas: Add canvas size to the ::draw signal 2012-03-16 12:33:37 +00:00
clutter-content.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-debug.h debug: Simple whitespace cleanups 2011-11-18 17:54:19 +00:00
clutter-deform-effect.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-deform-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-deprecated.h Deprecate ClutterTableLayout 2013-11-19 00:31:53 +00:00
clutter-desaturate-effect.c Pass a CoglContext when calling cogl_pipeline_new 2012-02-21 17:46:11 +00:00
clutter-desaturate-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-device-manager-private.h input-device: Add vendor/product ID properties and getters 2015-01-09 17:01:22 +01:00
clutter-device-manager.c device-manager: Don't emit device-removed with a finalized instance 2013-11-21 19:34:14 +01:00
clutter-device-manager.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-drag-action.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-drag-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-drop-action.c drop-action: Use the right state for events 2014-06-25 15:16:30 +01:00
clutter-drop-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-easing.c timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-easing.h timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-effect-private.h effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-effect.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-effect.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-enum-types.c.in Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-enum-types.h.in Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-enums.h Deprecate unused enumeration types 2015-01-13 00:46:47 +00:00
clutter-event-private.h Add API to install an event filter 2013-11-14 14:32:17 -05:00
clutter-event-translator.c
clutter-event-translator.h
clutter-event.c event: define a boxed type for ClutterEventSequence 2014-07-23 14:23:20 +02:00
clutter-event.h event: define a boxed type for ClutterEventSequence 2014-07-23 14:23:20 +02:00
clutter-feature.c docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
clutter-feature.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-fixed-layout.c fixed-layout: Remove the NO_LAYOUT flag set 2012-01-27 15:45:11 +00:00
clutter-fixed-layout.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-flatten-effect.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flatten-effect.h clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flow-layout.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-flow-layout.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-gesture-action-private.h gesture: Make threshold-trigger-edge public 2013-12-05 15:20:39 +00:00
clutter-gesture-action.c Re-introduce removed GestureAction method 2014-09-03 14:16:31 +01:00
clutter-gesture-action.h Re-introduce removed GestureAction method 2014-09-03 14:16:31 +01:00
clutter-grid-layout.c grid-layout: Use correct orientation when requesting preferred child size 2014-03-12 00:30:40 +01:00
clutter-grid-layout.h Add ClutterGridLayout 2012-06-05 12:28:25 +02:00
clutter-group.h docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
clutter-id-pool.c clutter-id-pool: fix warning on bad pick 2011-05-26 08:48:13 -04:00
clutter-id-pool.h
clutter-image.c image: Do not put large textures in the atlas 2014-12-03 12:12:43 +00:00
clutter-image.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-input-device.c input-device: Reset the focused actor when it becomes unreactive 2015-02-06 09:42:17 -08:00
clutter-input-device.h input-device: Add vendor/product ID properties and getters 2015-01-09 17:01:22 +01:00
clutter-interval.c Use new introspection annotation syntax 2014-12-15 23:45:25 +00:00
clutter-interval.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-keyframe-transition.c Easing modes are not used when computing the value of a KeyframeTransition 2014-12-11 22:37:22 +00:00
clutter-keyframe-transition.h docs: Remove a couple of FIXMEs 2015-01-12 13:42:33 +00:00
clutter-keysyms-table.c Include "config.h" 2014-03-17 19:26:49 +00:00
clutter-keysyms-update.pl keysyms-update: Add deprecation guards to the deprecated header 2012-06-11 13:46:38 +01:00
clutter-keysyms.h keysyms: Update the list of key symbols 2015-01-03 20:05:22 +00:00
clutter-layout-manager.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-layout-manager.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-layout-meta.c
clutter-layout-meta.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-list-model.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-list-model.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-macros.h Add 1.22 version macros 2014-12-11 22:35:13 +00:00
clutter-main.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-main.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-marshal.list swipe-action: Introduce new ::swipe signal 2012-12-18 01:27:32 +00:00
clutter-master-clock-default.c Drop the UProf dependency 2015-03-03 17:44:15 +00:00
clutter-master-clock-default.h main: Make the MasterClock an interface 2015-02-17 18:55:23 +00:00
clutter-master-clock.c gdk: implement a MasterClock based on GdkFrameClock 2015-02-17 19:12:40 +00:00
clutter-master-clock.h main: Make the MasterClock an interface 2015-02-17 18:55:23 +00:00
clutter-model-private.h Mark internal symbol as private 2012-02-09 18:40:03 +00:00
clutter-model.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-model.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-offscreen-effect-private.h
clutter-offscreen-effect.c ClutterActor: expose setter for the opacity override 2015-02-21 00:26:40 +00:00
clutter-offscreen-effect.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-page-turn-effect.c
clutter-page-turn-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-paint-node-private.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-paint-node.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-paint-node.h Don't do anything special with COGL_ENABLE_EXPERIMENTAL_2_0_API 2013-02-20 23:06:28 +00:00
clutter-paint-nodes.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-paint-nodes.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-paint-volume-private.h
clutter-paint-volume.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-pan-action.c GestureActions: Set threshold-trigger-edge at right time 2014-02-13 18:53:24 +01:00
clutter-pan-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-path-constraint.c Don't annotate with (transfer full) constructors of GInitiallyUnowned subclasses 2012-10-24 13:17:57 +02:00
clutter-path-constraint.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-path.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-path.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-private.h Remove unused pointer 2015-01-01 15:16:40 +00:00
clutter-property-transition.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-property-transition.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-rotate-action.c GestureActions: Set threshold-trigger-edge at right time 2014-02-13 18:53:24 +01:00
clutter-rotate-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-script-parser.c script: Do not overwrite ObjectInfo fields 2014-12-14 23:05:17 +00:00
clutter-script-private.h script: Support ClutterPoint and ClutterSize 2012-04-27 12:30:46 +01:00
clutter-script.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-script.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-scriptable.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-scriptable.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-scroll-actor.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-scroll-actor.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-settings-private.h clutter-settings: Mark window-scaling-factor as fixed when set by the app 2014-08-23 14:02:56 +02:00
clutter-settings.c docs: Remove leftover DocBook tags 2015-03-12 20:22:57 +00:00
clutter-settings.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-shader-effect.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-shader-effect.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-shader-types.c introspection: assorted annotation fixes ported from Vala 2012-06-12 17:44:16 -07:00
clutter-shader-types.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-snap-constraint.c Bind constraints: Don't force redraws on source relayout 2013-11-26 11:12:12 -05:00
clutter-snap-constraint.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-stage-manager-private.h
clutter-stage-manager.c Fix missing/redundant declarations 2012-03-07 12:36:43 +00:00
clutter-stage-manager.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-stage-private.h Avoid needless event copies when queueing from a backend to a stage 2014-03-15 19:44:57 +00:00
clutter-stage-window.c stage-window: Add scaling factor accessors 2013-09-19 22:51:52 +01:00
clutter-stage-window.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-stage.c Drop the UProf dependency 2015-03-03 17:44:15 +00:00
clutter-stage.h docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
clutter-swipe-action.c GestureActions: Add per-action thresholds 2014-02-13 18:53:24 +01:00
clutter-swipe-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-tap-action.c GestureActions: Set threshold-trigger-edge at right time 2014-02-13 18:53:24 +01:00
clutter-tap-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-test-utils.c docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
clutter-test-utils.h docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-text-buffer.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-text-buffer.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-text.c Drop the UProf dependency 2015-03-03 17:44:15 +00:00
clutter-text.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-texture.h docs: Minimal fixes for the API reference 2015-03-03 15:53:04 +00:00
clutter-timeline.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-timeline.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-transition-group.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-transition-group.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-transition.c Use new introspection annotation syntax 2014-12-15 23:45:25 +00:00
clutter-transition.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-types.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter-units.c docs: Move to markdown 2014-03-17 23:07:58 +00:00
clutter-units.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter-util.c Add interpolation for matrices 2012-09-03 20:54:43 +01:00
clutter-version.h.in Add 1.22 version macros 2014-12-11 22:35:13 +00:00
clutter-zoom-action.c GestureActions: Set threshold-trigger-edge at right time 2014-02-13 18:53:24 +01:00
clutter-zoom-action.h docs: Remove last stray DocBook tags 2014-03-18 14:15:01 +00:00
clutter.h Annotate all public symbols 2014-03-17 18:53:27 +00:00
clutter.pc.in build: Add infrastructure for inserting Requires.private into pkg-config files 2012-01-11 12:23:46 +00:00
config.h.win32.in Fix on Last Commit of config.h.win32.in 2014-03-20 09:30:17 +08:00
Makefile.am Drop the UProf dependency 2015-03-03 17:44:15 +00:00