diff options
author | Mathias Agopian <mathias@google.com> | 2009-09-17 16:15:36 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-09-17 16:15:36 -0700 |
commit | 8255d9d3b62ddf90269ddbb54e6f92b29908fa75 (patch) | |
tree | 99d10151cf5f853fa86d9e05d3e989a274f97f6a | |
parent | adc7f1ba08a16e79b9691c503454c52ac38bbb10 (diff) | |
download | libhardware-8255d9d3b62ddf90269ddbb54e6f92b29908fa75.tar.gz |
Android side of the fix for [2121211] Sholes has stutter during animations
a new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to perfrom the proper synchronization.
-rw-r--r-- | include/hardware/gralloc.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/hardware/gralloc.h b/include/hardware/gralloc.h index cdf415a2..5e868e68 100644 --- a/include/hardware/gralloc.h +++ b/include/hardware/gralloc.h @@ -162,6 +162,8 @@ typedef struct gralloc_module_t { int (*unlock)(struct gralloc_module_t const* module, buffer_handle_t handle); + /* reserved for future use */ + void* reserved_proc[8]; } gralloc_module_t; /*****************************************************************************/ @@ -254,7 +256,7 @@ typedef struct framebuffer_device_t { * the screen to the display panel, upon demand -- as opposed to * constantly refreshing the panel 60 times per second, for instance. * - * Only the area defined by this rectangle is guranteed to be valid, that + * Only the area defined by this rectangle is guaranteed to be valid, that * is, the driver is not allowed to post anything outside of this * rectangle. * @@ -287,6 +289,15 @@ typedef struct framebuffer_device_t { */ int (*post)(struct framebuffer_device_t* dev, buffer_handle_t buffer); + + /* + * The (*compositionComplete)() method must be called after the + * compositor has finished issuing GL commands for client buffers. + */ + + int (*compositionComplete)(struct framebuffer_device_t* dev); + + void* reserved_proc[8]; } framebuffer_device_t; |