summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/api.cpp
diff options
context:
space:
mode:
author Vishnu Nair <vishnun@google.com> 2022-02-10 14:49:09 -0800
committer Vishnu Nair <vishnun@google.com> 2022-02-19 00:08:04 +0000
commitd2aaab14d2fd52a6c6a0c928a55bf000f6c538ca (patch)
tree8ae9ece2f949f1734de7a468b271912c180fede0 /vulkan/libvulkan/api.cpp
parent9cb96607229431793f38825387cef5ac561db49c (diff)
SurfaceView: Avoid destination frame updates on multiple threads 2/2
The caller such as SurfaceView can optionally apply destination frame changes if they wish to synchronize buffer scale with other scales in the hierarchy. This is hard to synchronize if the buffer scale changes, since in fixed scaling mode we want the destination frame to be applied when a buffer of the new size is queued. This approach is brittle because SurfaceView does not have control over the buffer production and the app can get into a scenario where there is scaled incorrectly. Fix this by configuring BBQ to always apply destination frame changes or always defer to the caller. If the scaling mode is freeze, then BBQ will set a flag to ignore the destination frame. This allows us to synchronize destination frame changes with scale applied by a parent and avoid unwanted scaling if the scaling mode changes to freeze. Test: atest SurfaceViewTest Test: go/wm-smoke Bug: 217973491 Change-Id: I0d214e3f7e45c38e6222a2947ca354c36a202ff5
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
0 files changed, 0 insertions, 0 deletions