Really nice, I like the screenshots, but you will have to change the front-facing API a lot if you want this to work with multithreading.
I had a browse through your repository, it looks like you already have all the vulkan and gl objects you need, so adding things like queries, fences, events, semaphores, compute shaders etc. is already possible from the back-API
First of you need event/fence objects at the top level.
I have some design documents with abstract designs for a multithreaded pipeline
https://docs.google.com/document/d/1LGW ... 9HGNA/edit# (assets)
https://docs.google.com/document/d/1WA8 ... czXqs/edit# (common shaders for OpenGL and Vulkan, requires the assets pipeline)
https://docs.google.com/document/d/1OLf ... BG_x4/edit# (very poor and abstract)
The split into CPU objects (non-renderable) and GPU objects (not-easily-modifiable) is very handy as it allows for letting go of doubly used RAM (for textures and meshes for example).
What is cool with a multithreaded pipeline is that you can possibly introduce overlapped IO (async file IO) and really enable proper resource streaming.
These plans are completely public domain, you dont even have to acknowledge if you use them or derive something from them.
P.S. Under Vulkan are you using dedicated memory allocations for render-target textures, especially the depth buffer?