Proposal: Use Translation for Compatibility.
Describe the request
Some larger code projects have developed translation layers into wrappers that will convert API calls in real time. This allows entire programs written and compiled for a specific graphics API to be effectively run in an entirely different API. A significant barrier to the VulkanMod project's overall compatibility is other projects making their own calls to the expected OpenGL application we are no longer running. A translation layer may be able to catch all of these calls and prevent crashes by converting them into compatible Vulkan calls.
A plausible example translator we might be able to use is Zink. It's an MIT licensed part of the mature and widely used Mesa 3D project. Zink converts OpenGL calls to Vulkan in real time. The only catch for our purposes is that the code is not Java. That potentially means creating a library of JNI wrapper functions to incorporate the C/C++ code into our overall project, which is not an insignificant task.
If some form of a wrapper is agreed upon and implemented into VulkanMod, this would provide an avenue to potentially obtain compatibility with the entire Incompatible mods list. This could also enable support for shaders.
Edit: I would like to leave a brief additional thought. Since Zink is itself an OpenGL driver, it may be possible that we can leverage minecraft's existing LWJGL JNI and treat Zink as Minecraft's OpenGL driver for our Java VM.