

As far as I know it's not in Ubuntu at the moment.īefore you continue with all of this work, I wanted to raise the subject of alternatives.

It's a wrapper on top of glslang the official compiler from Khronos and adds some useful features like preprocessor directive (read: #include). Glslc (or shaderc) is a glsl to spir-v compiler. I don't know if Vulkan hpp is but it's only an header so it may be possible to add it in 3rdparty/ directory. Vulkan is already provided in Ubuntu as far as I can tell, but I don't think MXE has it. It requires 3 new dependencies : Vulkan obviously, Vulkan hpp (a C++ wrapper that reduces vulkan verbosity) and glslc. This part is the one which is almost finished. This would ensure that it's properly working for various hardware. I'm planning to integrate Vulkan into warzone 2100 in 2 steps : the first one is bringing a working Vulkan backend which lacks texture mipmap levels and hence only support bilinear and not trilinear filter.

This means generating such texture with a third party tool like nvidia-texture-Tools as part of build process and then loading them with a lib (like gli which is a header only lib). The "correct" solution is to provide textures as dds or ktx file which are composed of a binary header and raw Texel data. It's possible to write a loop averaging texels for power of 2 textures but it's tedious and non power of 2 textures may require some hack. There is however an issue : mipmaps need to be generated outside of Vulkan. I mostly finished rewriting the vulkan code on top of the wrap_gl branch (it works on Intel but not on amd/nvidia due to rgb format support missing on the latters) it makes vulkan implementation less invasive and doesn't touch rendering algorithm.
