In the Vulkan-Tutorial: How to write a Vulkan application in 2026, I am having trouble building the source code. I am building on debian/trixie with the latest vulkan sdk, 1.4.357.0. Trixie has clang-19 as the default so I installed clang-21 and generaged in cmake with:
cmake --preset clang-debug -DCMAKE_CXX_COMPILER=clang+±21 -DCMAKE_C_COMPILER=clang-21
Otherwise, it only finds clang-19 through clang and clang++.
that looks like it worked but then when I try to build the source I get the following:
cmake --build --preset clang-debug
[1/2] Building CXX object CMakeFiles/vulkan_siggraph.dir/src/main.cpp.o
FAILED: CMakeFiles/vulkan_siggraph.dir/src/main.cpp.o
/usr/bin/clang+±21 -DGLFW_INCLUDE_NONE -DSIGGRAPH_DATA_DIR=“/vulkan/siggraph2026_vk_tutorial/data” -DSIGGRAPH_SHADER_DIR=“/vulkan/siggraph2026_vk_tutorial/build/clang/shaders” -DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1 -DVULKAN_HPP_NO_STRUCT_CONSTRUCTORS -I/vulkan/siggraph2026_vk_tutorial/src -I/vulkan/siggraph2026_vk_tutorial/external/glfw/include -I/vulkan/siggraph2026_vk_tutorial/external/glm -I/vulkan/siggraph2026_vk_tutorial/external/vk-bootstrap/src -isystem /vulkan/1.4.357.0/x86_64/include -isystem /vulkan/siggraph2026_vk_tutorial/external/nlohmann/include -isystem /vulkan/siggraph2026_vk_tutorial/external/stb -isystem /vulkan/siggraph2026_vk_tutorial/external/tinygltf -std=gnu++23 -Wall -Wextra -Wpedantic -Wno-missing-designated-field-initializers -MD -MT CMakeFiles/vulkan_siggraph.dir/src/main.cpp.o -MF CMakeFiles/vulkan_siggraph.dir/src/main.cpp.o.d -o CMakeFiles/vulkan_siggraph.dir/src/main.cpp.o -c /vulkan/siggraph2026_vk_tutorial/src/main.cpp
/vulkan/siggraph2026_vk_tutorial/src/main.cpp:476:43: error: no matching member function for call to ‘init’
476 | VULKAN_HPP_DEFAULT_DISPATCHER.init(m_vkbData.m_instance.instance, vkGetInstanceProcAddr,
| ^~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:27612:12: note: candidate function template not viable: no known conversion from ‘PFN_vkVoidFunction (VkInstance, const char )’ (aka 'void ((VkInstance_T *, const char *))()’) to ‘const Device’ for 2nd argument
27612 | void init( Instance const & instance, Device const & device, DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24567:12: note: candidate function not viable: requires 2 arguments, but 3 were provided
24567 | void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:27624:12: note: candidate function template not viable: requires 2 arguments, but 3 were provided
27624 | void init( Instance const & instance, Device const & device ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24575:12: note: candidate function not viable: requires 4 arguments, but 3 were provided
24575 | void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device, PFN_vkGetDeviceProcAddr getDeviceProcAddr )
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24550:12: note: candidate function not viable: requires single argument ‘getInstanceProcAddr’, but 3 arguments were provided
24550 | void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24584:12: note: candidate function not viable: requires single argument ‘instanceCpp’, but 3 arguments were provided
24584 | void init( Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:26272:12: note: candidate function not viable: requires single argument ‘deviceCpp’, but 3 arguments were provided
26272 | void init( Device deviceCpp ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24544:12: note: candidate function template not viable: requires single argument ‘dl’, but 3 arguments were provided
24544 | void init( DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
/vulkan/1.4.357.0/x86_64/include/vulkan/vulkan.hpp:24537:12: note: candidate function template not viable: requires 0 arguments, but 3 were provided
24537 | void init()
| ^
/vulkan/siggraph2026_vk_tutorial/src/main.cpp:541:44: error: non-constant-expression cannot be narrowed from type ‘VkFormat’ to ‘vk::Format’ in initializer list [-Wc++11-narrowing]
541 | m_swapchainFormat = vk::Format{m_vkbData.m_swapchain.image_format};
| ^~~~~~
2 errors generated.
ninja: build stopped: subcommand failed.
Any help would be appreciated!