IComposerClient assumes that IComposer will outlive its life cycle
and holds a simple pointer to HwcHal. This change is taking the same
approach of newer composer versions (2.2, 2.3, and 2.4) to make sure
that IComposer would outlive IComposerClient.
Test: coral booting with this change
Fixes: 155769496
Change-Id: I3962ede51ce823368c62c4e4e5fb30f7a5680bdf
Merged-In: I3962ede51ce823368c62c4e4e5fb30f7a5680bdf
(cherry picked from commit 43e42ff6ec)
(cherry picked from commit 1368c29213)
There are implmentations that can dead lock when calling certain
functions in certain states. It works fine before HIDL because
SurfaceFlinger calls those functions in another thread. We allow
for 4 hwbinder threads in this commit to simulate how SurfaceFlinger
calls hwcomposer.
Bug: 38183197
Test: camera, videos, multi windows, screencap, screenrecord
Change-Id: Ie05b2ca349b8c1ed9a3ac962981434f2efee92d9
The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.
Test: builds
Bug: 33844934
Change-Id: I3d51429681d834f53dc5f6765e97675eafdceda4
Make IComposer default implementation use the same process scheduler
as SurfaceFlinger does.
Bug: 35210697
Test: manual
Change-Id: Ie2ebe1d3fd26505984d9f6c33d63b5db36b0b64a
It is always on now and all buffers be cloned and registered.
Clients (SF) should make use of the buffer caching mechanism and
pass each unique buffer once, to avoid the overhead.
Test: manual
Change-Id: I74ccbf74e110c8b413a66cfc60044b71ba3f44e3
Threadpool can now be configured/joined if needed with
configureRpcThreadpool() / joinRpcThreadpool().
Bug: 31226656
Test: mma
Change-Id: I0d7d9924cc8c8851cc2b61ebdae906204909890e
Since HALs might run binder services, we need to start thread pool for
both binder and hwbinder.
Bug: 32021609
Test: builds and boots
Change-Id: I9779e86b1e611a180b1984af36c417dafc3329bc