Module Sarek_vulkan.Vulkan_api

val memcpy : unit Ctypes_static.ptr -> unit Ctypes_static.ptr -> Unsigned.size_t -> unit Ctypes_static.ptr

memcpy from libc for memory transfers

val u32 : int -> Unsigned.UInt32.t

Helper to convert OCaml int to Unsigned.UInt32.t

Exceptions

exception Vulkan_error of Vulkan_types.vk_result * string
val check : string -> Vulkan_types.vk_result -> unit

Check Vulkan result and raise exception on error

SPIR-V Compilation

val compile_glsl_to_spirv_cli : entry_point:string -> string -> string

Compile GLSL to SPIR-V using glslangValidator. Requires glslangValidator in PATH.

val compile_glsl_to_spirv : entry_point:string -> string -> string

Compile GLSL to SPIR-V using Shaderc if available, otherwise fallback to CLI

val glslang_available : unit -> bool

Check if glslangValidator is available

Device Management

module Device : sig ... end

Memory Management

module Memory : sig ... end

Stream Management

module Stream : sig ... end

Event Management

module Event : sig ... end

Kernel Management

module Kernel : sig ... end

Utility Functions

val vulkan_version : unit -> int * int * int
val is_available : unit -> bool