Available on
vulkan
only.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§
- adapter 🔒
- command 🔒
- conv 🔒
- device 🔒
- drm 🔒
Unix and non-Apple and non- target_family="wasm"
- instance 🔒
- sampler 🔒
- Sampler cache for Vulkan backend.
- semaphore_
list 🔒 - Definition of the
SemaphoreList
type.
Structs§
- Acceleration
Structure - Adapter
- Api
- Attachment
Key 🔒 - Bind
Group - Bind
Group Layout - Buffer
- Color
Attachment 🔒Key - Command
Buffer - Command
Encoder - Compute
Pipeline - Create
Device Callback Args - Arguments to the
CreateDeviceCallback
. - Create
Instance Callback Args - Arguments to the
CreateInstanceCallback
. - Debug
Utils 🔒 - Debug
Utils Create Info - Debug
Utils Messenger User Data - User data needed by
instance::debug_utils_messenger_callback
. - Depth
Stencil 🔒Attachment Key - Device
- Device
Extension 🔒Functions - Device
Shared 🔒 - Framebuffer
Key 🔒 - Identified
Texture 🔒View - A texture view paired with its identity.
- Instance
- Instance
Shared - Physical
Device Features - Features supported by a [
vk::PhysicalDevice
] and its extensions. - Pipeline
Cache - Pipeline
Layout - Private
Capabilities 🔒 - Set of internal capabilities, which don’t show up in the exposed device geometry, but affect the code paths taken internally.
- Query
Set - Queue
- RawTlas
Instance 🔒 - RayTracing
Device 🔒Extension Functions - Relay
Semaphores 🔒 - Semaphores for forcing queue submissions to run in order.
- Render
Pass 🔒Key - Render
Pipeline - Resource
Identity 🔒 - A unique identifier for a resource of type
T
. - Resource
Identity 🔒Factory - Generates unique IDs for each resource of type
T
. - Sampler
- Surface
- Surface
Texture - Swapchain 🔒
- Swapchain
Acquire 🔒Semaphore - Semaphore used to acquire a swapchain image.
- Swapchain
Present 🔒Semaphores - Temp 🔒
- Miscellaneous allocation recycling pool for
CommandAllocator
. - Temp
Texture 🔒View Key - Texture
- Texture
View - Validation
Layer 🔒Properties - The properties related to the validation layer needed for the DebugUtilsMessenger for their workarounds
- Workarounds
- Workaround flags.
Enums§
- Buffer
Memory 🔒Backing - Extension
Fn 🔒 - Fence
- The
Api::Fence
type forvulkan::Api
. - Shader
Module
Constants§
Functions§
- get_
lost_ 🔒err - Returns
crate::DeviceError::Lost
or panics if thedevice_lost_panic
feature flag is enabled. - get_
oom_ 🔒err - Returns
crate::DeviceError::OutOfMemory
. - get_
unexpected_ 🔒err - Returns
crate::DeviceError::Unexpected
or panics if theinternal_error_panic
feature flag is enabled. - map_
device_ 🔒oom_ err - Maps
- map_
host_ 🔒device_ oom_ and_ ioca_ err - Maps
- map_
host_ 🔒device_ oom_ and_ lost_ err - Maps
- map_
host_ 🔒device_ oom_ err - Maps
- map_
host_ 🔒oom_ and_ ioca_ err - Maps
- map_
host_ 🔒oom_ err - Maps
- map_
pipeline_ 🔒err - Maps
Type Aliases§
- Create
Device Callback - Callback to allow changing the vulkan device creation parameters.
- Create
Instance Callback - Callback to allow changing the vulkan instance creation parameters.