This was a learning experience for me and wasnt meant to be a long term project. Leaving it here as a reference. The main
branch goes through all the VKguide chapters and the engine
branch has a GPU driven renderer with compute frustum and occlusion culling, an asset system skeleton and some other goodies.
-
move vk.zig out of cache
-
other math lib: Zalgebra
-
other math lib: vectormath
-
other math lib: zmath
-
checkout abstractions here too: Another Vulkan Zig
-
some API ideas: Volkano
-
higher-level api:
- buffers: CpuAccessibleBuffer, GpuAccessibleBuffer, etc
-
higher-level helpers:
- vertex_input_state: blahGetVertexInputState(VertexT)
-
add auto uniform/push/pip_layout generation (
spirv-cross shaer.spv --reflect
)
Future
- add SDL toggle sdltest
You must install the LunarG Vulkan SDK: https://vulkan.lunarg.com/sdk/home
git clone --recursive https://github.com/prime31/zig-vulkan
On macOS, you may e.g. place the following in your ~/.zprofile
file though the Vulkan SDK installation should handle it for you.
export PATH=$PATH:$HOME/VulkanSDK/1.3.xxx/macOS/bin/
zig build --help
zig build target -Dtarget=x86_64-linux-gnu
zig build target -Dtarget=x86_64-windows-gnu