freedreno: Support EXT_memory_object
This extension is part of EXT_external_objects, which also includes EXT_semaphore. The complete support is being tracked by MR!4565, however that one is marked WIP because EXT_semaphore depends on freedreno synchobjs which is still not supported (AFAIK, @flto is working on it, please correct me if I'm wrong).
So, the motivation for sending this partial support for EXT_external_objects is:
EXT_memory_object is already useful in that textures can be shared between Vulkan and GL even though synchronization is suboptimal (having to rely on glFlush(), vkDeviceWaitIdle() and the like).
It is already testable using piglit tests under
bin/ext_external_object-*. Tests using EXT_semaphore will be skipped.
We would like to get feedback already and work on fixes in the meantime while EXT_semaphore is not yet supported in upstream mesa.