[sf] recover when layer snapshot is null

Updates to frontend may require CE to recalculate visble regions.
SF keeps track of this state using the mVisibleRegionsDirty flag.
If this flag is not set, this usually indicates the next frame consists
of buffer updates and the flag is used to skip uncessary work during
composition. However, if we fail to set this flag, we may end in a
scenario where CE uses stale data and ends up accessing a null
snapshot.
This is an unexpected scenario but instead of crashing, capture
traces to disk and recover gracefully by forcing CE to rebuild
layer stack. The traces can be used to reconstruct the scenario
which lead to the inconsistent state.

Test: presubmit
Bug: 295069311
Change-Id: I4331aef37f775ef48aab380ac082ca878f4d1708
1 file changed