20.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.
20.7.1. Core enums
20.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?.
20.7.1.2. vulkan::VkFormat
Pixel / vertex-attribute format enum (VK_FORMAT_R8G8B8A8_UNORM, …). Passed to
image, image-view, render-pass, and swapchain creation.
20.7.1.3. vulkan::VkColorSpaceKHR
Color space of a presentation surface (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, …).
Reported by surface-format queries and recorded on the swapchain.
20.7.1.4. vulkan::VkImageLayout
Image memory layout (VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, …) used in render passes and
barriers.
20.7.1.5. 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).
20.7.1.6. 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).
20.7.1.7. vulkan::VkAttachmentLoadOp
What a rendering does with an attachment’s contents on entry: CLEAR to the
clear value, LOAD to keep what the view holds, DONT_CARE. The
load_op of rendering_color_attachment and of the single-view
record_rendering.
20.7.1.8. vulkan::VkAttachmentStoreOp
What a rendering does with an attachment’s contents on exit: STORE for a
target something reads afterwards, DONT_CARE for one nothing reads (an MSAA
source after its resolve, a depth buffer no later pass samples). The
store_op of rendering_color_attachment and rendering_depth_attachment.
20.7.1.9. vulkan::VkFilter
Sampling filter (NEAREST, LINEAR) for a sampler or a scaled blit; the
filter of blit_full_image.
20.7.2. Core handles and aliases
20.7.2.1. vulkan::VkCommandBuffer
Raw handle for a command buffer. begin_one_time_commands returns one
allocated and begun; the submit_and_present pair ends, submits and frees
it. vk_value_to_boost wraps it as the non-owning CommandBuffer the
record helpers take.
20.7.2.2. vulkan::VkPipelineStageFlags2
The 64-bit synchronization2 pipeline-stage bitfield (color_attachment_output,
compute_shader, copy, blit, fragment_shader, …). Spelled as
VkPipelineStageFlags2.copy | VkPipelineStageFlags2.blit;
PIPELINE_STAGE_2_NONE is the empty mask. The stage masks of the
transition_image2 family and the acquire wait of submit2_and_present.
20.7.2.3. vulkan::VkAccessFlags2
The 64-bit synchronization2 memory-access bitfield (color_attachment_write,
shader_sampled_read, shader_storage_write, transfer_read, …);
ACCESS_2_NONE is the empty mask. The access masks of the
transition_image2 family.
20.7.2.4. 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).
20.7.2.5. vulkan::VkQueue
Raw non-owning handle for a device queue, returned by get_device_queue.
Owned by the device; no separate destroy.
20.7.2.6. vulkan::VkMemoryPropertyFlags
Bitfield of memory-property bits (DEVICE_LOCAL, HOST_VISIBLE,
HOST_COHERENT, …) used by find_memory_type to pick a heap.
20.7.2.7. 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.
20.7.2.8. 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.
20.7.2.9. 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.
20.7.2.10. 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.
20.7.2.11. 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.
20.7.2.12. 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).
20.7.2.13. 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.
20.7.2.14. 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.
20.7.2.15. vulkan::VkClearValue
Union of a clear color or depth/stencil value. clear_color builds one;
record_render_pass consumes it.
20.7.2.16. vulkan::VkRect2D
An offset + extent rectangle. full_area builds one covering the
whole target; used as the render-pass render area.
20.7.2.17. 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.
20.7.2.18. 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.
20.7.2.19. 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.
20.7.2.20. vulkan::VkGraphicsPipelineCreateInfo
The raw create info a graphics pipeline is built from: shader stages, fixed-
function state pointers, the layout, and either a renderPass or a
VkPipelineRenderingCreateInfo on pNext. set_pipeline_target and
attach_rendering_formats take one a hand-built pipeline assembles.
20.7.2.21. vulkan::VkPipelineRenderingCreateInfo
The pNext struct that names the color and depth attachment formats a
pipeline renders into when it is built without a render pass. RenderingFormats
owns one; attach_rendering_formats fills it and chains it.
20.7.3. vulkan_structs view structs
20.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 dasVulkan overview for the view-struct mechanism.