Module vulkan

Source
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§

AccelerationStructure
Adapter
Api
AttachmentKey 🔒
BindGroup
BindGroupLayout
Buffer
ColorAttachmentKey 🔒
CommandBuffer
CommandEncoder
ComputePipeline
CreateDeviceCallbackArgs
Arguments to the CreateDeviceCallback.
CreateInstanceCallbackArgs
Arguments to the CreateInstanceCallback.
DebugUtils 🔒
DebugUtilsCreateInfo
DebugUtilsMessengerUserData
User data needed by instance::debug_utils_messenger_callback.
DepthStencilAttachmentKey 🔒
Device
DeviceExtensionFunctions 🔒
DeviceShared 🔒
FramebufferKey 🔒
IdentifiedTextureView 🔒
A texture view paired with its identity.
Instance
InstanceShared
PhysicalDeviceFeatures
Features supported by a [vk::PhysicalDevice] and its extensions.
PipelineCache
PipelineLayout
PrivateCapabilities 🔒
Set of internal capabilities, which don’t show up in the exposed device geometry, but affect the code paths taken internally.
QuerySet
Queue
RawTlasInstance 🔒
RayTracingDeviceExtensionFunctions 🔒
RelaySemaphores 🔒
Semaphores for forcing queue submissions to run in order.
RenderPassKey 🔒
RenderPipeline
ResourceIdentity 🔒
A unique identifier for a resource of type T.
ResourceIdentityFactory 🔒
Generates unique IDs for each resource of type T.
Sampler
Surface
SurfaceTexture
Swapchain 🔒
SwapchainAcquireSemaphore 🔒
Semaphore used to acquire a swapchain image.
SwapchainPresentSemaphores 🔒
Temp 🔒
Miscellaneous allocation recycling pool for CommandAllocator.
TempTextureViewKey 🔒
Texture
TextureView
ValidationLayerProperties 🔒
The properties related to the validation layer needed for the DebugUtilsMessenger for their workarounds
Workarounds
Workaround flags.

Enums§

BufferMemoryBacking 🔒
ExtensionFn 🔒
Fence
The Api::Fence type for vulkan::Api.
ShaderModule

Constants§

MAX_TOTAL_ATTACHMENTS 🔒
MILLIS_TO_NANOS 🔒

Functions§

get_lost_err 🔒
Returns crate::DeviceError::Lost or panics if the device_lost_panic feature flag is enabled.
get_oom_err 🔒
Returns crate::DeviceError::OutOfMemory.
get_unexpected_err 🔒
Returns crate::DeviceError::Unexpected or panics if the internal_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§

CreateDeviceCallback
Callback to allow changing the vulkan device creation parameters.
CreateInstanceCallback
Callback to allow changing the vulkan instance creation parameters.