What is a VkInstance?
The Vulkan context, used to access drivers
It serves as the entry point for all Vulkan functions.
What does VkPhysicalDevice represent?
A GPU. Used to query physical GPU details, like features, capabilities, memory size, etc.
It provides information about the available physical devices on the system.
What is the purpose of VkDevice?
The ‘logical’ GPU context that you actually execute things on
It is created from a VkPhysicalDevice.
Define VkBuffer.
A chunk of GPU visible memory
It is used for storing vertex data and other resources.
What is a VkImage?
A texture you can write to and read from
It is used for storing image data.
What does VkPipeline hold?
Holds the state of the GPU needed to draw, including:
* shaders
* rasterization options
* depth settings
It is essential for rendering operations.
What is the role of VkRenderPass?
Holds information about the images you are rendering into
All drawing commands must be executed inside a render pass.
What does VkFrameBuffer do?
Holds the target images for a render pass
It is used in legacy vkguide.
What is a VkCommandBuffer?
Encodes GPU commands
All execution on the GPU must be encoded in a VkCommandBuffer.
What is the function of a VkQueue?
Execution ‘port’ for commands
Different queues may allow different types of commands.
What does a VkDescriptorSet hold?
Holds the binding information that connects shader inputs to data such as VkBuffer resources and VkImage textures
It acts as a set of GPU-side pointers.
What is the purpose of VkSwapchainKHR?
Holds the images for the screen
It allows rendering into a visible window.
What is the role of a VkSemaphore?
Synchronizes GPU to GPU execution of commands
It is used for syncing multiple command buffer submissions.
What does a VkFence do?
Synchronizes GPU to CPU execution of commands
It indicates if a command buffer has finished execution on the GPU.
What is the first step in the high level Vulkan application flow?
Engine initialization
This involves creating a VkInstance and querying available VkPhysicalDevice handles.
What is involved in asset initialization?
Initializing resources needed for rendering, including:
* loading materials
* creating VkPipeline objects
* uploading vertex data into VkBuffer
* uploading textures into VkImage
This step prepares the assets for rendering.
What is the first action in the render loop?
Ask the VkSwapchainKHR for an image to render to
This initiates the rendering process.
What must you do after allocating a VkCommandBuffer?
Start the command buffer
This allows you to write commands into it.
What happens after you end the VkRenderPass?
If there is nothing more to render, you end the VkCommandBuffer
This finalizes the drawing commands.
What is the purpose of presenting the image rendered to the screen?
To display the result of the rendering
A semaphore is used to ensure rendering is finished before presentation.