More so OpenGL was replaced by Vulkan by the Khronos Group, so no much viability in taking the significant effort to porting to something obsolete.
As I said, I would not know about that, I know very little about C++ and linking to dynamic libraries. Are you are saying your Linux uses this Vulkan what version and distribution would that be Janne?
Vulkan is a graphic API, like openGL or DirectX (the graphic parts of it, d3d), it's speculated that it was meant to be a next iteration of openGL, but the changes were significant enough to give it a new name and separate them. And as such to allow a 'clean break' from the openGL specification.
I perhaps oversimplified by calling openGL obsolete compared to Vulkan, openGL is being updated and maintained. The most significant difference is probably the ability to access low level graphic hardware. Similarly how D3D9 was updated to d3d10 and then 11 to 12, allwoing more and more low level access (Direct 3d is the graphics component of directX. Direct X also includes input, sound and other things).
Vulkan allows more or less similar level of access to hardware as D3D12 and probably the porting between those two is the easiest.
A lot of difference also comes from that that the lower level API leaves handilng of a lot of things to the engine and not the drivers, so unless the engine already supports all the memory management and asynchronous work, the update is even more significant.
The Linux or windows support is handled by the graphic card drivers. Both nvidia and AMD support it.
http://support.amd.com/en-us/kb-article ... Notes.aspx
So you don't need a specific distribution, only one that you can put the drivers in it. Usually the simplest will be RedHat and Ubuntu.
I don't know the support in the other driver variations that are available for linux.
A lot of game engines support the API already and there are some games that already support and playabale, like Dota2 & Doom
Some more info here: https://en.wikipedia.org/wiki/Vulkan_(API)
The main issue with porting is that after linking the libraries (the very easy part), the devs need to rewrite all the calls because of the different standard. It's hard to find a good example, because on relational databases it's all SQL, but imagine that a new relational database was added that has a totally new and unique query language, you will have to rewrite all your SQL commands to port to it.