Crate gfx_backend_vulkan[][src]

Expand description

Vulkan backend internals.

Stack memory

Most of the code just passes the data through. The only problem that affects all the pieces is related to memory allocation: Vulkan expects slices, but the API gives us Iterator. So we end up using a lot of inplace_it to get things collected on stack.

Framebuffers

One part that has actual logic is related to framebuffers. HAL is modelled after image-less framebuffers. If the the Vulkan implementation supports it, we map it 1:1, and everything is great. If it doesn’t expose KHR_imageless_framebuffer, however, than we have to keep all the created framebuffers internally in an internally-synchronized map, per B::Framebuffer.

Structs

Device
Instance
PhysicalDevice
PhysicalDeviceFeatures

Aggregate of the vk::PhysicalDevice*Features structs used by gfx.

PhysicalDeviceInfo

Information gathered about a physical device. Used to

Queue
QueueFamily
RawInstance
Version

Helper wrapper around vk::make_version.

Enums

Backend
DebugMessenger

Type Definitions

RawCommandQueue