graphics: rework IComposer
Similar to IAllocator, introduce IComposerClient to manage resources.
Rework the interface such that most state changing calls are batched in a
"command buffer" and execute together. The goal is to reduce the number
of IPC calls needed to set up the composer.
Test: builds and boots
Change-Id: I324009243234c4d2482ca0ef2591377b11530fc9
diff --git a/graphics/composer/2.1/default/Android.bp b/graphics/composer/2.1/default/Android.bp
index 22f4906..0d63c3c 100644
--- a/graphics/composer/2.1/default/Android.bp
+++ b/graphics/composer/2.1/default/Android.bp
@@ -1,17 +1,19 @@
cc_library_shared {
name: "android.hardware.graphics.composer@2.1-impl",
relative_install_path: "hw",
- srcs: ["Hwc.cpp"],
+ srcs: ["Hwc.cpp", "HwcClient.cpp"],
shared_libs: [
"android.hardware.graphics.allocator@2.0",
"android.hardware.graphics.composer@2.1",
"libbase",
"libcutils",
+ "libfmq",
"libhardware",
"libhidlbase",
"libhidltransport",
"libhwbinder",
"liblog",
+ "libsync",
"libutils",
],
}
@@ -19,7 +21,7 @@
cc_binary {
name: "android.hardware.graphics.composer@2.1-service",
relative_install_path: "hw",
- srcs: ["service.cpp", "Hwc.cpp"],
+ srcs: ["service.cpp", "Hwc.cpp", "HwcClient.cpp"],
cppflags: ["-DBINDERIZED"],
init_rc: ["android.hardware.graphics.composer@2.1-service.rc"],
@@ -29,11 +31,19 @@
"libbase",
"libbinder",
"libcutils",
+ "libfmq",
"libhardware",
"libhidlbase",
"libhidltransport",
"libhwbinder",
"liblog",
+ "libsync",
"libutils",
],
}
+
+cc_library_static {
+ name: "libhwcomposer-command-buffer",
+ shared_libs: ["android.hardware.graphics.composer@2.1"],
+ export_include_dirs: ["."],
+}