Expand description
Vulkan API internals.
§Vulkan API internals.
§Stack memory
Ash expects slices, which we don’t generally have available. We cope with this requirement by the combination of the following ways:
- temporarily allocating
Vec
on heap, where overhead is permitted - growing temporary local storage
§Framebuffers and Render passes
Render passes are cached on the device and kept forever.
Framebuffers are also cached on the device, but they are removed when any of the image views (they have) gets removed. If Vulkan supports image-less framebuffers, then the actual views are excluded from the framebuffer key.
§Fences
If timeline semaphores are available, they are used 1:1 with wgpu-hal fences.
Otherwise, we manage a pool of VkFence
objects behind each hal::Fence
.
!
Modules§
Structs§
- User data needed by
instance::debug_utils_messenger_callback
. - Set of internal capabilities, which don’t show up in the exposed device geometry, but affect the code paths taken internally.
- Semaphores for forcing queue submissions to run in order.
- The semaphores needed to use one image in a swapchain.
- Temp 🔒Miscellaneous allocation recycling pool for
CommandAllocator
. - The properties related to the validation layer needed for the DebugUtilsMessenger for their workarounds
- Workaround flags.
Enums§
- The
Api::Fence
type forvulkan::Api
.
Constants§
Functions§
- Returns
crate::DeviceError::Lost
or panics if thedevice_lost_panic
feature flag is enabled. - Returns
crate::DeviceError::OutOfMemory
or panics if theoom_panic
feature flag is enabled. - Returns
crate::DeviceError::Unexpected
or panics if theinternal_error_panic
feature flag is enabled. - Maps
- Maps
- Maps
- Maps
- Maps
- Maps
- Maps