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.