ProjectionSpace fixes for caching:
* When feeding back into client composition, feed back the framebuffer projection space instead of a projection space using mBounds as the content rectangle. Otherwise, this tries to project the entire cached set onto the entirety of the display, which is incorrect. Instead, the cached set needs to be projected onto the displayFrame for the overridden layer. * When rendering the cached set and computing the physicalDisplay rectangle, instead of passing in the framebuffer space bounds offset by mBounds, pass in the framebuffer space content offset by mBounds. Otherwise, this breaks simulated secondary displays: simulated secondary displays works by projecting the layer stack onto a rectangle in the middle of surface that is much narrower than the surface bounds. If the framebuffer bounds are used to compute the physicalDisplay rectangle and the cached set covers the entire secondary display, then when offset by mBounds the cached set goes offscreen. The correct rectangle to use is the framebuffer content rectangle. Bug: 185398025 Test: libcompositionengine_test Test: Simulated secondary displays Test: Wallpaper picker doesn't suddenly resize when pulling down the notification shade Change-Id: Ie7119bc42db4887b448673c0ab11fee24db664c5
Loading
Please register or sign in to comment