Vulkan and USC 0.9.0 (Mir)
-
@alan_g - firstly I'd like to say I've really appreciated reading your posts on this forum and Canonical's - they're very informative and comprehensive.
I was looking to use the Mir Client API in an app using Vulkan.
Your comment above about shipping the buffer back to the "server" (presumably that's Mir/USC?) worries me.. what do you mean? What do GLES2/3 do?
Back notes:
I quickly discovered the Qt5 plugin doesn't support Vulkan, and trying GLFW3 failed - apparently it briefly allowed an experimental build for Mir in 3.1
I can see how the mirclient plugin in Qt v5.12.9 uses the Mir Client library API to drive the connection, and there's some example code on the net, so I can hopefully get myself a surface to draw into with Vulkan.
I'm on an ancient version of Mir in my OnePlus 5 - USC 0.9.0! Even so, it's inside "OTA-22" which was built this year.
-
@duncancragg firstly, the mirclient API has been deprecated for five years and I've done nothing with it in that time. So you will be very much on your own in attempting this.
Next, by way of context, Vulkan, GL, GLE, GLES, etc are ways for a client to form graphical content ("buffers") to pass to the server. (Yes, "the server" would be Lomiri, etc.)
For GL* there were changes to Mesa to submit the buffers using mirclient.
When Canonical dropped Unity8 and related projects there had been some initial work done for using mirclient via Vulkan, but it was never merged.
At a minimum, you'd need to update and complete the mirclient support in the Vulkan driver. But I don't know if that would be enough.
What you may have seen elsewhere, is that Vulkan applications using Wayland work with Mir. That doesn't help you with getting Vulkan working on mirclient. (And I suspect that is a lot more work than you hoped for.)
-
@alan_g Well, thanks for such a quick and detailed response! Much appreciated.
You're right, I'm not about to embark on any such huge project, especially with deprecated code!
So - the Zillion dollar question - could you suggest if there is any more direct way to get Vulkan working on my OnePlus 5 (or OnePlus 6), with or without my deprecated Mir, mirclient, etc., without doing such a huge project?
Secondly, I presume Wayland isn't near yet, so any idea when ubports/UT/Mir may catch up with Wayland and Vulkan support?
-
Sorry, your phone has a niche graphics stack based on libhybris and android hardware drivers. The only folks that understand that are working on Ubuntu Touch (or other Halium based phone OSs).
I have no direct knowledge of the current status of Wayland (or Vulkan) support over this graphics stack. Better to ask someone that works on it.
-
@alan_g I really appreciate your responses, so if you could just quickly clarify your previous answer: do you mean there was work done inside /Mesa/ to support mirclient's Vulkan buffers? Why does Mesa need to change to suit mirclient and GL/Vulkan anyway - doesn't it have a generic Vulkan buffer-shuffling API?
-
@duncancragg said in Vulkan and USC 0.9.0 (Mir):
do you mean there was work done inside /Mesa/ to support mirclient's Vulkan buffers
Vulkan, like GL and GLES, is an API.
Mesa is an implementation of graphics API specifications like GL, GLES and Vulkan.
For each API work is needed to support mirclient.