luv

Workshop wiki

abi.lisp

hal/vulkan/abi.lisp

system luv · 255 definitions · on GitHub

The Vulkan ABI that luv's backend currently speaks.

This is intentionally ordinary, incomplete CFFI treaty text: constants, symbolic enum/bitfield pieces, structs, and raw entry points. New Vulkan declarations belong here only when a concrete backend operation needs them.

in-package#:luv.vulkan
defparameter+portability-enumeration-extension-name+

VK_KHR_portability_enumeration

defparameter+swapchain-extension-name+

VK_KHR_swapchain

defparameter+surface-capabilities-2-extension-name+

VK_KHR_get_surface_capabilities2

defparameter+present-timing-extension-name+

VK_EXT_present_timing

defparameter+present-id-2-extension-name+

VK_KHR_present_id2

defparameter+debug-utils-extension-name+

VK_EXT_debug_utils

defparameter+mesh-shader-extension-name+

VK_EXT_mesh_shader

Symbolic pieces of the Vulkan vocabulary we currently speak.

cffi:defcenum
result:int32
:success0
:not-ready1
:incomplete5
:error-out-of-date-khr-1000001004
:error-present-timing-queue-full-ext-1000208000
:suboptimal-khr1000001003
cffi:defcenum
structure-type:uint32
:application-info0
:instance-create-info1
:device-queue-create-info2
:device-create-info3
:memory-allocate-info5
:buffer-create-info12
:semaphore-create-info9
:image-create-info14
:image-view-create-info15
:shader-module-create-info16
:pipeline-shader-stage-create-info18
:pipeline-vertex-input-state-create-info19
:pipeline-input-assembly-state-create-info20
:pipeline-viewport-state-create-info22
:pipeline-rasterization-state-create-info23
:pipeline-multisample-state-create-info24
:pipeline-depth-stencil-state-create-info25
:pipeline-color-blend-state-create-info26
:pipeline-dynamic-state-create-info27
:graphics-pipeline-create-info28
:compute-pipeline-create-info29
:pipeline-layout-create-info30
:sampler-create-info31
:descriptor-set-layout-create-info32
:descriptor-pool-create-info33
:descriptor-set-allocate-info34
:write-descriptor-set35
:framebuffer-create-info37
:render-pass-create-info38
:command-pool-create-info39
:command-buffer-allocate-info40
:command-buffer-begin-info42
:render-pass-begin-info43
:image-memory-barrier45
:physical-device-features-21000059000
:physical-device-timeline-semaphore-features1000207000
:semaphore-type-create-info1000207002
:semaphore-wait-info1000207004
:submit-info-21000314004
:semaphore-submit-info1000314005
:command-buffer-submit-info1000314006
:physical-device-synchronization-2-features1000314007
:physical-device-mesh-shader-features-ext1000328000
:physical-device-surface-info-2-khr1000119000
:surface-capabilities-2-khr1000119001
:physical-device-present-timing-features-ext1000208000
:swapchain-timing-properties-ext1000208001
:swapchain-time-domain-properties-ext1000208002
:present-timings-info-ext1000208003
:present-timing-info-ext1000208004
:past-presentation-timing-info-ext1000208005
:past-presentation-timing-properties-ext1000208006
:past-presentation-timing-ext1000208007
:present-timing-surface-capabilities-ext1000208008
:surface-capabilities-present-id-2-khr1000479000
:present-id-2-khr1000479001
:physical-device-present-id-2-features-khr1000479002
:swapchain-create-info-khr1000001000
:present-info-khr1000001001
:debug-utils-messenger-callback-data-ext1000128003
:debug-utils-messenger-create-info-ext1000128004
cffi:defcenum
image-type:uint32
:1d0
:2d1
:3d2
cffi:defcenum
format:uint32:allow-undeclared-valuest
:r8-unorm9
:r8g8-unorm16
:r8g8b8a8-unorm37
:r8g8b8a8-srgb43
:b8g8r8a8-unorm44
:b8g8r8a8-srgb50
:r16g16-uint81
:r16g16-sfloat83
:r16g16b16a16-sfloat97
:r32g32-sfloat103
:r32g32b32-sfloat106
:r32g32b32a32-sfloat109
:d32-sfloat126
cffi:defcenum
image-tiling:uint32
:optimal0
:linear1
cffi:defcenum
sharing-mode:uint32
:exclusive0
:concurrent1
cffi:defcenum
index-type:uint32
:uint160
:uint321
cffi:defcenum
image-layout:uint32
:undefined0
:general1
:color-attachment-optimal2
:depth-stencil-attachment-optimal3
:shader-read-only-optimal5
:transfer-src-optimal6
:transfer-dst-optimal7
:present-src-khr1000001002
cffi:defcenum
:11
cffi:defcenum
image-view-type:uint32
:1d0
:2d1
:3d2
cffi:defcenum
component-swizzle:uint32
:identity0
cffi:defcenum
descriptor-type:uint32
:sampler0
:combined-image-sampler1
:sampled-image2
:storage-image3
:uniform-buffer6
:storage-buffer7
cffi:defcenum
filter:uint32
:nearest0
:linear1
cffi:defcenum
sampler-mipmap-mode:uint32
:nearest0
:linear1
cffi:defcenum
sampler-address-mode:uint32
:repeat0
:mirrored-repeat1
:clamp-to-edge2
cffi:defcenum
compare-op:uint32
:never0
:less1
:equal2
:less-or-equal3
:greater4
:not-equal5
:greater-or-equal6
:always7
cffi:defcenum
stencil-op:uint32
:keep0
:zero1
:replace2
:increment-and-clamp3
:decrement-and-clamp4
:invert5
:increment-and-wrap6
:decrement-and-wrap7
cffi:defcenum
vertex-input-rate:uint32
:vertex0
:instance1
cffi:defcenum
border-color:uint32
:float-transparent-black0
cffi:defcenum
primitive-topology:uint32
:triangle-list3
:triangle-strip4
cffi:defcenum
polygon-mode:uint32
:fill0
cffi:defcenum
front-face:uint32
:counter-clockwise1
:clockwise0
cffi:defcenum
blend-factor:uint32
:zero0
:one1
:one-minus-src-alpha7
cffi:defcenum
blend-op:uint32
:add0
cffi:defcenum
logic-op:uint32
:copy3
cffi:defcenum
attachment-load-op:uint32
:load0
:clear1
:dont-care2
cffi:defcenum
attachment-store-op:uint32
:store0
:dont-care1
cffi:defcenum
subpass-contents:uint32
:inline0
cffi:defcenum
dynamic-state:uint32
:viewport0
:scissor1
cffi:defcenum
pipeline-bind-point:uint32
:graphics0
:compute1
cffi:defcenum
command-buffer-level:uint32
:primary0
:secondary1
cffi:defcenum
color-space:uint32:allow-undeclared-valuest
:srgb-nonlinear-khr0
cffi:defcenum
present-mode:uint32:allow-undeclared-valuest
:immediate-khr0
:mailbox-khr1
:fifo-khr2
:fifo-relaxed-khr3
cffi:defcenum
time-domain:uint32:allow-undeclared-valuest
:device0
:clock-monotonic1
:clock-monotonic-raw2
:query-performance-counter3
:present-stage-local-ext1000208000
:swapchain-local-ext1000208001
cffi:defcenum
surface-transform:uint32
:identity#x1
:rotate-90#x2
:rotate-180#x4
:rotate-270#x8
:horizontal-mirror#x10
:horizontal-mirror-rotate-90#x20
:horizontal-mirror-rotate-180#x40
:horizontal-mirror-rotate-270#x80
:inherit#x100
cffi:defcenum
composite-alpha:uint32
:opaque#x1
:pre-multiplied#x2
:post-multiplied#x4
:inherit#x8
cffi:defbitfield
instance-create-flags:uint32
:enumerate-portability#x1
cffi:defbitfield
present-stage-flags:uint32
:queue-operations-end#x1
:request-dequeued#x2
:image-first-pixel-out#x4
:image-first-pixel-visible#x8
cffi:defbitfield
past-presentation-timing-flags:uint32
:allow-partial-results#x1
:allow-out-of-order-results#x2
cffi:defbitfield
present-timing-info-flags:uint32
:present-at-relative-time#x1
:present-at-nearest-refresh-cycle#x2
cffi:defbitfield
swapchain-create-flags:uint32
:present-id-2-khr#x40
:present-timing-ext#x200
cffi:defbitfield
debug-utils-message-severity-flags:uint32
:verbose#x1
:info#x10
:warning#x100
:error#x1000
cffi:defbitfield
debug-utils-message-type-flags:uint32
:general#x1
:validation#x2
:performance#x4
:device-address-binding#x8
cffi:defbitfield
queue-flags:uint32
:graphics#x1
:compute#x2
:transfer#x4
:sparse-binding#x8
:video-decode#x20
:video-encode#x40
cffi:defbitfield
image-usage-flags:uint32
:transfer-src#x1
:transfer-dst#x2
:sampled#x4
:storage#x8
:color-attachment#x10
:depth-stencil-attachment#x20
cffi:defbitfield
buffer-usage-flags:uint32
:transfer-src#x1
:transfer-dst#x2
:uniform#x10
:storage#x20
:index#x40
:vertex#x80
cffi:defbitfield
shader-stage-flags:uint32
:vertex#x1
:fragment#x10
:compute#x20
:task-ext#x40
:mesh-ext#x80
cffi:defbitfield
cull-mode-flags:uint32
:front#x1
:back#x2
cffi:defbitfield
color-component-flags:uint32
:r#x1
:g#x2
:b#x4
:a#x8
cffi:defbitfield
memory-property-flags:uint32
:device-local#x1
:host-visible#x2
:host-coherent#x4
:host-cached#x8
:lazily-allocated#x10
:protected#x20
cffi:defbitfield
command-pool-create-flags:uint32
:transient#x1
:reset-command-buffer#x2
:protected#x4
cffi:defcenum
semaphore-type:uint32
:binary0
:timeline1
cffi:defbitfield
command-buffer-usage-flags:uint32
:one-time-submit#x1
:render-pass-continue#x2
:simultaneous-use#x4
cffi:defbitfield
image-aspect-flags:uint32
:color#x1
:depth#x2
:stencil#x4
:plane-0#x10
:plane-1#x20
cffi:defbitfield
access-flags:uint32
:depth-stencil-attachment-read#x200
:depth-stencil-attachment-write#x400
:color-attachment-read#x80
:color-attachment-write#x100
:shader-read#x20
:shader-write#x40
:transfer-read#x800
:transfer-write#x1000
cffi:defbitfield
pipeline-stage-flags:uint32
:top-of-pipe#x1
:vertex-shader#x8
:early-fragment-tests#x100
:late-fragment-tests#x200
:fragment-shader#x80
:color-attachment-output#x400
:compute-shader#x800
:transfer#x1000
:bottom-of-pipe#x2000

