Vulkan-Hpp icon indicating copy to clipboard operation
Vulkan-Hpp copied to clipboard

Comprehensive testing, CI, and CD for `vulkan.cppm`

Open sharadhr opened this issue 1 year ago • 2 comments

The vulkan.cppm module needs more rigorous automated testing, CI and CD; there is currently only one test that doesn't exercise both the entirety of the module and potential compiler bugs that could be exposed with more testing (such as #1943 which is an MSVC-specific problem).

Of course, given the still-experimental status of C++ standard modules as a whole, any CI/CD failures shouldn't block merges, but regressions should.

Just for testing vulkan.cppm, I propose setting up Actions each with the latest possible compilers for maximum coverage:

  • Windows 11
    • Latest MSVC
    • Latest LLVM/Clang for MSVC ABI
  • macOS Sequoia
    • Latest Xcode AppleClang
    • Latest LLVM/Clang
  • Linux
    • Latest GCC
    • Latest LLVM/Clang

I propose restricting to only the latest possible compilers as C++ standard modules are so new. As new compilers are released these environments should be periodically updated to follow new compiler version updates.

Next, I propose porting the existing tests in samples and tests as well as the entirety of Sascha Willems' Vulkan samples to use vulkan.cppm.

This will provide very comprehensive code and toolchain coverage.

sharadhr avatar Nov 13 '24 11:11 sharadhr

@M2-TE now that we've merged in #2303 maybe we can work towards resolving and closing this, also now that most recent compilers are happy to support named modules.

I need to refresh myself on the CI/CD setup, I haven't looked at it in the greatest detail in a long while.

sharadhr avatar Oct 09 '25 22:10 sharadhr

First step will be to get modules to compile, which should be doable with MSVC and Clang. I will work on that.

I've figured out how to get all tests working with modules beforehand, some of which was done in #2292. Others require some more work.

All that's missing is compiling all samples with modules. Could you look into how to best approach those?

M2-TE avatar Oct 10 '25 08:10 M2-TE