I'm intending to add a Vulkan backend to Warzone 2100. Obviously the goal is not to reduce cpu overhead since the game doesn't draw a lot of thing on screen at the moment (there's around 100-200 draw call per frame), but to improve current code architecture. WZ codebase could be described as state oriented : everything is stored in globals and almost every functions have side effect. This was likely guided by the constraints of C before 99 but it makes hard to reason on code by devs and compiler.
Vulkan API makes multithreading of graphic code possible and I'd like to take advantage of this and extract some code that can be threaded in wz2100 code. It's likely to improve wz2100 code by making more explicit which variables a given function is using or modifying, having more pure functions...To ensure compatibility with gl such functions would be run in sequential mode if it does touch openGL context.