Vulkan semaphore opaque fd support

This CL adds Vulkan semaphore opaque fd support. It associates guest fd
with host fd by creating a guest mem file and write the host fd into it.
However, they are not 1 to 1 especially when dup() is used on guest fd,
which results in fd leaks.

It fixes dEQP VK must-pass opaque_fd tests, though.

BUG: 123905820

+ Patch up on_vkCreateSemaphore to keep extension structs when
on Android.

Change-Id: Id7d2b4e0e66d08db51d4407883ace819ec1c1a32
3 files changed