Synchronization2 stage masks are 64 bits wide. The stages luv uses all keep their Vulkan 1.0 bit positions.

cffi:defbitfield
pipeline-stage-flags-2:uint64
:top-of-pipe#x1
:vertex-shader#x8
:early-fragment-tests#x100
:late-fragment-tests#x200
:fragment-shader#x80
:color-attachment-output#x400
:compute-shader#x800
:transfer#x1000
:bottom-of-pipe#x2000
:all-commands#x10000
cffi:defbitfield
dependency-flags:uint32
:by-region#x1
cffi:defbitfield
surface-transform-flags:uint32
:identity#x1
:rotate-90#x2
:rotate-180#x4
:rotate-270#x8
:horizontal-mirror#x10
:horizontal-mirror-rotate-90#x20
:horizontal-mirror-rotate-180#x40
:horizontal-mirror-rotate-270#x80
:inherit#x100
cffi:defbitfield
composite-alpha-flags:uint32
:opaque#x1
:pre-multiplied#x2
:post-multiplied#x4
:inherit#x8
defconstant+queue-family-ignored+#xffffffff
defvkstructextension-properties
extension-name
:array:char256
spec-version:uint32
defvkstructapplication-info
:s-type:application-info
p-application-name:pointer
application-version:uint32
p-engine-name:pointer
engine-version:uint32
api-version:uint32
defvkstructinstance-create-info
:s-type:instance-create-info
flagsinstance-create-flags
p-application-info:pointer
enabled-layer-count:uint32
pp-enabled-layer-names:pointer
enabled-extension-count:uint32
pp-enabled-extension-names:pointer
defvkstructdebug-utils-messenger-create-info-ext
:s-type:debug-utils-messenger-create-info-ext
flags:uint32
message-severitydebug-utils-message-severity-flags
message-typedebug-utils-message-type-flags
pfn-user-callback:pointer
p-user-data:pointer
defvkstructdebug-utils-messenger-callback-data-ext
:s-type:debug-utils-messenger-callback-data-ext
flags:uint32
p-message-id-name:pointer
message-id-number:int32
p-message:pointer
queue-label-count:uint32
p-queue-labels:pointer
command-buffer-label-count:uint32
p-command-buffer-labels:pointer
object-count:uint32
p-objects:pointer
defvkstructextent-3d
width:uint32
height:uint32
depth:uint32
defvkstructoffset-2d
x:int32
y:int32
defvkstructrect-2d
offset
:structoffset-2d
extent
:structextent-2d
defvkstructqueue-family-properties
queue-flagsqueue-flags
queue-count:uint32
timestamp-valid-bits:uint32
min-image-transfer-granularity
:structextent-3d

