This covers gl and sw. sw32 should be trivial (just haven't done it), but glsl will take a little. Vulkan will use it.