How louisforestier/vulkanengine works
VulkanEngine is a learning-focused Vulkan renderer with a companion asset-baking tool. The principal runtime path starts at the application entry point, initializes the windowed Vulkan engine, processes events and UI, batches renderables, and submits graphics work for presentation. Separately, the baker converts PNG textures and OBJ meshes into compressed asset files using the shared asset library. The graph reflects the sampled engine and asset code; GPU-driven and bindless rendering are README plans, not established runtime stages in the available evidence.
Main entry points: vk_engine.cpp Vulkan engine · asset_loader.cpp Asset file I/O · asset_main.cpp Asset baker · main.cpp Application entry
Components 25
Application
- Application entry
engine/main.cpp
Rendering Engine
- Vulkan engine
engine/vk_engine.cpp - SDL event handler
engine/event_handler.cpp - Camera
engine/camera.cpp - ImGui widgets
engine/imgui_widgets.cpp - GPU selection
engine/vk_device_selector.cpp - Device setup
engine/vk_device_builder.cpp - Instance setup
engine/vk_instance_builder.cpp - Swapchain
engine/vk_swapchain.cpp - Descriptors
engine/vk_descriptors.cpp - Graphics pipeline
engine/vk_pipeline.cpp - Mesh GPU resources
engine/vk_mesh.cpp - Texture GPU resources
engine/vk_textures.cpp - Vulkan profiler
engine/vk_profiler.cpp
Asset Pipeline
- Asset baker
asset-baker/asset_main.cpp - OBJ conversion
asset-baker/asset_main.cpp - PNG conversion
asset-baker/asset_main.cpp - Mesh packing
assetlib/mesh_asset.cpp - Texture packing
assetlib/texture_asset.cpp - Asset file I/O
assetlib/asset_loader.cpp - Baked asset files
Platform And GPU
- SDL
- Vulkan GPU
- Tracy
Other components
- User
Connections 26
- User → Application entry: starts
- Application entry → Vulkan engine: initializes and runs
- Vulkan engine → Instance setup: builds instance
- Vulkan engine → GPU selection: selects GPU
- Vulkan engine → Device setup: builds device
- Vulkan engine → Swapchain: creates swapchain
- Vulkan engine → Descriptors: creates descriptors
- Vulkan engine → Graphics pipeline: builds pipelines
- Vulkan engine → Mesh GPU resources: uploads meshes
- Vulkan engine → Texture GPU resources: loads images
- Vulkan engine → SDL event handler: dispatches events
- Vulkan engine → Camera: updates view
- Vulkan engine → ImGui widgets: draws UI
- Vulkan engine → Vulkan profiler: profiles rendering
- Vulkan engine → SDL: uses window and events
- Vulkan engine → Vulkan GPU: submits graphics work
- Vulkan engine → Tracy: emits profiling data
- SDL → Vulkan engine: delivers events
- Asset baker → OBJ conversion: converts OBJ
- Asset baker → PNG conversion: converts PNG
- OBJ conversion → Mesh packing: packs mesh data
- PNG conversion → Texture packing: packs pixels
- Asset baker → Asset file I/O: saves assets
- Mesh packing → Asset file I/O: provides packed data
- Texture packing → Asset file I/O: provides packed data
- Asset file I/O → Baked asset files: writes binary files