Vulkan: implement timeout for vkAcquireNextImageKHR

ANativeWindow api allows to set dequeueBuffer timeout through binder IPC. It's
difficult to change IGBP api to merge dequeueBuffer and setting timeout into one
binder without reving up the HAL. Thus we just cache the timeout at swapchain
and only update when the timeout set in vkAcquireNextImageKHR has changed.

To be noted, IGBP api takes nsecs_t which is backed by int64_t, and it uses -1
as the hint to be blocking. So the uint64_t timeout set in vkAcquireNextImageKHR
will be trimmed internally.

Bug: 146534593
Test: dEQP-VK.wsi.android.swapchain.acquire.too_many
Test: dEQP-VK.wsi.android.swapchain.acquire.too_many_timeout
Change-Id: I9bd73a17dba8d86994c5863082534a082317f700
1 file changed