VkPhysicalDeviceFeatures is an untagged, fixed-layout Vulkan 1.0 struct. Keep the complete treaty here even though luv currently requires only SHADER-INT64: passing a shortened struct as P-ENABLED-FEATURES would let the driver read beyond our allocation.

defvkstructphysical-device-features
robust-buffer-access:uint32
full-draw-index-uint32:uint32
image-cube-array:uint32
independent-blend:uint32
geometry-shader:uint32
tessellation-shader:uint32
sample-rate-shading:uint32
dual-src-blend:uint32
logic-op:uint32
multi-draw-indirect:uint32
draw-indirect-first-instance:uint32
depth-clamp:uint32
depth-bias-clamp:uint32
fill-mode-non-solid:uint32
depth-bounds:uint32
wide-lines:uint32
large-points:uint32
alpha-to-one:uint32
multi-viewport:uint32
sampler-anisotropy:uint32
texture-compression-etc2:uint32
texture-compression-astc-ldr:uint32
texture-compression-bc:uint32
occlusion-query-precise:uint32
pipeline-statistics-query:uint32
vertex-pipeline-stores-and-atomics:uint32
fragment-stores-and-atomics:uint32
shader-tessellation-and-geometry-point-size:uint32
shader-image-gather-extended:uint32
shader-storage-image-extended-formats:uint32
shader-storage-image-multisample:uint32
shader-storage-image-read-without-format:uint32
shader-storage-image-write-without-format:uint32
shader-uniform-buffer-array-dynamic-indexing:uint32
shader-sampled-image-array-dynamic-indexing:uint32
shader-storage-buffer-array-dynamic-indexing:uint32
shader-storage-image-array-dynamic-indexing:uint32
shader-clip-distance:uint32
shader-cull-distance:uint32
shader-float64:uint32
shader-int64:uint32
shader-int16:uint32
shader-resource-residency:uint32
shader-resource-min-lod:uint32
sparse-binding:uint32
sparse-residency-buffer:uint32
sparse-residency-image-2d:uint32
sparse-residency-image-3d:uint32
sparse-residency-2-samples:uint32
sparse-residency-4-samples:uint32
sparse-residency-8-samples:uint32
sparse-residency-16-samples:uint32
sparse-residency-aliased:uint32
variable-multisample-rate:uint32
inherited-queries:uint32
defvkstructphysical-device-features-2
:s-type:physical-device-features-2
defvkstructdevice-queue-create-info
:s-type:device-queue-create-info
flags:uint32
queue-family-index:uint32
queue-count:uint32
p-queue-priorities:pointer
defvkstructdevice-create-info
:s-type:device-create-info
flags:uint32
queue-create-info-count:uint32
p-queue-create-infos:pointer
enabled-layer-count:uint32
pp-enabled-layer-names:pointer
enabled-extension-count:uint32
pp-enabled-extension-names:pointer
p-enabled-features:pointer
defvkstructmemory-type
property-flagsmemory-property-flags
heap-index:uint32
defvkstructmemory-heap
size:uint64
flags:uint32
defvkstructphysical-device-memory-properties
memory-type-count:uint32
memory-types
:array32
memory-heap-count:uint32
memory-heaps
:array16
defvkstructmemory-allocate-info
:s-type:memory-allocate-info
allocation-size:uint64
memory-type-index:uint32
defvkstructmemory-requirements
size:uint64
alignment:uint64
memory-type-bits:uint32
defvkstructbuffer-create-info
:s-type:buffer-create-info
flags:uint32
size:uint64
usagebuffer-usage-flags
sharing-modesharing-mode
queue-family-index-count:uint32
p-queue-family-indices:pointer
defvkstructimage-create-info
:s-type:image-create-info
flags:uint32
image-typeimage-type
formatformat
extent
:structextent-3d
mip-levels:uint32
array-layers:uint32
tilingimage-tiling
usageimage-usage-flags
sharing-modesharing-mode
queue-family-index-count:uint32
p-queue-family-indices:pointer
initial-layoutimage-layout
defvkstructoffset-3d
x:int32
y:int32
z:int32
defvkstructimage-subresource-layers
aspect-maskimage-aspect-flags
mip-level:uint32
base-array-layer:uint32
layer-count:uint32
defvkstructimage-subresource-range
aspect-maskimage-aspect-flags
base-mip-level:uint32
level-count:uint32
base-array-layer:uint32
layer-count:uint32
defvkstructcomponent-mapping
rcomponent-swizzle
gcomponent-swizzle
bcomponent-swizzle
acomponent-swizzle
defvkstructimage-view-create-info
:s-type:image-view-create-info
flags:uint32
image:pointer
view-typeimage-view-type
formatformat
components
subresource-range
defvkstructshader-module-create-info
:s-type:shader-module-create-info
flags:uint32
code-size:size
p-code:pointer
defvkstructpipeline-shader-stage-create-info
:s-type:pipeline-shader-stage-create-info
flags:uint32
stageshader-stage-flags
module:pointer
p-name:pointer
p-specialization-info:pointer
defvkstructcompute-pipeline-create-info
:s-type:compute-pipeline-create-info
flags:uint32
layout:pointer
base-pipeline-handle:pointer
base-pipeline-index:int32
defvkstructpipeline-vertex-input-state-create-info
:s-type:pipeline-vertex-input-state-create-info
flags:uint32
vertex-binding-description-count:uint32
p-vertex-binding-descriptions:pointer
vertex-attribute-description-count:uint32
p-vertex-attribute-descriptions:pointer
defvkstructvertex-input-binding-description
binding:uint32
stride:uint32
input-ratevertex-input-rate
defvkstructvertex-input-attribute-description
location:uint32
binding:uint32
formatformat
offset:uint32
defvkstructpipeline-input-assembly-state-create-info
:s-type:pipeline-input-assembly-state-create-info
flags:uint32
topologyprimitive-topology
primitive-restart-enable:uint32
defvkstructpipeline-viewport-state-create-info
:s-type:pipeline-viewport-state-create-info
flags:uint32
viewport-count:uint32
p-viewports:pointer
scissor-count:uint32
p-scissors:pointer
defvkstructpipeline-rasterization-state-create-info
:s-type:pipeline-rasterization-state-create-info
flags:uint32
depth-clamp-enable:uint32
rasterizer-discard-enable:uint32
polygon-modepolygon-mode
cull-modecull-mode-flags
front-facefront-face
depth-bias-enable:uint32
depth-bias-constant-factor:float
depth-bias-clamp:float
depth-bias-slope-factor:float
line-width:float
defvkstructpipeline-multisample-state-create-info
:s-type:pipeline-multisample-state-create-info
flags:uint32
rasterization-samplessample-count
sample-shading-enable:uint32
min-sample-shading:float
p-sample-mask:pointer
alpha-to-coverage-enable:uint32
alpha-to-one-enable:uint32
defvkstructstencil-op-state
fail-opstencil-op
pass-opstencil-op
depth-fail-opstencil-op
compare-opcompare-op
compare-mask:uint32
write-mask:uint32
reference:uint32
defvkstructpipeline-depth-stencil-state-create-info
:s-type:pipeline-depth-stencil-state-create-info
flags:uint32
depth-test-enable:uint32
depth-write-enable:uint32
depth-compare-opcompare-op
depth-bounds-test-enable:uint32
stencil-test-enable:uint32
front
back
min-depth-bounds:float
max-depth-bounds:float
defvkstructpipeline-color-blend-attachment-state
blend-enable:uint32
src-color-blend-factorblend-factor
dst-color-blend-factorblend-factor
color-blend-opblend-op
src-alpha-blend-factorblend-factor
dst-alpha-blend-factorblend-factor
alpha-blend-opblend-op
color-write-maskcolor-component-flags
defvkstructpipeline-color-blend-state-create-info
:s-type:pipeline-color-blend-state-create-info
flags:uint32
logic-op-enable:uint32
logic-oplogic-op
attachment-count:uint32
p-attachments:pointer
blend-constants
:array:float4
defvkstructpipeline-dynamic-state-create-info
:s-type:pipeline-dynamic-state-create-info
flags:uint32
dynamic-state-count:uint32
p-dynamic-states:pointer
defvkstructgraphics-pipeline-create-info
:s-type:graphics-pipeline-create-info
flags:uint32
stage-count:uint32
p-stages:pointer
p-vertex-input-state:pointer
p-input-assembly-state:pointer
p-tessellation-state:pointer
p-viewport-state:pointer
p-rasterization-state:pointer
p-multisample-state:pointer
p-depth-stencil-state:pointer
p-color-blend-state:pointer
p-dynamic-state:pointer
layout:pointer
render-pass:pointer
subpass:uint32
base-pipeline-handle:pointer
base-pipeline-index:int32
defvkstructpipeline-layout-create-info
:s-type:pipeline-layout-create-info
flags:uint32
set-layout-count:uint32
p-set-layouts:pointer
push-constant-range-count:uint32
p-push-constant-ranges:pointer
defvkstructsampler-create-info
:s-type:sampler-create-info
flags:uint32
mag-filterfilter
min-filterfilter
mipmap-modesampler-mipmap-mode
address-mode-usampler-address-mode
address-mode-vsampler-address-mode
address-mode-wsampler-address-mode
mip-lod-bias:float
anisotropy-enable:uint32
max-anisotropy:float
compare-enable:uint32
compare-opcompare-op
min-lod:float
max-lod:float
border-colorborder-color
unnormalized-coordinates:uint32
defvkstructdescriptor-set-layout-binding
binding:uint32
descriptor-typedescriptor-type
descriptor-count:uint32
stage-flagsshader-stage-flags
p-immutable-samplers:pointer
defvkstructdescriptor-set-layout-create-info
:s-type:descriptor-set-layout-create-info
flags:uint32
binding-count:uint32
p-bindings:pointer
defvkstructdescriptor-pool-size
typedescriptor-type
descriptor-count:uint32
defvkstructdescriptor-pool-create-info
:s-type:descriptor-pool-create-info
flags:uint32
max-sets:uint32
pool-size-count:uint32
p-pool-sizes:pointer
defvkstructdescriptor-set-allocate-info
:s-type:descriptor-set-allocate-info
descriptor-pool:pointer
descriptor-set-count:uint32
p-set-layouts:pointer
defvkstructdescriptor-image-info
sampler:pointer
image-view:pointer
image-layoutimage-layout
defvkstructdescriptor-buffer-info
buffer:pointer
offset:uint64
range:uint64
defvkstructwrite-descriptor-set
:s-type:write-descriptor-set
dst-set:pointer
dst-binding:uint32
dst-array-element:uint32
descriptor-count:uint32
descriptor-typedescriptor-type
p-image-info:pointer
p-buffer-info:pointer
p-texel-buffer-view:pointer
defvkstructattachment-description
flags:uint32
formatformat
load-opattachment-load-op
store-opattachment-store-op
stencil-load-opattachment-load-op
stencil-store-opattachment-store-op
initial-layoutimage-layout
final-layoutimage-layout
defvkstructattachment-reference
attachment:uint32
layoutimage-layout
defvkstructsubpass-description
flags:uint32
pipeline-bind-pointpipeline-bind-point
input-attachment-count:uint32
p-input-attachments:pointer
color-attachment-count:uint32
p-color-attachments:pointer
p-resolve-attachments:pointer
p-depth-stencil-attachment:pointer
preserve-attachment-count:uint32
p-preserve-attachments:pointer
defvkstructrender-pass-create-info
:s-type:render-pass-create-info
flags:uint32
attachment-count:uint32
p-attachments:pointer
subpass-count:uint32
p-subpasses:pointer
dependency-count:uint32
p-dependencies:pointer
defvkstructframebuffer-create-info
:s-type:framebuffer-create-info
flags:uint32
render-pass:pointer
attachment-count:uint32
p-attachments:pointer
width:uint32
height:uint32
layers:uint32
defvkstructviewport
x:float
y:float
width:float
height:float
min-depth:float
max-depth:float
defvkstructimage-memory-barrier
:s-type:image-memory-barrier
src-access-maskaccess-flags
dst-access-maskaccess-flags
old-layoutimage-layout
new-layoutimage-layout
src-queue-family-index:uint32
dst-queue-family-index:uint32
image:pointer
subresource-range
defvkstructimage-copy
src-subresource
src-offset
:structoffset-3d
dst-subresource
dst-offset
:structoffset-3d
extent
:structextent-3d
defvkstructbuffer-image-copy
buffer-offset:uint64
buffer-row-length:uint32
buffer-image-height:uint32
image-subresource
image-offset
:structoffset-3d
image-extent
:structextent-3d
defvkstructcommand-pool-create-info
:s-type:command-pool-create-info
flagscommand-pool-create-flags
queue-family-index:uint32
defvkstructcommand-buffer-allocate-info
:s-type:command-buffer-allocate-info
command-pool:pointer
levelcommand-buffer-level
command-buffer-count:uint32
defvkstructcommand-buffer-begin-info
:s-type:command-buffer-begin-info
flagscommand-buffer-usage-flags
p-inheritance-info:pointer
cffi:defcunionclear-color-value
float-32
:array:float4
int-32
:array:int324
uint-32
:array:uint324
defvkstructclear-depth-stencil-value
depth:float
stencil:uint32
cffi:defcunionclear-value
depth-stencil
defvkstructrender-pass-begin-info
:s-type:render-pass-begin-info
render-pass:pointer
framebuffer:pointer
render-area
:structrect-2d
clear-value-count:uint32
p-clear-values:pointer
defvkstructsemaphore-submit-info
:s-type:semaphore-submit-info
semaphore:pointer
value:uint64
stage-maskpipeline-stage-flags-2
device-index:uint32
defvkstructcommand-buffer-submit-info
:s-type:command-buffer-submit-info
command-buffer:pointer
device-mask:uint32
defvkstructsubmit-info-2
:s-type:submit-info-2
flags:uint32
wait-semaphore-info-count:uint32
p-wait-semaphore-infos:pointer
command-buffer-info-count:uint32
p-command-buffer-infos:pointer
signal-semaphore-info-count:uint32
p-signal-semaphore-infos:pointer
defvkstructsemaphore-create-info
:s-type:semaphore-create-info
flags:uint32
defvkstructsemaphore-type-create-info
:s-type:semaphore-type-create-info
semaphore-typesemaphore-type
initial-value:uint64
defvkstructsemaphore-wait-info
:s-type:semaphore-wait-info
flags:uint32
semaphore-count:uint32
p-semaphores:pointer
p-values:pointer
defvkstructphysical-device-timeline-semaphore-features
:s-type:physical-device-timeline-semaphore-features
timeline-semaphore:uint32
defvkstructphysical-device-synchronization-2-features
:s-type:physical-device-synchronization-2-features
synchronization-2:uint32
defvkstructphysical-device-mesh-shader-features-ext
:s-type:physical-device-mesh-shader-features-ext
task-shader:uint32
mesh-shader:uint32
multiview-mesh-shader:uint32
primitive-fragment-shading-rate-mesh-shader:uint32
mesh-shader-queries:uint32
defvkstructphysical-device-present-timing-features-ext
:s-type:physical-device-present-timing-features-ext
present-timing:uint32
present-at-absolute-time:uint32
present-at-relative-time:uint32
defvkstructphysical-device-present-id-2-features-khr
:s-type:physical-device-present-id-2-features-khr
defvkstructphysical-device-surface-info-2
:s-type:physical-device-surface-info-2-khr
surface:pointer
defvkstructsurface-capabilities
min-image-count:uint32
max-image-count:uint32
current-extent
:structextent-2d
min-image-extent
:structextent-2d
max-image-extent
:structextent-2d
max-image-array-layers:uint32
supported-transformssurface-transform-flags
current-transformsurface-transform
supported-composite-alphacomposite-alpha-flags
supported-usage-flagsimage-usage-flags
defvkstructpresent-timing-surface-capabilities
:s-type:present-timing-surface-capabilities-ext
present-timing-supported:uint32
present-at-absolute-time-supported:uint32
present-at-relative-time-supported:uint32
present-stage-queriespresent-stage-flags
defvkstructsurface-capabilities-present-id-2
:s-type:surface-capabilities-present-id-2-khr
present-id-2-supported:uint32
defvkstructsurface-format
formatformat
color-spacecolor-space
defvkstructswapchain-create-info
:s-type:swapchain-create-info-khr
flagsswapchain-create-flags
surface:pointer
min-image-count:uint32
image-color-spacecolor-space
image-extent
:structextent-2d
image-array-layers:uint32
image-usageimage-usage-flags
image-sharing-modesharing-mode
queue-family-index-count:uint32
p-queue-family-indices:pointer
pre-transformsurface-transform
composite-alphacomposite-alpha
present-modepresent-mode
clipped:uint32
old-swapchain:pointer
defvkstructswapchain-timing-properties
:s-type:swapchain-timing-properties-ext
refresh-duration:uint64
refresh-interval:uint64
defvkstructswapchain-time-domain-properties
:s-type:swapchain-time-domain-properties-ext
time-domain-count:uint32
p-time-domains:pointer
p-time-domain-ids:pointer
defvkstructpresent-id-2
:s-type:present-id-2-khr
swapchain-count:uint32
p-present-ids:pointer
defvkstructpresent-timing-info
:s-type:present-timing-info-ext
flagspresent-timing-info-flags
target-time:uint64
time-domain-id:uint64
present-stage-queriespresent-stage-flags
target-time-domain-present-stagepresent-stage-flags
defvkstructpresent-timings-info
:s-type:present-timings-info-ext
swapchain-count:uint32
p-timing-infos:pointer
defvkstructpast-presentation-timing-info
:s-type:past-presentation-timing-info-ext
flagspast-presentation-timing-flags
swapchain:pointer
defvkstructpresent-stage-time
stagepresent-stage-flags
time:uint64
defvkstructpast-presentation-timing
:s-type:past-presentation-timing-ext
present-id:uint64
target-time:uint64
present-stage-count:uint32
p-present-stages:pointer
time-domaintime-domain
time-domain-id:uint64
report-complete:uint32
defvkstructpast-presentation-timing-properties
:s-type:past-presentation-timing-properties-ext
timing-properties-counter:uint64
time-domains-counter:uint64
presentation-timing-count:uint32
p-presentation-timings:pointer
defvkstructpresent-info
:s-type:present-info-khr
wait-semaphore-count:uint32
p-wait-semaphores:pointer
swapchain-count:uint32
p-swapchains:pointer
p-image-indices:pointer
p-results:pointer

