Expand description
This module defines traits, structs, and functions to interact with a Vulkan device.
The primary entrypoint is the VulkanContext which can be initialized with a glfw::Window.
Most applications use the FramesInFlight to manage double/triple buffered rendering as it handles the synchronization with the swapchain and provides the useful Frame abstraction for submitting a freshly recorded CommandBuffer on each frame.
Modules§
- raii
- RAII wrappers for Vulkan objects.
Structs§
- Allocator
- The Vulkan device memory allocator.
- Block
- Allocators return blocks of memory that can be used for Vulkan operations.
- CPUBuffer
- A CPU accessible buffer with some convenience functions for uploading data.
- Frame
- A Frame is guaranteed to be synchronized such that no two frames with the same frame_index can be in-flight on the GPU at the same time.
- Frames
InFlight - The fundamental synchronization mechanism for an application with N “frames in flight” where frame K’s graphics command buffer can be recorded while frames K+1, K+2, … K+N are all in-progress rendering on the GPU.
- Instance
- The logical Vulkan instance.
- Owned
Block - A block allocation that frees itself when dropped.
- Required
Device Features - Holds all of the device features structs which can be used when creating a VulkanContext.
- Swapchain
- The Vulkan swapchain and associated resources.
- Sync
Commands - A utility for synchronously submitting commands to the GPU.
- Uniform
Buffer - A CPU accessible buffer with some convenience functions for uploading per-frame data.
- Vulkan
Context - The Vulkan context is the logical handle for all Vulkan operations within the app.
Enums§
Functions§
- spirv_
module - Creates a Vulkan shader module from the provided SPIR-V code.
- spirv_
words - Convert an unaligned slice of bytes into an aligned chunk of u32 words.