Break QueuePresentKHR into more manageable pieces
Instead of QueuePresentKHR doing everything, let's decompose to:
QueuePresentKHR
-> PresentOneSwapchain (considers just one swapchain in the list)
-> SetSwapchainSurfaceDamage (does KHR_incremental_present)
-> SetSwapchainFrameTimestamp (does GOOGLE_display_timing)
As part of the decomposition, stop trying to be so clever about reusing
allocations for KHR_incremental_present; it's not worth threading it
through the list of swapchains. Also just use a vector; it's not worth
using the app-provided allocator from the device scope.
Note some issues with the multi-swapchain case in general. We should
also refine the fd handling to be leak-free by construction; handling
raw fds is asking for trouble.
Bug: b/255376900
Change-Id: Iaa66b7b1bfd2be2a1fda578fcb8141607be1e360
1 file changed