7. External types
Types defined by the raw vulkan binding and the generated vulkan_structs
view module that the documented boost surface references but does not own. The
raw layer mirrors the Vulkan C API 1:1 and is not re-documented here — see the
Vulkan specification
for the authoritative field-by-field reference. This page anchors the labels so
the generated boost pages can link without dangling references.
7.1. Core enums
7.1.1. vulkan::VkResult
Return code for almost every Vulkan command. VK_SUCCESS is 0; negative
values are errors. The boost create_* / command wrappers run it through
vk_check — left to default they panic on a non-success code, or forward it
to a caller-supplied var result : VkResult?.
7.1.2. vulkan::VkFormat
Pixel / vertex-attribute format enum (VK_FORMAT_R8G8B8A8_UNORM, …). Passed to
image, image-view, render-pass, and swapchain creation.
7.1.3. vulkan::VkImageLayout
Image memory layout (VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, …) used in render passes and
barriers.
7.1.4. vulkan::VkPipelineBindPoint
Selects which bind point a pipeline / descriptor set binds to —
GRAPHICS or COMPUTE. The trailing bind_point argument to
cmd_bind_pipeline (defaults to GRAPHICS).
7.1.5. vulkan::VkCompareOp
Per-fragment comparison operator (LESS, LESS_OR_EQUAL, EQUAL,
GREATER_OR_EQUAL, …). Used by the depth-stencil state on a graphics
pipeline — the depth_compare_op argument to
create_graphics_pipeline_v3d (defaults to LESS_OR_EQUAL for the
standard z-buffer convention).
7.2. Core handles and aliases
7.2.1. vulkan::VkPhysicalDevice
Raw non-owning handle for a physical GPU, returned by select_physical_device
and consumed by device creation and memory queries. Has no RAII wrapper (it is
owned by the instance, not created or destroyed).
7.2.2. vulkan::VkQueue
Raw non-owning handle for a device queue, returned by get_device_queue.
Owned by the device; no separate destroy.
7.2.3. vulkan::VkMemoryPropertyFlags
Bitfield of memory-property bits (DEVICE_LOCAL, HOST_VISIBLE,
HOST_COHERENT, …) used by find_memory_type to pick a heap.
7.2.4. vulkan::VkImage
Raw non-owning handle for an image. The owning RAII wrapper is Image;
the swapchain’s images and the raw handle handed to present_frame’s
record block are bare VkImage handles.
7.2.5. vulkan::VkAccessFlags
Bitfield of memory-access bits (shader_write, transfer_read,
transfer_write, …). The source/destination access masks of a pipeline
barrier; consumed by transition_image.
7.2.6. vulkan::VkPipelineStageFlags
Bitfield of pipeline-stage bits (top_of_pipe, compute_shader,
transfer, fragment_shader, …). The source/destination stage masks of
a pipeline barrier; consumed by transition_image.
7.2.7. vulkan::VkBufferUsageFlags
Bitfield of buffer-usage bits (vertex_buffer, index_buffer,
uniform_buffer, storage_buffer, transfer_src, transfer_dst, …).
Picks how the GPU consumes a VkBuffer; consumed by create_host_buffer
and create_host_buffer_from_bytes.
7.2.8. vulkan::VkShaderStageFlags
Bitfield of shader-stage bits (vertex, fragment, compute, …). The
stage mask telling Vulkan which shader stages read a push-constant update;
consumed by cmd_push_constants.
7.2.9. vulkan::VkImageAspectFlags
Bitfield of image-aspect bits (color, depth, stencil). Selects
which aspect of an image a layout transition or descriptor applies to;
consumed by transition_image_aspect (the depth / stencil counterpart of
the color-by-default transition_image).
7.2.10. vulkan::VkImageUsageFlags
Bitfield of image-usage bits (color_attachment, depth_stencil_attachment,
sampled, transfer_src, transfer_dst, input_attachment, …). The
extra_usage parameter the offscreen-builder overloads
(build_offscreen_target, build_offscreen_depth) take on top of the
helper’s always-set base usage.
7.2.11. vulkan::VkSampleCountFlags
Bitfield of sample-count bits (_1, _2, _4, _8, …). The MSAA
sample count of an image or pipeline; consumed by build_offscreen_target,
build_offscreen_depth, and create_graphics_pipeline_dyn.
7.2.12. vulkan::VkClearValue
Union of a clear color or depth/stencil value. clear_color builds one;
record_render_pass consumes it.
7.2.13. vulkan::VkRect2D
An offset + extent rectangle. full_area builds one covering the
whole target; used as the render-pass render area.
7.2.14. vulkan::VkVertexInputBindingDescription
One per vertex buffer bound by vkCmdBindVertexBuffers: the binding slot,
the stride between vertices, and whether the rate is per-vertex or
per-instance. Consumed by create_graphics_pipeline_v3d as
vertex_bindings.
7.2.15. vulkan::VkVertexInputAttributeDescription
One per per-vertex attribute the vertex shader reads (@in @location = N):
the location, the source binding slot, the format, and the byte offset
within the vertex. Consumed by create_graphics_pipeline_v3d as
vertex_attributes.
7.2.16. vulkan::VkPhysicalDeviceFeatures2
The chained feature struct a device is created with: core features in
features, every extension feature struct hung off pNext. The
create_device overloads that take one let a caller assemble an arbitrary
chain, which is how the compute-tier creators enable coopmat, memory-priority
and timeline-semaphore features in a single vkCreateDevice.
7.3. vulkan_structs view structs
7.3.1. vulkan_structs::*
The idiomatic view structs accepted by the creators and command wrappers on
the Commands — RAII creators returning owning handle wrappers page. Each shadows the matching Vulkan
struct with daslang-friendly fields: array<T> instead of count+pointer
pairs, string instead of const char*, boost handle types instead of
raw ones, and sType filled automatically. Because they are generated 1:1
from vk.xml, their fields are documented field-by-field in the
Vulkan specification;
see Overview for the view-struct mechanism.