Commit Graph

161 Commits

Author SHA1 Message Date
Andreas Süßenbach cb5783d49d
Add some explicit static_cast to the SharedHandles sample and the UniqueHandleDefaultArguments test. (#2370)
Set Version Tag / set-version-tag (push) Waiting to run Details
2025-11-25 17:05:24 +01:00
Andreas Süßenbach 73121db60b
Extent function call tests with Queue semaphore commands. (#2369) 2025-11-25 13:39:06 +01:00
Andreas Süßenbach 5cd5bcf6de
Extent function call tests with Fence commands (#2359) 2025-11-12 13:42:37 +01:00
Andreas Süßenbach 15f4b3024f
Fix default values of function arguments when VULKAN_HPP_NO_DEFAULT_DISPATCHER is defined. (#2356) 2025-11-12 10:08:57 +01:00
Andreas Süßenbach 36b276f0a2
Replace using free by using a std::vector (#2344) 2025-11-10 14:29:35 +01:00
Jan Kuhlmann b4d30a5fb5
CI: Added runner for Windows with Clang and Ninja (#2342)
* add windows ci testing clang and ninja

* attempt to use multi-config builds on msvc ci

* install deps for windows ci

* temporarily disable ci portions

* try clang-cl

* test x64 only

* try x64 for clang-cl

* specify clang-cl as C compiler

* attempt clang-cl with dep install

* ignore unused variable warning in sample02

* need to specify c compiler as glfw install is not being found

* try to ignore warning in standard clang fashion

* syntax fix

* cast procaddress to void* before final func type cast

* added more windows clang warning suppressions

* disable normal windows ci

* suppress warnings in raii samples

* suppress more warnings for tests

* more unused var suppressions for tests

* disable preinstall of deps in clang to prevent _ITERATOR_DEBUG_LEVEL mismatch

* suppress unused var warnings triggered in release mode

* add warning suppression to flags test

* fixed strided array proxy test

* fix structure chain test

* fix extension inspection test

* reenable all ci workflows
2025-11-10 14:29:09 +01:00
Andreas Süßenbach 3a948949cc
Extent function call tests with Sparse resource memory management API commands (optional) (#2341)
Set Version Tag / set-version-tag (push) Has been cancelled Details
2025-11-04 13:48:27 +01:00
Andreas Süßenbach 053269201d
Extent function call tests with Memory management API commands (#2334) 2025-10-29 11:02:16 +01:00
Andreas Süßenbach f25993be90
Extent function call tests with Memory commands. (#2326) 2025-10-22 14:54:59 +02:00
Andreas Süßenbach 608f95fb9f
Extent function call tests with Queue commands (#2320) 2025-10-09 14:00:49 +02:00
Andreas Süßenbach 2d30af554e
Extent function call tests with Layer discovery commands (#2313) 2025-10-02 12:12:38 +02:00
Andreas Süßenbach 07a9e8911c
Extent function call tests with Extension discovery commands. (#2308)
* Extent function call tests with Extension discovery commands.

* Extent function call tests with Extension discovery commands.
2025-09-30 13:35:39 +02:00
Andreas Süßenbach fda19f0bb3
Extend test DesignatedInitializers to use a struct with deprectated members. (#2305) 2025-09-30 10:45:07 +02:00
Andreas Süßenbach e0f4656f23
Extent function call tests with Device commands. (#2297) 2025-09-25 13:51:52 +02:00
Andreas Süßenbach 40596212e8
Start function call compile test to catch API changes: VK_VERSION_1_0, Device initialization (#2295) 2025-09-23 13:50:37 +02:00
Jan Kuhlmann 7519cc05ad
Tests: Enabled ArrayProxy test for C++Module, except for gcc <= 15 (#2277)
* enabled arrayproxy test for cxxmodule, except for gcc15

* include missing array header

* exclude gcc <16 from ArrayProxy cxxmodule test

* updated exclusion comment for ArrayProxy test
2025-09-16 17:13:41 +02:00
Andreas Süßenbach db104e1c01
Add template CppType to get from C-struct types to vk-struct types, valid with C++20 and above. (#2274) 2025-09-04 13:28:57 +02:00
Jan Kuhlmann 7fcd4522e0
Tests: Created std module versions of each test and enabled previously disabled tests (#2248)
* move vulkan module setup function to global scope

* use the vulkan include setup func for module setups instead of manual linking

* test setup function extended to allow for modules

* create std module variant for each test

* remove the obsolete NO_UTILS from test setup

* commented some TODOs

* only enable module tests when VULKAN_HPP_ENABLE_CPP20_MODULES is set

* reenable handles.cpp test

* remove use nested namespaces

* include array header for ArrayProxyNoTemporaries test

* include <compare> in enums for spaceship operator

* manually added <compare> to Flags.cpp test

* properly guarded <string_view> with c++17 requirement
2025-08-14 15:40:20 +02:00
Jan Kuhlmann aaf0cb61c4
CI: Reduce build times by reusing generated headers (#2254)
* reuse generated headers inbetween runs

* properly access env var

* fix windows compiler arg

* reintroduce ubuntu24 ci compilers

* fixed CXX_MODULES flag logic

* echoing build parameters, removing use of Ninja from windows CI

* fixed echo and temporarily disabled all but windows CI

* reenabled all ci

* compile glm, glfw and glslang once, fixed SPIRV include path

* remove usage of Ninja from windows ci (again)

* fixed glfw name to glfw3

* removed.. debug things

* remove dep install step from windows, enforce correct linking in utils

* compiling generators in debug mode without running them
2025-08-13 20:30:26 +02:00
Andreas Süßenbach 6bd3b4652c
Introduce defines VULKAN_HPP_DISPATCH_LOADER_[DYNAMIC|STATIC]_TYPE (#2244) 2025-08-11 13:36:46 +02:00
Jan Kuhlmann d996a13dfd
CMake: Only set CMAKE_CXX_STANDARD when not already set before (#2242)
* only set CMAKE_CXX_STANDARD when not already set before

* do not impose custom CXX_STANDARD for module tests
2025-08-07 08:16:26 +02:00
Andreas Süßenbach 167bb6afe0
Remove outdated flag VULKAN_HPP_TESTS_BUILD_ONLY_DYNAMIC (#2228) 2025-07-24 19:26:03 +02:00
Andreas Süßenbach 7dfe7d3ad9
Extend support of VULKAN_HPP_NO_EXCEPTIONS in the raii-namespace (#2226) 2025-07-22 13:48:50 +02:00
Jan Kuhlmann 7740791eef
fix cpp20 module test for gcc15 and remove use of dynamic dispatch macro (#2218) 2025-07-17 10:01:26 +02:00
Andreas Süßenbach dfed90530b
Cleanup work on compare operators (#2169)
* Cleanup work on compare operators

* Use defaulted spaceship operators for handles if available, otherwise use set of explicit comparison operators.
2025-06-24 08:31:14 +02:00
btmxh d5b553d969
Add support for vulkan_video.cppm module (#2162)
* Add support for vulkan_video.cppm module

Fix #2151

* Add a module version for the Video test

Currently this add vulkan_video.cppm to the VulkanHppModule target,
which might not be what we want (maybe guard this by an option(), or add
another target like VulkanVideoHppModule, etc.).

* Add a separate target for `vulkan_video.cppm`

* Extract common logic to `vulkan_hpp__setup_module`

* Fix several CMakeLists.txt issues

- Add `vulkan_video.cppm` to `VK_GENERATED_VULKAN_HEADERS`.
- Remove unnecessary ${ARGN} quotes.
- Move version checks out of `vulkan_hpp__setup_module`.
- Separate `FILE_SET_NAME` from `FILE_SET`.
2025-05-15 18:11:27 +02:00
Andreas Süßenbach 54cc539ab5
Add functions vk::isColor() and vk::getAllFormats() (#2166) 2025-05-14 08:41:20 +02:00
Andreas Süßenbach 450a047750
Extend depends handling of extensions to allow multiple sets of dependencies for the very same vulkan version. (#2126) 2025-04-03 20:21:11 +02:00
Andreas Süßenbach 63eff3a2e0
Re-introduce extension dependencies inspection (#2124)
* Re-introduce extension dependencies inspection.
2025-04-03 09:06:58 +02:00
Jan Kuhlmann 624143e366
ci: C++20 module testing (#2110)
* added module compilation to ubuntu ci

* added ubuntu 24.04 with clang++-19

* exclude g++-10 from module testing

* exclude clang++-19

* only perform module tests for c++20 and up

* added module option to ci matrix

* added module ci tests for windows, trying out ci ternary

* exclude windows-2019

* ubuntu ci module tests via ternary

* enabled module testing for c++23 in ubuntu

* properly negate c++23 filter

* more concise module flag

* re-trigger ci

* spread out excluded compilers for modules over multiple lines

* fixed json escape sequence

* enable module testing in ci-ubuntu-24

* revert accidental commit of testing opts

* properly convert compiler array to json

* merge Vulkan-Headers submodule version from main

* split up macos runners similar to windows and ubuntu, also enable module compilation

* added macos-15 runner for module testing

* trigger ci

* only test modules for cpp_standard >= 20

* attempt to fix macos module compilation

* revert module attempts on macos

* macos rename + clang++-18 removal, equalized module compilation flag for windows and ubuntu
2025-03-31 14:14:49 +02:00
Jan Kuhlmann f9c5bfde49
CMake: Cleanup of vulkan target and cpp module test (#2105)
* cleanup of vulkan target

* fixed cpp module test

* extend ubuntu ci to compile cpp modules

* only test cpp modules on ubuntu 24.04

* fixed condition syntax

* exclude gcc <=14

* revert ci for ubuntu
2025-03-18 08:52:47 +01:00
Andreas Süßenbach 325602c26a
Remove extension dependency inspection functions (temporarily) (#2094) 2025-03-06 17:17:32 +01:00
Andreas Süßenbach 8f9db1bad6
Minor cleanup work (#2090) 2025-02-24 18:02:40 +01:00
Jan Kuhlmann 7d7c25f9be
CMake: Added unified options for `VulkanHpp` and `VulkanHppModule` compile definitions (#2066)
* added compile definitions as cmake options

* use VulkanHpp dynamic dispatch setting for module

* adjusted comments

* adjusted dynamic loader tool option

* remove dynamic loader tool option

* removed non-boolean flags

* make VULKAN_HPP_DISPATCH_LOADER_DYNAMIC depend on VK_NO_PROTOTYPES

* added descriptions to options

* adjusted formatting

* fixed typo

* deprecated module-specific cmake flag VULKAN_HPP_CPP20_MODULE_DYNAMIC_DISPATCHER

* link to vulkan-1 on static dispatch loader

* typo fix

* only optionally find vulkan, warn in case it is missing
2025-02-13 07:56:23 +01:00
Andreas Süßenbach 1e92bf4fcd
Add inclusion of new encode file to VideoHppGenerator, add compile test for video. (#2002) 2024-12-02 08:51:02 +01:00
Andreas Süßenbach 06b91cfdc2
Add comparison operators for vk::raii handles, remove them for vk handles (#2001) 2024-11-28 08:50:43 +01:00
Andreas Süßenbach cdfa83ab79
Add specializations of std::hash for all the structs and handles in the vk-namespace. (#1994) 2024-11-26 11:08:49 +01:00
Andreas Süßenbach a4d53f4a22
Move extension inspection template to a snippet file. (#1992) 2024-11-11 11:41:24 +01:00
Andreas Süßenbach ed3cf7ac51
Move all the dispatcher related classes into namespace detail (#1983) 2024-10-29 08:13:51 +01:00
Andreas Süßenbach e80b3fae8a
Restrict commands taking an allocator as template argument to allocators of the correct data type (#1980) 2024-10-24 16:29:00 +02:00
Sharadh Rajaraman 6abd3f42a8
Use `import std;` guarded by macro (#1932)
* Initial build and tests setup

* Enable the `CppStdModule` test

* Snippets and generator changes

* Generated files changes

* Enable std module with macro

* Unconditionally use `import std` with C++23

* Add support for external `import std` control with `VULKAN_HPP_ENABLE_STD_MODULE`

- Rewrite `includes.hpp` and `macros.hpp`
- Unconditionally set `VULKAN_HPP_ENABLE_STD_MODULE` for `vulkan.cppm` to bug-fix
- Generated necessary files again

* Top-level CMake changes

* Reorganise logic, and propagate external macro correctly

* RAII: vulkan_hpp before ifdef

* Define `VK_USE_64_BIT_PTR_DEFINES` in `vulkan_hpp_macros.hpp`

* Generate the `VK_USE_64_BIT_PTR_DEFINES` clause from the XML instead of hardcoding it

* Refactored handling for `VK_USE_64_BIT_PTR_DEFINES`

- Updated condition to positive test for `#ifndef VK_USE_64_BIT_PTR_DEFINES` in `completeMacro`

* Added `#include <string.h>` to resolve `strnlen` missing in the module

* Use only `std.compat`

* FIx after rebase
2024-09-05 08:48:19 +02:00
Nikolai Siukosev ae1eb5f449
Non raii handles move exchange (#1929)
* Add move semantics for non-raii hpp handles. (#1919)

* Updated generated vulkan/* files
2024-07-23 09:55:09 +02:00
Andreas Süßenbach aac0b4d3ac
Simplify helper class vk::ArrayProxyNoTemporaries. (#1908) 2024-06-25 17:43:55 +02:00
Andreas Süßenbach 6604f5a1d9
Make generated headers resistant to missing definition of NOMINMAX for windows builds. (#1906) 2024-06-17 14:51:12 +02:00
Andreas Süßenbach 4d12a28006
Improve relational operators on ArrayWrapper1D. (#1890) 2024-06-06 08:35:49 +02:00
Andreas Süßenbach 4557f02974
Extend vk::su::createInstance to also take a vk::InstanceCreateFlagBits. (#1888) 2024-06-04 16:35:52 +02:00
Andrew H. Cox df42194eec
Fixed Validation Error for Zero MaxImageCount (#1844)
Correctly handle a zero max image count in VkSurfaceCapabilitiesKHR
which indicates no upper limit to the number of images in a swapchain.
Fixes validation error VUID-VkSwapchainCreateInfoKHR-minImageCount-01271
2024-04-11 08:44:50 +02:00
Andreas Süßenbach a7ac08b8d2
Guard type trait CppType to map from VkHandle to vk::Handle by ( VK_USE_64_BIT_PTR_DEFINES == 1 ). (#1836) 2024-03-25 14:00:43 +01:00
Andreas Süßenbach 194708b54c
Extent type trait vk::CppType to map from VkHandle to vk::Handle (#1829) 2024-03-19 14:07:03 +01:00
Shahbaz Youssefi d058397410
Add missing glslang headers (#1827) 2024-03-19 09:08:53 +01:00