Raw calls. defvkfun preserves the CFFI declaration while making the complete host-to-driver boundary available as structured Lisp data.

defvkfun"vkEnumerateInstanceExtensionProperties"checked-result
layer-name:pointer
property-count:pointer
properties:pointer
defvkfun"vkEnumerateDeviceExtensionProperties"checked-result
physical-device:pointer
layer-name:pointer
property-count:pointer
properties:pointer
defvkfun"vkCreateInstance"checked-result
create-info:pointer
allocator:pointer
instance:pointer
defvkfun"vkDestroyInstance":void
instance:pointer
allocator:pointer
defvkfun"vkGetInstanceProcAddr":pointer
instance:pointer
name:string
defvkfun"vkGetDeviceProcAddr":pointer
device:pointer
name:string
defvkproc"vkCreateDebugUtilsMessengerEXT"checked-result
instance:pointer
create-info:pointer
allocator:pointer
messenger:pointer
defvkproc"vkDestroyDebugUtilsMessengerEXT":void
instance:pointer
messenger:pointer
allocator:pointer
defvkfun"vkEnumeratePhysicalDevices"checked-result
instance:pointer
device-count:pointer
devices:pointer
defvkfun"vkGetPhysicalDeviceQueueFamilyProperties":void
physical-device:pointer
property-count:pointer
properties:pointer
defvkfun"vkGetPhysicalDeviceFeatures":void
physical-device:pointer
features:pointer
defvkfun"vkGetPhysicalDeviceFeatures2":void
physical-device:pointer
features:pointer
defvkfun"vkCreateDevice"checked-result
physical-device:pointer
create-info:pointer
allocator:pointer
device:pointer
defvkfun"vkDestroyDevice":void
device:pointer
allocator:pointer
defvkfun"vkGetDeviceQueue":void
device:pointer
queue-family-index:uint32
queue-index:uint32
queue:pointer
defvkfun"vkDeviceWaitIdle"checked-result
device:pointer
defvkfun"vkGetPhysicalDeviceMemoryProperties":void
physical-device:pointer
properties:pointer
defvkfun"vkCreateImage"checked-result
device:pointer
create-info:pointer
allocator:pointer
image:pointer
defvkfun"vkDestroyImage":void
device:pointer
image:pointer
allocator:pointer
defvkfun"vkGetImageMemoryRequirements":void
device:pointer
image:pointer
requirements:pointer
defvkfun"vkCreateBuffer"checked-result
device:pointer
create-info:pointer
allocator:pointer
buffer:pointer
defvkfun"vkDestroyBuffer":void
device:pointer
buffer:pointer
allocator:pointer
defvkfun"vkGetBufferMemoryRequirements":void
device:pointer
buffer:pointer
requirements:pointer
defvkfun"vkAllocateMemory"checked-result
device:pointer
allocate-info:pointer
allocator:pointer
memory:pointer
defvkfun"vkFreeMemory":void
device:pointer
memory:pointer
allocator:pointer
defvkfun"vkBindImageMemory"checked-result
device:pointer
image:pointer
memory:pointer
offset:uint64
defvkfun"vkBindBufferMemory"checked-result
device:pointer
buffer:pointer
memory:pointer
offset:uint64
defvkfun"vkMapMemory"checked-result
device:pointer
memory:pointer
offset:uint64
size:uint64
flags:uint32
data:pointer
defvkfun"vkUnmapMemory":void
device:pointer
memory:pointer
defvkfun"vkCreateImageView"checked-result
device:pointer
create-info:pointer
allocator:pointer
view:pointer
defvkfun"vkDestroyImageView":void
device:pointer
view:pointer
allocator:pointer
defvkfun"vkCreateShaderModule"checked-result
device:pointer
create-info:pointer
allocator:pointer
defvkfun"vkDestroyShaderModule":void
device:pointer
allocator:pointer
defvkfun"vkCreateDescriptorSetLayout"checked-result
device:pointer
create-info:pointer
allocator:pointer
layout:pointer
defvkfun"vkDestroyDescriptorSetLayout":void
device:pointer
layout:pointer
allocator:pointer
defvkfun"vkCreatePipelineLayout"checked-result
device:pointer
create-info:pointer
allocator:pointer
layout:pointer
defvkfun"vkDestroyPipelineLayout":void
device:pointer
layout:pointer
allocator:pointer
defvkfun"vkCreateComputePipelines"checked-result
device:pointer
pipeline-cache:pointer
create-info-count:uint32
create-infos:pointer
allocator:pointer
pipelines:pointer
defvkfun"vkCreateGraphicsPipelines"checked-result
device:pointer
pipeline-cache:pointer
create-info-count:uint32
create-infos:pointer
allocator:pointer
pipelines:pointer
defvkfun"vkDestroyPipeline":void
device:pointer
pipeline:pointer
allocator:pointer
defvkfun"vkCreateSampler"checked-result
device:pointer
create-info:pointer
allocator:pointer
sampler:pointer
defvkfun"vkDestroySampler":void
device:pointer
sampler:pointer
allocator:pointer
defvkfun"vkCreateRenderPass"checked-result
device:pointer
create-info:pointer
allocator:pointer
render-pass:pointer
defvkfun"vkDestroyRenderPass":void
device:pointer
render-pass:pointer
allocator:pointer
defvkfun"vkCreateFramebuffer"checked-result
device:pointer
create-info:pointer
allocator:pointer
framebuffer:pointer
defvkfun"vkDestroyFramebuffer":void
device:pointer
framebuffer:pointer
allocator:pointer
defvkfun"vkCreateDescriptorPool"checked-result
device:pointer
create-info:pointer
allocator:pointer
pool:pointer
defvkfun"vkDestroyDescriptorPool":void
device:pointer
pool:pointer
allocator:pointer
defvkfun"vkAllocateDescriptorSets"checked-result
device:pointer
allocate-info:pointer
sets:pointer
defvkfun"vkUpdateDescriptorSets":void
device:pointer
write-count:uint32
writes:pointer
copy-count:uint32
copies:pointer
defvkfun"vkCreateCommandPool"checked-result
device:pointer
create-info:pointer
allocator:pointer
command-pool:pointer
defvkfun"vkDestroyCommandPool":void
device:pointer
command-pool:pointer
allocator:pointer
defvkfun"vkAllocateCommandBuffers"checked-result
device:pointer
allocate-info:pointer
command-buffers:pointer
defvkfun"vkBeginCommandBuffer"checked-result
command-buffer:pointer
begin-info:pointer
defvkfun"vkEndCommandBuffer"checked-result
command-buffer:pointer
defvkfun"vkCmdPipelineBarrier":void
command-buffer:pointer
src-stage-maskpipeline-stage-flags
dst-stage-maskpipeline-stage-flags
dependenciesdependency-flags
memory-barrier-count:uint32
memory-barriers:pointer
buffer-memory-barrier-count:uint32
buffer-memory-barriers:pointer
image-memory-barrier-count:uint32
image-memory-barriers:pointer
defvkfun"vkCmdClearColorImage":void
command-buffer:pointer
image:pointer
layoutimage-layout
color:pointer
range-count:uint32
ranges:pointer
defvkfun"vkCmdCopyImage":void
command-buffer:pointer
source:pointer
source-layoutimage-layout
destination:pointer
destination-layoutimage-layout
region-count:uint32
regions:pointer
defvkfun"vkCmdCopyBufferToImage":void
command-buffer:pointer
source-buffer:pointer
destination-image:pointer
destination-layoutimage-layout
region-count:uint32
regions:pointer
defvkfun"vkCmdCopyImageToBuffer":void
command-buffer:pointer
source-image:pointer
source-layoutimage-layout
destination-buffer:pointer
region-count:uint32
regions:pointer
defvkfun"vkCmdBindPipeline":void
command-buffer:pointer
bind-pointpipeline-bind-point
pipeline:pointer
defvkfun"vkCmdBindDescriptorSets":void
command-buffer:pointer
bind-pointpipeline-bind-point
layout:pointer
first-set:uint32
set-count:uint32
sets:pointer
dynamic-offset-count:uint32
dynamic-offsets:pointer
defvkfun"vkCmdBindVertexBuffers":void
command-buffer:pointer
first-binding:uint32
binding-count:uint32
buffers:pointer
offsets:pointer
defvkfun"vkCmdBindIndexBuffer":void
command-buffer:pointer
buffer:pointer
offset:uint64
index-typeindex-type
defvkfun"vkCmdDispatch":void
command-buffer:pointer
group-count-x:uint32
group-count-y:uint32
group-count-z:uint32
defvkfun"vkCmdBeginRenderPass":void
command-buffer:pointer
begin-info:pointer
contentssubpass-contents
defvkfun"vkCmdEndRenderPass":void
command-buffer:pointer
defvkfun"vkCmdSetViewport":void
command-buffer:pointer
first-viewport:uint32
viewport-count:uint32
viewports:pointer
defvkfun"vkCmdSetScissor":void
command-buffer:pointer
first-scissor:uint32
scissor-count:uint32
scissors:pointer
defvkfun"vkCmdDraw":void
command-buffer:pointer
vertex-count:uint32
instance-count:uint32
first-vertex:uint32
first-instance:uint32
defvkfun"vkCmdDrawIndexed":void
command-buffer:pointer
index-count:uint32
instance-count:uint32
first-index:uint32
vertex-offset:int32
first-instance:uint32
defvkfun"vkQueueSubmit2"checked-result
queue:pointer
submit-count:uint32
submits:pointer
fence:pointer
defvkfun"vkQueueWaitIdle"checked-result
queue:pointer
defvkfun"vkGetPhysicalDeviceSurfaceSupportKHR"checked-result
physical-device:pointer
queue-family-index:uint32
surface:pointer
supported:pointer
defvkfun"vkGetPhysicalDeviceSurfaceCapabilitiesKHR"checked-result
physical-device:pointer
surface:pointer
capabilities:pointer
defvkfun"vkGetPhysicalDeviceSurfaceCapabilities2KHR"checked-result
physical-device:pointer
surface-info:pointer
defvkfun"vkGetPhysicalDeviceSurfaceFormatsKHR"checked-result
physical-device:pointer
surface:pointer
format-count:pointer
formats:pointer
defvkfun"vkGetPhysicalDeviceSurfacePresentModesKHR"checked-result
physical-device:pointer
surface:pointer
mode-count:pointer
modes:pointer
defvkfun"vkCreateSwapchainKHR"checked-result
device:pointer
create-info:pointer
allocator:pointer
swapchain:pointer
defvkfun"vkDestroySwapchainKHR":void
device:pointer
swapchain:pointer
allocator:pointer
defvkfun"vkGetSwapchainImagesKHR"checked-result
device:pointer
swapchain:pointer
image-count:pointer
images:pointer
defvkfun"vkCreateSemaphore"checked-result
device:pointer
create-info:pointer
allocator:pointer
semaphore:pointer
defvkfun"vkDestroySemaphore":void
device:pointer
semaphore:pointer
allocator:pointer
defvkfun"vkGetSemaphoreCounterValue"checked-result
device:pointer
semaphore:pointer
value:pointer
defvkfun"vkWaitSemaphores"checked-result
device:pointer
wait-info:pointer
timeout:uint64
defvkfun"vkAcquireNextImageKHR"checked-result
device:pointer
swapchain:pointer
timeout:uint64
semaphore:pointer
fence:pointer
image-index:pointer
defvkfun"vkQueuePresentKHR"checked-result
queue:pointer
present-info:pointer
defvkdeviceproc"vkSetSwapchainPresentTimingQueueSizeEXT"checked-result
device:pointer
swapchain:pointer
size:uint32
defvkdeviceproc"vkGetSwapchainTimingPropertiesEXT"checked-result
device:pointer
swapchain:pointer
timing-properties:pointer
timing-properties-counter:pointer
defvkdeviceproc"vkGetSwapchainTimeDomainPropertiesEXT"checked-result
device:pointer
swapchain:pointer
time-domain-properties:pointer
time-domains-counter:pointer
defvkdeviceproc"vkGetPastPresentationTimingEXT"checked-result
device:pointer