We normally recompute layer visibility when a layer gets its first
buffer; before then it's treated as invisible. Sideband layers never
get a buffer (as far as SurfaceFlinger knows), so never became
visible. Now we also recompute visibility when a layer gets a new
sideband stream.
Bug:
17752511
Change-Id: I84e150f196eb2eb7bcd2616248e5e3fa73624809
if (android_atomic_acquire_cas(true, false, &mSidebandStreamChanged) == 0) {
// mSidebandStreamChanged was true
mSidebandStream = mSurfaceFlingerConsumer->getSidebandStream();
+ recomputeVisibleRegions = true;
+
+ const State& s(getDrawingState());
+ return s.transform.transform(Region(Rect(s.active.w, s.active.h)));
}
Region outDirtyRegion;