vulkan

Vulkan graphics API bindings for Kit - low-level GPU compute and graphics

Files

FileDescription
.editorconfigEditor formatting configuration
.gitignoreGit ignore rules for build artifacts and dependencies
.tool-versionsasdf tool versions (Zig, Kit)
LICENSEMIT license file
README.mdThis file
examples/basic-usage.kitBasic usage example
examples/buffer-memory.kitBuffer and memory management example
examples/compute-pipeline.kitCompute pipeline example
examples/device-enumeration.kitDevice enumeration and query example
examples/graphics-pipeline.kitGraphics pipeline example
examples/synchronization.kitSynchronization primitives example
kit.tomlPackage manifest with metadata and dependencies
src/vulkan.kitMain Vulkan FFI wrapper with 401 functions
tests/vulkan.test.kitComprehensive tests for Vulkan bindings
zig/kit_vulkan.zigZig FFI implementation with 35 unit tests
zig/kit_ffi.zigFFI infrastructure with KitValue types

Dependencies

No Kit package dependencies.

Installation

kit add gitlab.com/kit-lang/packages/kit-vulkan.git

Usage

import Kit.Vulkan as V

main = fn =>
  println "=== KitVulkan Example ==="

  # Create instance - defer ensures cleanup even if errors occur
  println "Creating Vulkan instance…"
  instance = V.create-instance "MyKitApp"
  if Result.is-ok? instance then
    println "Instance created successfully"
    defer V.destroy-instance

    # Get Vulkan version
    println "Querying Vulkan version…"
    version = V.get-version
    if Result.is-ok? version then
      println "Version retrieved"

    # Enumerate available devices
    println "Enumerating devices…"
    devices = V.enumerate-devices
    if Result.is-ok? devices then
      println "Devices enumerated"

    # Get device properties
    println "Querying device properties…"
    props = V.get-device-properties 0
    if Result.is-ok? props then
      println "Device properties retrieved"
    else
      println "Failed to create Vulkan instance"

  println "=== Example Complete ==="
  println "Instance will be automatically destroyed by defer"

main

Development

Running Examples

Run examples with the interpreter:

kit run examples/basic-usage.kit --allow=ffi

Compile examples to a native binary:

kit build examples/basic-usage.kit -o basic-usage --allow=ffi && ./basic-usage

Running Tests

Run the test suite:

kit test tests/vulkan.test.kit --allow=ffi

Run the test suite with coverage:

kit test tests/vulkan.test.kit --allow=ffi --coverage

Running kit dev

Run the standard development workflow (format, check, test):

kit dev --no-spinner

This will:

  1. Format and check source files in src/
  2. Run tests in tests/ with coverage

Checking Examples

Verify all examples work with both interpreter and compiler:

kit check examples --allow=ffi --no-spinner

This will:

  1. Run each example with kit run
  2. Compile each example with kit build
  3. Execute compiled binaries
  4. Compare outputs

Generating Documentation

Generate API documentation from doc comments:

kit doc

