The long and short of it is that Vulkan and other modern graphics APIs are extremely explicit. As the game developer, you tell the GPU exactly what resources are being used, when they’re available, and how work is synchronized. Once you’ve built those command buffers, the driver mostly just submits them to the hardware “fire and forget” style basically.
Older APIs like OpenGL and Direct3D 11 were much higher level. You described what you wanted to draw, and the graphics driver figured out resource transitions, synchronization, and a lot of the scheduling behind the scenes. That made them easier to use but also added CPU overhead and made performance less predictable.
That makes sense. I’m still new to all this so I’m kinda learning as I go.
The long and short of it is that Vulkan and other modern graphics APIs are extremely explicit. As the game developer, you tell the GPU exactly what resources are being used, when they’re available, and how work is synchronized. Once you’ve built those command buffers, the driver mostly just submits them to the hardware “fire and forget” style basically.
Older APIs like OpenGL and Direct3D 11 were much higher level. You described what you wanted to draw, and the graphics driver figured out resource transitions, synchronization, and a lot of the scheduling behind the scenes. That made them easier to use but also added CPU overhead and made performance less predictable.