# VulkanTriangle The minimal ray-traced example. Renders a single static triangle through `vkCmdTraceRaysKHR`. No UI. ## What it shows - `Device::Initialize()` + `Window` + swapchain bring-up. - A `DescriptorHeapVulkan` sized for one image + one buffer slot, with slot ranges allocated via the bump-allocator API (`AllocateImageSlots`, `AllocateBufferSlots`). - A `PipelineRTVulkan` built from raygen / miss / closesthit SPIR-V shaders compiled at build time. - `Mesh::Build` constructing a BLAS and `RenderingElement3D::BuildTLAS` the per-frame TLAS. - Direct descriptor writes via `vkWriteResourceDescriptorsEXT` for the swapchain views and TLAS device addresses. - `RTPass{&pipeline}` plugged into `window.passes` — the canonical way to add ray tracing to a window in this library. It's the smallest sensible test of the bindless `VK_EXT_descriptor_heap` + ray-tracing path. ## Run ```bash cd examples/VulkanTriangle crafter-build -r ``` You should see a 1280×720 window with a triangle filling roughly the centre. ## Notes `raygen.glsl`'s `traceRayEXT` call is currently commented out — the example exercises the dispatch and `imageStore` paths only. Uncomment it to actually trace into the BLAS.