dasVulkan ========= dasVulkan is the daslang binding for `Vulkan `_, generated from the Khronos ``vk.xml`` registry. It ships the raw 1:1 API surface over `volk `_ plus an ergonomic boost layer: RAII-owning handle wrappers, idiomatic structs (``array`` instead of count+pointer pairs, auto-filled ``sType``), named/defaulted arguments, and block-bracketing helpers that collapse the begin/record/submit boilerplate. Where to go ----------- * **Documentation**: https://borisbat.github.io/dasVulkan/ * **Repository**: https://github.com/borisbat/dasVulkan What's there ------------ * ``vulkan`` — the raw binding: the full Vulkan API (core + extensions), generated from ``vk.xml`` as a daslang C++ module dispatching through volk. Every ``Vk*`` struct, enum, and ``VkFlags`` (as a daslang ``bitfield``). * ``vulkan_boost`` — the ergonomic layer: ``create_*`` creators returning RAII wrappers that destroy in reverse order under ``var inscope``, combined builders (``build_offscreen_target``, ``create_graphics_pipeline_simple``), block brackets (``run_cmd_sync``, ``record_render_pass``, ``map_memory_to_array``), and a windowing tier (surface, resizable swapchain, the present loop). * Examples under ``examples/`` — offscreen triangle (raw reference + boost twin), compute, device enumeration, and a resizable GLFW windowed triangle. * An in-process ``dastest`` suite that renders offscreen and reads back pixels, running headless on Mesa lavapipe in CI (no GPU needed). Versioning ---------- The bindings are generated against the Vulkan SDK **1.4.350.0** headers (vendored). The documentation site covers the boost layer; the raw ``vulkan`` symbols mirror the Vulkan C API 1:1, so the `Vulkan specification `_ is their reference.