General structure of a Vulkan program?

I have been looking at Vulkan for a while now, but I cannot seem to make sense out of it all.
There are two questions:
[ul]
[li]What does a basic Vulkan application consist of?
[/li][li]What parts are really necessary to make the application working, and why?
[/li][/ul]
Vulkan appears to be well-documented, contrary to most of its alternatives but I still cannot really comprehend the structure, most of it seems so random and cryptic.

Thank you!

Tim

It’s not clear what you mean by what it “consist[sic] of.” There are plenty of Vulkan tutorial sites online that can point you in the direction of the Vulkan equivalent of “Hello, World”. Did you not find these, or did you not understand something about them?

I have been looking at every tutorial I can find, including the official resources on GitHub. Most of these use c++, which I am fairly weak at. I thought it might help me if I understood the “bigger picture” without having to read every single book out there.

Thank you

It’s like most games:

init();
while(!closed){
   update();
   render();
}
teardown();

in init you would setup everything you need to render, create the instance, device, swapchain, renderpass, pipeline, allocate memory for the vbo and ubo, allocate textures, etc.

in update you get input from the user and update internal state,

in render you grab the next swapchain image wait on its fence, update the ubo, etc.; and render to the image

in teardown you wait on device and destroy it all.