vulkan is the better graphics api
DirectX is fine. It works. It has shipped a lot of games. But it belongs to one company on one operating system. When Microsoft decides what the API looks like, every developer follows. When they change direction, the entire industry changes direction with them. That is not a technical decision. It is a business arrangement.
Vulkan does not belong to anyone. It is an open standard maintained by Khronos, governed by a working group that includes GPU vendors, game developers, and engine teams. It runs on Windows, Linux, Android, and Nintendo Switch. It runs on phones and workstations. The same API, the same shader compiler, the same synchronization model. Write once, run on everything that has a GPU. DirectX cannot say that.
Vulkan is explicit. You manage memory. You record command buffers. You synchronize queues. DirectX 11 did these things for you, badly. It guessed when to stall the pipeline and guessed wrong often enough that developers spent years working around the driver's decisions. DirectX 12 became more explicit in response. It had to. The old model could not keep up with what modern GPUs can do.
Vulkan arrived with the right model from the start. It does not lie about what the hardware is doing. It does not insert invisible barriers. It does not move memory behind your back. If a frame is late, it is because you made it late. The API gives you the controls. You are responsible for using them.
The shader toolchain is better. SPIR-V is a binary intermediate representation that any language can target. You write shaders in GLSL or HLSL or anything else that compiles to SPIR-V. You are not locked into one shading language owned by one vendor. The compiler runs at build time, not inside the driver. You know whether your shader compiles before you ship.
Adoption took time because the API is harder to learn. That was the right tradeoff. A harder API that tells the truth is better than an easier API that hides the machine. Once you understand Vulkan, you understand how a GPU works. That knowledge transfers to any graphics API. It transfers to compute. It transfers to the next generation of hardware. DirectX knowledge transfers to the next version of DirectX and stops there.