summaryrefslogtreecommitdiff
path: root/libs/gui/DisplayInfo.cpp
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2022-09-20 16:38:19 -0400
committer Leon Scroggins III <scroggo@google.com> 2022-11-10 16:49:13 -0500
commite24d78f129d9de8be75dfeb4e3d3e81d5571a93a (patch)
treeae9bebf899b7a3f8f31edac541ce44fdbf7da02f /libs/gui/DisplayInfo.cpp
parentfafa9fe14d440b9f59ad6a274672e78c0c7cfb60 (diff)
AidlComposer: use a reader/writer per display
In order to call HWC from different threads, with one thread per display, separate commands and their results per display. AidlComposer: - Add a maps from display to a ComposerClientReader and a ComposerClientWriter. Each reader/writer will be used by a single display. AidlComposer is generally threadsafe, except for these objects. (The other members are pointers to proxy binders, which can have their methods safely called from multiple threads.) Use an ftl::SharedMutex to guard access to the maps. The client is responsible for ensuring they do not attempt to access the same reader/writer concurrently from multiple threads. Different threads can access different readers/writers concurrently, but the mutex ensures that adding or deleting an entry does not impact access to the objects. - Add a `Display` parameter to execute[Commands] and resetCommands, so that it only affects the intended writer. The callers already know which Display they care about, so pass it in. - If no displays support DisplayCapability.MULTI_THREADED_PRESENT, use a single reader for all displays. This is required for backwards compatibility. [Hidl]ComposerHal, MockComposer: - update APIs for executeCommands and resetCommands - implement onHotPlug[Connect/Disconnect] HWComposer, fuzzer: - pass the display to new APIs Bug: 241285491 Test: make, boot Change-Id: I2b62e4965b12b3c653e6c00f9f6ab4f48b506b18
Diffstat (limited to 'libs/gui/DisplayInfo.cpp')
0 files changed, 0 insertions, 0 deletions