summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/api.cpp
diff options
context:
space:
mode:
author Marin Shalamanov <shalamanov@google.com> 2020-06-23 14:56:15 +0200
committer Marin Shalamanov <shalamanov@google.com> 2020-06-26 11:57:01 +0200
commit40270c68ae95e5bd7338893dccf7dcd64c529445 (patch)
tree9230b837956f46d852fec5f973094ebefb50ee7c /vulkan/libvulkan/api.cpp
parent1c43429785fb9adda0726b5480a59f476d066e83 (diff)
[SF] Intersect layers with display frame not bounds
Currently when we test if a layer is visible we intersect the tranformed visible region with the display bounds. This is not correct because the display bounds match the size of the the framebuffer, and transform is mapping from viewport to frame. That's why instead we should use frame. The problem occurs when we are rendering UI with limited width (using config_maxUiWidth in the framework) on a limited framebuffer (using ro.surface_flinger.max_graphics_width). For example if the UI and framebuffer are limited to 1080p and display size is 2160p, we have bounds=1080p, frame=2160p, viewport=1080p, transform=scaling x2 (by definition transform maps the viewport to the frame). If we transform a rect from the viewport space (i.e. layer space) Test: atest libsurfaceflinger_unittest Test: atest atest libcompositionengine_test Test: manually check that b/159595100 doesn't reproduce Bug: 159595100 Change-Id: I08d22fb5041abe6bd5ee00697c33bec281f94b91
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
0 files changed, 0 insertions, 0 deletions