Vulkan was designed as a graphics and compute API. Its main purpose is to allow us to generate dynamic images using a graphics hardware produced by various vendors. We already know how to create and manage resources and use them as a source of data for shaders. We learned about different shader stages and pipeline objects controlling the state of rendering or dispatching computational work. We also know how to record command buffers and order operations into render passes. One last step we must learn about is how to utilize this knowledge to render images.
In this chapter, we will see what additional commands we can record and what commands need to be recorded so we can properly render a geometry or issue computational operations. We will also learn about the drawing commands and organizing them in our source code in such a way so that it maximizes the performance of our application. Finally, we will...