What's the difference between the Gen12 renderer and DX12? Are we doing DX12 or not?
TL;DRGen12 is just a name, Vulkan was chosen as the better fit, and there are no plans for DX12 now, though the engine could support another API if needed.
There's no immediate reason for DX12. We started planning this renderer long before we'd necessarily settled 100% on Vulkan, and we just had to pick a name. DX12 has a numbering system. At the time, Vulkan and the other APIs didn't have a numbering system. Everyone understood what DX12 was in the industry. So we went with something that had the number 12 in it. It helps pin it down to this piece of tech. And if you call it the new renderer, then the next one is going to be the new, new renderer and the better renderer. So it's called Gen12. But in the end, we decided that Vulkan was the better choice for us because of the Linux aspect and a few other [things]; from a technology point of view, it made it slightly better for us. But it wasn't a big deal. We could have gone DX12. But at the moment, there's no pressing reason for us to implement DX12. We could. It wouldn't be a huge effort. Put a couple of guys on it for some number of months, and you would eventually pop that out. But unless we have a reason to believe there was some new technology on DX12, or some platform or something that required that, there is no reason for us to really go there at the moment. So for now, no plans for DirectX 12, but the engine is set up in a way that we very much could implement another API if we needed to. If the successor of Vulkan comes along, or DX13 is the thing that we need to make the world better, then we will do that.