summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-09-17 16:15:36 -0700
committerMathias Agopian <mathias@google.com>2009-09-17 16:15:36 -0700
commit8255d9d3b62ddf90269ddbb54e6f92b29908fa75 (patch)
tree99d10151cf5f853fa86d9e05d3e989a274f97f6a
parentadc7f1ba08a16e79b9691c503454c52ac38bbb10 (diff)
downloadlibhardware-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.h13
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;