Add CI for SIGGRAPH 2026 tutorial - #517
SaschaWillems wants to merge 15 commits into
Conversation
Adjust windows CMake calls
|
Interestingly this fails on Linux, not due to an issue with CI, but an actual issue with the code itself. So adding CI for this already seems to show benefits :) |
|
Thank you very much for adding the CI workflow. I think it will be useful going forward. I tried building the tutorial again on my Linux machine. It initially compiled successfully, but after updating Clang I was able to partially reproduce the issue. I can fix the part I reproduced with the following change: diff --git a/attachments/siggraph2026_vk_tutorial/src/main.cpp b/attachments/siggraph2026_vk_tutorial/src/main.cpp
index e44ed50..f0f0d94 100644
--- a/attachments/siggraph2026_vk_tutorial/src/main.cpp
+++ b/attachments/siggraph2026_vk_tutorial/src/main.cpp
@@ -538,7 +538,7 @@ void Application::initVulkanVKB()
// Store format and extent of the swapchain images for later use.
{
- m_swapchainFormat = vk::Format{m_vkbData.m_swapchain.image_format};
+ m_swapchainFormat = static_cast<vk::Format>(m_vkbData.m_swapchain.image_format);
m_swapchainExtent = vk::Extent2D{
.width = m_vkbData.m_swapchain.extent.width,
.height = m_vkbData.m_swapchain.extent.height,I am not sure why this does not trigger on Windows, but I think we can simply fix it. When using Vulkan, I do not think we should have to specify every initializer. Designated initializers make Vulkan code significantly less verbose and allow us to omit In theory, Which version of Clang is installed in CI?
As a workaround, we could also disable diff --git a/attachments/siggraph2026_vk_tutorial/CMakeLists.txt b/attachments/siggraph2026_vk_tutorial/CMakeLists.txt
index 88cdda9..734b66f 100644
--- a/attachments/siggraph2026_vk_tutorial/CMakeLists.txt
+++ b/attachments/siggraph2026_vk_tutorial/CMakeLists.txt
@@ -293,7 +293,7 @@ if(MSVC)
else()
target_compile_options(vulkan_siggraph PRIVATE -Wall -Wextra -Wpedantic)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- target_compile_options(vulkan_siggraph PRIVATE -Wno-missing-designated-field-initializers)
+ target_compile_options(vulkan_siggraph PRIVATE -Wno-missing-designated-field-initializers -Wno-missing-field-initializers)
endif()
endif() |
|
Looking at the CI failure, I don't think that the issue is caused by the missing initializers. That does cause a few warnings, but the error is an actual type conversion error: |
|
Yes, you are right. The CI failure is caused by a type-conversion error. For some reason, it does not occur on Windows. The first change I suggested fixes it. I have added the fix in a new branch based on this PR:
This change fixes the Linux build: - m_swapchainFormat = vk::Format{m_vkbData.m_swapchain.image_format};
+ m_swapchainFormat = static_cast<vk::Format>(m_vkbData.m_swapchain.image_format);I also added compiler-version-specific flags to suppress the relevant Clang warnings and documented the build dependencies in the README. |
|
Thank you very much 👍🏻 CI is now passing, so this is ready to review :) |
There is no CI yet for the SIGGRAPH 2026 tutorial, so if anything breaks (like in #513), we're not noticing that. This PR adds CI for the SIGGRAPH 2026 tutorial to close that gap.
Note: Currently a draft.