Update physicalDisplay when rendering CachedSet to include offset.

Fixes the following scenario: imagine a layer stack containing:
1. A cached set extending from (0, 200) x (1080 x 3080), and
2. An animating status bar extending from (0, 0) x (1080, 200)
is presented onto a display that is 1080 pixels wide and 3080 pixels
tall.

Currently when rendering a cached set, the clip is set to the layer
stack content, and the physicalDisplay is set to the buffer bounds. But
RenderEngine's interface works by mapping from the clip rectangle to the
physicalDisplay rectangle. But, since the cached set is not fullscreen,
that means that the cached set's top left corner is rendered at (0,
200), which is not correct. Instead, the physicalDisplay rectangle needs
to have the same dimensions as the framebuffer content rectangle so that
there's no unintended scaling, but the rectangle must be offset by the
bounding box of the cached set so that the content correctly fills the
output buffer.

Bug: 185278446
Test: lockscreen doesn't flicker

Change-Id: I480a5661e93178c050538f397e630c25fea5a2da
2 files changed