BLASTBufferQueue: Handler allocateBuffers on thread.
allocateBuffers is a one-way method in the IGBP interface. In the non-BLAST case the IGBP is hosted in SF and allocateBuffers is therefore a one-way binder call executed asynchronously on an SF binder thread. In the BLAST case the IGBP will be in process and so allocateBuffers will execute in a blocking fashion. Callers don't like being blocked when they weren't before, so we want to emulate this behavior in BLASTBufferQueue. We introduce a Surface subclass (BBQSurface) which overrides allocateBuffers and pushes the operation to a new thread. Bug: 168504871 Test: asit/perf/appstartup_all_apps_cyclic_dropcache_test . Enabling BLAST triggers regression, but applying this removes the regression. Change-Id: If6bb411e021ba2e0886dfe96b1a1a1489e3627b8
Loading
Please register or sign in to comment