This is a hobby project to build a game engine and eventually a game in my spare time.
This project will likely not build for anyone else at this time. See assets and hardware section below.
The most recent version of the Vulkan SDK should be on the system.
KTX, SDL3, Fastgltf and flecs are now gitsubmodules SDL3 and flecs are dynamically linked, build the dlls and include next to binary, add lib files after building
git submodule init
git submodule update
cd .\libs\KTX-Software\
cmake . -B build
cmake --build build
cd .\libs\fastgltf\
cmake . -B build
Add fastgltf project to VS if it's not already there and build it
cd .\libs\SDL\
cmake . -B build
cmake --build build
cd .\libs\flecs\
cmake . -B out
cmake --build out
Assets are not included in the repository and the application will immediately halt without them. I don't currently have a good solution for distributing assets, it's all very manual. I could zip my asset directory on request.
I have only tested this on Nvidia 3070 and 3060 gpus. I don't know if this application works on AMD or other GPUs at this time.
- Buffer device address
- Dynamic rendering
- Bindless
- Shader Objects
- One global descriptor set for all images and samplers
- config for physical device to use
- read links in https://github.com/Darianopolis/Links/blob/main/Links.txt
ktx create --format R8G8B8A8_SRGB --generate-mipmap --mipmap-filter box --encode uastc --uastc-quality 0 --zstd 5 --cubemap .\xp.png .\xn.png .\yp.png .\yn.png .\zp.png .\zn.png skybox.ktx2
Then have to open them up in Nvidia Texture Tools and save them to get the VkFormat correct
https://github.com/LunarG/VulkanTools
Apache License 2.0, January 2004
https://github.com/KhronosGroup/KTX-Software
Apache 2.0 license
Copyright (c) Mark Callow, the KTX-Software author; The Khronos Group Inc.
and additional licenses
https://github.com/KhronosGroup/KTX-Software/tree/main/LICENSES
https://github.com/spnda/fastgltf
MIT license
Copyright (c) 2022 - 2024 spnda.
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
MIT License
Copyright (c) 2017-2024 Advanced Micro Devices, Inc.
https://github.com/ocornut/imgui
MIT license
Copyright (c) 2014-2024 Omar Cornut
https://github.com/zeux/volk
MIT license
Copyright (c) 2018-2024 Arseny Kapoulkine
https://github.com/microsoft/DirectXTex
MIT license
Copyright (c) Microsoft Corporation.
https://github.com/nothings/stb/tree/master?tab=License-1-ov-file#readme
MIT License
Copyright (c) 2017 Sean Barrett
https://github.com/vblanco20-1/vulkan-guide
MIT License
Copyright (c) 2022-2024 2016 VkGuide Author
I initially relied a lot on this for developing my scene graph.
https://github.com/Flone-dnb/nameless-engine
MIT License
Copyright (c) 2022-2024 Alexander Tretyakov
For some of the ktx vma allocation logic.