Note: Kit sources with doc comments (##) will generate HTML documents in docs/*.html

Cleaning Build Artifacts

Remove generated files, caches, and build artifacts:

kit task clean

Note: Defined in kit.toml.

Local Installation

To install this package locally for development:

kit install .

This installs the package to ~/.kit/packages/@kit/vulkan/, making it available for import as Kit.Vulkan in other projects.

API Coverage

The kit-vulkan package provides comprehensive Vulkan 1.3 API coverage with 401 functions including:

  • Instance and Device Management: create-instance, create-device, destroy-instance, destroy-device
  • Command Buffers: create-command-pool, allocate-command-buffer, begin-command-buffer, end-command-buffer
  • Shader Modules: create-shader-module, create-shader-stage
  • Pipelines: create-graphics-pipeline, create-compute-pipeline, create-pipeline-layout
  • Descriptors: create-descriptor-set-layout, create-descriptor-pool, allocate-descriptor-set
  • Render Pass: create-render-pass, create-framebuffer
  • Synchronization: create-fence, create-semaphore, create-event, create-timeline-semaphore
  • Memory and Buffers: create-buffer, allocate-memory, map-memory, unmap-memory
  • Ray Tracing: create-ray-tracing-pipeline, build-acceleration-structure
  • Advanced Features: Video encoding/decoding, optical flow, cooperative matrices, mesh shaders

All resource-creating functions have @defer-required attributes specifying their cleanup functions for proper resource management.

License

This package is released under the MIT License - see LICENSE for details.

Vulkan and the Vulkan API specification are released under the Apache License 2.0.

Exported Functions & Types

get-version

Get the Vulkan API version information

create-instance

Create a Vulkan instance with the given application name

destroy-instance

Destroy the current Vulkan instance and clean up resources

enumerate-instance-layers

Enumerate available Vulkan instance layers

enumerate-instance-extensions

Enumerate available Vulkan instance extensions

is-layer-available

Check if a specific layer is available

is-extension-available

Check if a specific extension is available

create-instance-with-version

Create instance with specific API version

create-instance-with-validation

Create instance with validation layers

get-instance-proc-addr

Get instance procedure address

get-device-proc-addr

Get device procedure address

get-instance-version

Get instance version

get-physical-device-present-support

Get physical device present support

enumerate-physical-device-groups

Enumerate physical device groups

get-tool-properties

Get physical device tool properties

enumerate-devices

Returns a JSON array of device information

get-device-properties

Returns a JSON object with device capabilities

get-queue-family-properties

Returns JSON array of queue family info

find-queue-family

Returns queue family index as Int

get-memory-properties

Returns JSON object with memory types and heaps

get-device-features

Get physical device features

get-format-properties

Get physical device format properties

get-image-format-properties

Get physical device image format properties

enumerate-device-extensions

Enumerate physical device extensions

get-subgroup-properties

Get physical device subgroup properties

get-external-buffer-properties

Get physical device external buffer properties

get-external-fence-properties

Get physical device external fence properties

get-external-semaphore-properties

Get physical device external semaphore properties

create-device

Create a logical device for a physical device with specified queue family

destroy-device

Destroy the current logical device

get-device-queue

Get device queue handle

get-device-memory-commitment

Get device memory commitment

get-device-queue-family-count

Get device queue family count

get-device-memory-heap-count

Get device memory heap count

get-sparse-memory-requirements-count

Get device sparse memory requirements count

create-command-pool

Create a command pool for a queue family

destroy-command-pool

Destroy the current command pool

allocate-command-buffer

Allocate a command buffer from the pool

begin-command-buffer

Begin recording a command buffer

end-command-buffer

End recording a command buffer

reset-command-buffer

Reset a command buffer

allocate-secondary-command-buffer

Allocate secondary command buffers (for render pass subpasses)

begin-secondary-command-buffer

Begin recording a secondary command buffer

cmd-execute-secondary-commands

Execute secondary command buffers within primary

free-command-buffers

Free command buffers

trim-command-pool

Trim command pool (free unused memory)

reset-command-pool

Reset command pool

get-command-buffer-opaque-capture-address

Get command buffer opaque capture address

set-command-buffer-device-mask

Set command buffer device mask (for device groups)

create-buffer

Create a buffer with specified size and usage flags

destroy-buffer

Destroy the current buffer

create-buffer-dedicated

Create buffer with dedicated memory allocation

create-buffer-view

Create buffer view (typed buffer access)

destroy-buffer-view

Destroy buffer view

cmd-copy-buffer-to-image-regions

Copy buffer to image with specific regions

allocate-memory

Allocate device memory

free-memory

Free allocated device memory

bind-buffer-memory

Bind buffer to device memory

map-memory

Map device memory for CPU access

unmap-memory

Unmap device memory

flush-memory

Flush mapped memory ranges

invalidate-memory

Invalidate mapped memory ranges

get-buffer-memory-requirements

Get buffer memory requirements

get-image-sparse-memory-requirements

Get image sparse memory requirements

flush-mapped-memory-ranges

Flush mapped memory ranges

invalidate-mapped-memory-ranges

Invalidate mapped memory ranges with list

allocate-memory-dedicated

Allocate memory with dedicated requirements

bind-buffer-memory-offset

Bind buffer to device memory with offset

bind-image-memory-offset

Bind image to device memory with offset

map-memory-range

Map memory range (specific offset and size)

import-memory

Import device memory from external handle

export-memory

Export device memory to external handle

get-memory-win32-handle

Get memory win32 handle (Windows)

get-memory-fd

Get memory fd handle (Linux/Unix)

allocate-memory-with-priority

Allocate device memory with priorities

get-device-memory-opaque-capture-address

Get device memory opaque capture address

get-buffer-opaque-capture-address

Get buffer opaque capture address

get-buffer-device-address

Get buffer device address

create-image

Create a 2D image

destroy-image

Destroy the current image

create-image-view

Create an image view

destroy-image-view

Destroy the current image view

bind-image-memory

Bind image memory

get-image-memory-requirements

Get image memory requirements

get-image-subresource-layout

Get image subresource layout

create-image-view-with-type

Create image view with specific type

create-image-view-with-components

Create image view with component mapping

create-image-view-3d

Create 3D image view from 3D image

get-image-view-handle

Get image view handle

cmd-copy-image-array-layers

Copy image 2D array layers

create-image-with-layout

Create image with initial layout

create-fence

Create a fence (signaled = true for initial signaled state)

destroy-fence

Destroy the current fence

wait-for-fence

Wait for fence with timeout in nanoseconds

reset-fence

Reset fence to unsignaled state

create-semaphore

Create a semaphore

destroy-semaphore

Destroy the current semaphore

create-event

Create an event

destroy-event

Destroy the current event

set-event

Set an event

reset-event

Reset an event

wait-for-fences

Wait for multiple fences

reset-fences

Reset multiple fences

create-timeline-semaphore

Create a timeline semaphore

signal-timeline-semaphore

Signal a timeline semaphore

wait-timeline-semaphore

Wait for timeline semaphore

create-semaphore-win32

Create semaphore with win32 handle (Windows external)

create-fence-win32

Create fence with win32 handle (Windows external)

import-semaphore

Import semaphore from external handle

import-fence

Import fence from external handle

get-fence-win32-handle

Get fence win32 handle (Windows external)

get-fence-fd

Get fence fd (Linux/Unix external)

get-semaphore-win32-handle

Get semaphore win32 handle (Windows external)

get-semaphore-fd

Get semaphore fd (Linux/Unix external)

signal-event

Signal event

get-event-status

Get event status

queue-submit

Submit command buffer to queue with optional semaphores

queue-wait-idle

Wait for queue to become idle

device-wait-idle

Wait for device to become idle

get-queue-family-index

Get queue family index from queue

queue-bind-sparse

Bind sparse memory in queue

queue-submit-list

Queue submit with command buffer list

get-queue-timestamp-pool

Get queue timestamp pool results

create-shader-module

Create a shader module from SPIR-V bytecode

destroy-shader-module

Destroy the current shader module

create-shader-module-from-file

Create shader module from spirv file

create-shader-stage

Create shader stage info (vertex/fragment/compute)

get-shader-module-status

Get shader module compilation status

validate-spirv

Validate SPIR-V shader code

create-shader-module-from-glsl

Create shader module from GLSL source

compile-glsl-to-spirv

Compile GLSL to SPIR-V

get-shader-compilation-log

Get shader module compilation log

set-shader-module-handle

Set shader module capture replay handle

create-compute-pipeline

Create a compute pipeline

destroy-pipeline

Destroy the current pipeline

create-pipeline-layout

Create a pipeline layout

destroy-pipeline-layout

Destroy the current pipeline layout

cmd-bind-pipeline

Bind compute pipeline to command buffer

cmd-dispatch

Dispatch compute workgroups

cmd-dispatch-indirect

Dispatch compute with indirect buffer

cmd-dispatch-base-compute

Dispatch compute with base (device group)

compute-queue-wait-idle

Wait for compute queue idle

get-compute-queue-timestamp

Get compute queue timestamp

cmd-dispatch-base-instance

Dispatch compute with base instance

get-compute-workgroup-size

Get compute shader workgroup size

set-compute-pipeline-state

Set compute pipeline dynamic state

get-compute-queue-family-index

Get compute queue family index

create-pipeline-cache

Create a pipeline cache for storing compiled pipeline data

destroy-pipeline-cache

Destroy the current pipeline cache

get-pipeline-cache-data

Get pipeline cache data for serialization

merge-pipeline-caches

Merge pipeline cache data from another cache

create-graphics-pipeline-cached

Create a pipeline using a pipeline cache

create-pipeline-library-vertex-input

Create graphics pipeline library (vertex input)

create-pipeline-library-fragment-output

Create graphics pipeline library (fragment output)

create-pipeline-from-libraries

Create graphics pipeline from libraries

merge-pipeline-cache-from

Merge pipeline caches

create-compute-pipeline-cached

Create compute pipeline with cache

destroy-pipeline-cache-with-data

Destroy pipeline cache with data retrieval

get-pipeline-executable-properties

Get pipeline executable properties

get-pipeline-executable-stats

Get pipeline executable statistics

create-descriptor-set-layout

Create a descriptor set layout

destroy-descriptor-set-layout

Destroy the current descriptor set layout

create-descriptor-pool

Create a descriptor pool

destroy-descriptor-pool

Destroy the current descriptor pool

allocate-descriptor-set

Allocate a descriptor set

update-descriptor-set-buffer

Update descriptor set with buffer info

cmd-bind-descriptor-sets

Bind descriptor sets to command buffer

cmd-push-constants

Push constants to command buffer

free-descriptor-sets

Free descriptor sets

update-descriptor-set-with-bindings

Update descriptor set with multiple bindings

create-descriptor-set-layout-with-flags

Create descriptor set layout with binding flags

reset-descriptor-pool

Reset descriptor pool

cmd-push-descriptor-set

Push descriptor set (immediate descriptor update)

cmd-push-descriptor-set-with-template

Push descriptor set with template

create-descriptor-update-template

Create descriptor update template

update-descriptor-set-with-template

Update descriptor set with template

destroy-descriptor-update-template

Destroy descriptor update template

reset-descriptor-pool-flags

Reset descriptor pool with flags

allocate-descriptor-sets-variable

Allocate descriptor sets with variable counts

get-descriptor-set-layout-support

Get descriptor set layout support

create-render-pass

Create a render pass

destroy-render-pass

Destroy the current render pass

create-framebuffer

Create a framebuffer

destroy-framebuffer

Destroy the current framebuffer

cmd-begin-render-pass

Begin a render pass

cmd-end-render-pass

End a render pass

cmd-next-subpass

Next render pass subpass (advance to next subpass)

cmd-begin-render-pass-inline

Begin render pass with inline contents

cmd-begin-render-pass-secondary

Begin render pass with secondary command buffers

cmd-begin-render-pass-attachments

Begin render pass with explicit attachments

cmd-begin-render-pass-device-group

Begin render pass with device group render areas

cmd-end-render-pass-resolve

End render pass with resolve attachments

cmd-next-subpass-contents

Next subpass with contents (inline or secondary)

cmd-begin-render-pass-transform-feedback

Begin render pass with transform feedback

cmd-copy-buffer

Copy data between buffers

cmd-fill-buffer

Fill buffer with 32-bit value

cmd-update-buffer

Update buffer with data

cmd-copy-buffer-to-image

Copy buffer to image

cmd-copy-image-to-buffer

Copy image to buffer

cmd-blit-image

Blit image (copy with scaling/filtering)

cmd-copy-image

Copy image (direct copy without scaling)

cmd-copy-query-pool-results

Copy query pool results to buffer

cmd-execute-commands

Execute secondary command buffers

cmd-copy-buffer-regions

Copy buffer regions (multiple regions)

cmd-resolve-image-multisample

Resolve image multisampled to single-sampled

cmd-update-buffer-array

Update buffer with data array

cmd-fill-buffer-regions

Fill buffer regions with different values

cmd-pipeline-barrier

Insert memory barrier

cmd-buffer-memory-barrier

Insert buffer memory barrier

cmd-image-memory-barrier

Insert image memory barrier

cmd-pipeline-barrier-multiple

Insert memory barrier with multiple buffers

cmd-wait-events

Wait for events in command buffer

cmd-set-event

Set event in command buffer

cmd-reset-event-cmd

Reset event in command buffer

cmd-full-pipeline-barrier

Full pipeline barrier (all stages)

cmd-all-memory-barrier

Memory barrier for all memory

cmd-global-memory-barrier

Global memory barrier (device-wide)

cmd-pipeline-barrier-dependency

Dependency info barrier (Vulkan 1.3 style)

create-query-pool

Create a query pool for timestamps

destroy-query-pool

Destroy the current query pool

cmd-reset-query-pool

Reset query pool

cmd-begin-query

Begin query

cmd-end-query

End query

cmd-write-timestamp

Write timestamp

get-query-results

Get query results

create-query-pool-with-stats

Create a query pool with statistics

copy-query-pool-results-with-flags

Copy query results with availability status

create-query-pool-pipeline-stats

Create query pool for pipeline statistics

get-query-results-64bit

Get query pool results with 64-bit values

cmd-write-timestamp-64bit

Write timestamp with 64-bit precision

cmd-begin-query-flags

Begin query with specific flags

cmd-begin-transform-feedback

Begin transform feedback (geometry shader output capture)

cmd-end-transform-feedback

End transform feedback

cmd-bind-transform-feedback-buffers

Bind transform feedback buffers

cmd-draw-indirect-byte-count

Draw indirect byte count (transform feedback)

create-swapchain

Create a swapchain for presenting

destroy-swapchain

Destroy the current swapchain

acquire-next-image

Acquire next swapchain image

queue-present

Queue presentation

get-swapchain-images

Get swapchain images

get-surface-capabilities

Get swapchain surface capabilities

get-surface-formats

Get swapchain surface formats

get-present-modes

Get swapchain present modes

recreate-swapchain

Recreate swapchain with new size

create-xcb-surface

Create surface from XCB window (Linux)

create-xlib-surface

Create surface from Xlib window (Linux)

create-wayland-surface

Create surface from Wayland window (Linux)

create-win32-surface

Create surface from Win32 window (Windows)

destroy-surface

Destroy surface

get-physical-device-surface-support

Get physical device surface support

set-object-name

Set debug object name (for validation layers)

cmd-begin-debug-label

Begin debug label region

cmd-end-debug-label

End debug label region

cmd-insert-debug-marker

Insert debug marker

set-object-tag

Set debug object tag (for validation layers)

get-object-name

Get debug object name (query)

cmd-insert-debug-label-color

Cmd insert debug label with color

set-debug-utils-object-name

Set debug utils object name

queue-begin-debug-label

Queue begin debug label

queue-end-debug-label

Queue end debug label

queue-insert-debug-label

Queue insert debug label

create-sampler

Create a sampler for texture sampling

destroy-sampler

Destroy the current sampler

update-descriptor-set-image

Update descriptor set with image sampler

create-sampler-anisotropic

Create sampler with anisotropy

create-sampler-with-border

Create sampler with border color

create-sampler-ycbcr

Create sampler YCbCr conversion

update-descriptor-set-immutable-sampler

Update descriptor set with immutable sampler

create-graphics-pipeline

Create a graphics pipeline with vertex and fragment shaders

set-vertex-input

Set vertex input format (binding, location, format, offset)

set-primitive-topology

Set primitive topology (triangles, lines, points)

set-primitive-restart

Enable/disable primitive restart

set-viewport

Set viewport (x, y, width, height, min_depth, max_depth)

set-scissor

Set scissor rectangle (x, y, width, height)

set-rasterizer-discard

Enable rasterizer discard

set-polygon-mode

Set polygon mode (fill, line, point)

set-line-width

Set line width

set-cull-mode

Set cull mode (none, front, back, front_and_back)

set-front-face

Set front face winding order (cw, ccw)

set-depth-clamp

Enable depth clamp

set-depth-bias

Set depth bias (constant_factor, clamp, slope_factor)

set-depth-test

Enable depth test

set-depth-compare-op

Set depth compare operation (never, less, equal, less_or_equal, greater, not_equal, greater_or_equal, always)

set-depth-write

Enable depth write

set-depth-bounds

Set depth bounds (min, max)

set-depth-bounds-test

Enable depth bounds test

set-stencil-test

Enable stencil test

set-stencil-ops

Set stencil operations (fail_op, pass_op, depth_fail_op, compare_op)

set-color-blend-enable

Enable blending for color attachment

set-color-blend-factors

Set color blend factors (src_color_blend_factor, dst_color_blend_factor, src_alpha_blend_factor, dst_alpha_blend_factor)

set-color-blend-op

Set color blend operation (add, subtract, reverse_subtract, min, max)

set-color-write-mask

Set color write mask (r, g, b, a)

set-blend-constants

Set blend constants (r, g, b, a)

set-logic-op-enable

Enable logic operations

set-logic-op

Set logic operation (clear, and, copy, etc.)

set-patch-control-points

Set tessellation patch control points

set-tessellation-domain-origin

Set tessellation domain origin

set-rasterization-samples

Set rasterization samples count

set-sample-shading

Set sample shading enable

cmd-set-viewport

Set viewport dynamically in command buffer

cmd-set-scissor

Set scissor dynamically in command buffer

cmd-set-line-width

Set line width dynamically in command buffer

cmd-set-depth-bias

Set depth bias dynamically in command buffer

cmd-set-blend-constants

Set blend constants dynamically in command buffer

cmd-set-depth-bounds

Set depth bounds dynamically in command buffer

cmd-set-stencil-compare-mask

Set stencil compare mask dynamically

cmd-set-stencil-write-mask

Set stencil write mask dynamically

cmd-set-stencil-reference

Set stencil reference dynamically

cmd-set-primitive-topology

Set primitive topology dynamically

cmd-set-cull-mode

Set cull mode dynamically

cmd-set-front-face

Set front face dynamically

cmd-set-vertex-input

Set vertex input dynamically

cmd-draw

Draw vertices (vertex_count, instance_count, first_vertex, first_instance)

cmd-draw-indexed

Draw indexed (index_count, instance_count, first_index, vertex_offset, first_instance)

cmd-draw-indirect

Draw indirect (buffer_offset, draw_count, stride)

cmd-draw-indexed-indirect

Draw indexed indirect (buffer_offset, draw_count, stride)

cmd-bind-vertex-buffer

Bind vertex buffer (binding, offset)

cmd-bind-index-buffer

Bind index buffer (offset, index_type)

cmd-draw-indirect-count

Draw indirect count (with draw count from buffer)

cmd-draw-indexed-indirect-count

Draw indexed indirect count

cmd-draw-multi

Draw multi-instance (instanced rendering with first instance)

cmd-draw-indexed-multi

Draw indexed multi-instance

cmd-draw-indirect-task

Draw indirect task (task shader indirect)

cmd-draw-indexed-indirect-task

Draw indexed indirect task (task shader indexed indirect)

cmd-dispatch-indirect-buffer

Dispatch compute indirect (with workgroup count from buffer)

cmd-dispatch-workgroup-memory

Dispatch compute with workgroup memory

cmd-clear-color-image

Clear color image (r, g, b, a)

cmd-clear-depth-stencil-image

Clear depth stencil image (depth, stencil)

cmd-clear-attachments

Clear attachments (color, depth, stencil)

cmd-resolve-image

Resolve multisampled image to single sample

cmd-generate-mipmaps

Generate mipmaps for an image

get-memory-properties

Returns JSON object with memory types and heaps

get-memory-properties

Returns JSON object with memory types and heaps

create-ray-tracing-pipeline

Create ray tracing pipeline

destroy-ray-tracing-pipeline

Destroy ray tracing pipeline

build-acceleration-structure

Build acceleration structure (TLAS/BLAS)

destroy-acceleration-structure

Destroy acceleration structure

cmd-trace-rays

Trace rays (command buffer recording)

get-ray-tracing-shader-group-handles

Get ray tracing shader group handles

create-shader-binding-table

Create shader binding table

destroy-shader-binding-table

Destroy shader binding table

copy-acceleration-structure

Copy acceleration structure (clone)

write-acceleration-structure-properties

Write acceleration structure properties to buffer

compact-acceleration-structure

Compact acceleration structure (reduce memory)

get-ray-tracing-properties

Get ray tracing pipeline properties

create-ray-tracing-pipeline-libraries

Create ray tracing pipeline with libraries

get-ray-tracing-capture-replay-handles

Get ray tracing capture replay shader group handles

build-acceleration-structure-scratch

Build acceleration structure with scratch buffer

build-acceleration-structure-indirect

Build acceleration structure indirect

create-video-session-decode

Create video session (decode)

create-video-session-encode

Create video session (encode)

destroy-video-session

Destroy video session

cmd-decode-video

Video decode operation

cmd-encode-video

Video encode operation

create-optical-flow-session

Create optical flow session

destroy-optical-flow-session

Destroy optical flow session

cmd-optical-flow-execute

Execute optical flow operation

bind-optical-flow-image

Bind optical flow image

get-cooperative-matrix-properties

Get cooperative matrix properties

create-cooperative-matrix-pipeline

Create cooperative matrix pipeline

cmd-cooperative-matrix-multiply

Execute cooperative matrix multiply

cmd-cooperative-matrix-load

Load cooperative matrix tile

create-mesh-pipeline

Create mesh pipeline (task + mesh shaders)

destroy-mesh-pipeline

Destroy mesh pipeline

cmd-draw-mesh-tasks

Draw mesh tasks (task shader dispatch)

cmd-draw-mesh-tasks-indirect

Draw mesh tasks indirect

cmd-draw-mesh-tasks-indirect-count

Draw mesh tasks indirect count (with count buffer)

cmd-set-mesh-pipeline

Set mesh shader pipeline

set-task-workgroup-size

Set task shader workgroup size

set-mesh-workgroup-size

Set mesh shader workgroup size

set-fragment-shading-rate

Set fragment shading rate

cmd-set-fragment-shading-rate

Set fragment shading rate dynamically in command buffer

set-multiview-view-mask

Set multiview configuration

set-multiview-correlation-mask

Set multiview correlation mask

set-fragment-density-map

Set fragment density map attachment

cmd-set-fragment-density-map-size

Set fragment density map size dynamically

set-memory-priority

Set memory priority (0.0 - 1.0)

get-memory-budget

Get memory budget info

set-device-memory-pageable

Set device memory as pageable

set-validation-features

Set validation features (best practices, sync validation)

create-debug-utils-messenger

Set debug utils messenger

destroy-debug-utils-messenger

Destroy debug utils messenger

submit-debug-message

Submit debug utils message

set-profiling-lock

Set profiling lock (for GPU profilers like RenderDoc, Nsight)

cmd-begin-conditional-rendering

Begin conditional rendering

cmd-end-conditional-rendering

End conditional rendering

release-display

Release display from headless swapchain

acquire-profiling-lock

Acquire profiling lock for profiling tools

calibrate-device-timestamp

Calibrate device timestamp (sync CPU/GPU timestamps)

get-calibrateable-time-domains

Get calibrateable time domains

bind-sparse-buffer-memory

Bind sparse buffer memory (sparse binding queue)

bind-sparse-image-memory

Bind sparse image memory

bind-sparse-image-opaque-memory

Bind sparse image opaque memory

queue-sparse-bind-submit

Queue sparse binding submit

get-device-group-peer-memory-features

Get device group peer memory features

bind-buffer-memory-device-group

Bind buffer memory to device group

bind-image-memory-device-group

Bind image memory to device group

set-device-group-render-pass-begin

Set device group render pass begin info

set-device-group-command-buffer-begin

Set device group command buffer begin info

cmd-dispatch-base

Dispatch base (device group)

get-device-group-present-capabilities

Get device group present capabilities

acquire-next-image-device-group

Acquire next image for device group

queue-present-device-group

Queue present for device group