Module vulkan

Module vulkan 

Source
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.
FramesInFlight
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.
OwnedBlock
A block allocation that frees itself when dropped.
RequiredDeviceFeatures
Holds all of the device features structs which can be used when creating a VulkanContext.
Swapchain
The Vulkan swapchain and associated resources.
SyncCommands
A utility for synchronously submitting commands to the GPU.
UniformBuffer
A CPU accessible buffer with some convenience functions for uploading per-frame data.
VulkanContext
The Vulkan context is the logical handle for all Vulkan operations within the app.

Enums§

AcquireImageStatus
FrameStatus
PresentImageStatus

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.