Commit Graph

150 Commits

Author SHA1 Message Date
GitHub
26cf5590cb Update Vulkan-Headers to v1.3.297
Some checks failed
Set Version Tag / set-version-tag (push) Has been cancelled
2024-10-05 21:26:32 +02:00
Sharadh Rajaraman
6abd3f42a8
Use import std; guarded by macro (#1932)
Some checks are pending
Set Version Tag / set-version-tag (push) Waiting to run
* 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
Andreas Süßenbach
98ea600e1f
Removed special handling for enumerating commands with complex size information via a struct, generating just the standard function in such cases (#1952) 2024-08-26 16:21:45 +02:00
github-actions[bot]
bd70384cd4
Update Vulkan-Headers to v1.3.294 (#1951)
Co-authored-by: GitHub <noreply@github.com>
2024-08-26 16:06:58 +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
github-actions[bot]
f7f0d8ccaa
Update Vulkan-Headers to v1.3.291 (#1924)
Co-authored-by: GitHub <noreply@github.com>
2024-07-22 13:20:20 +02:00
Andreas Süßenbach
d507727fd7
Add support for enumerating functions that originally take a struct with the vector information. (#1892) 2024-06-11 16:53:15 +02:00
github-actions[bot]
6fb0c202be
Update Vulkan-Headers to v1.3.287 (#1891)
Co-authored-by: GitHub <noreply@github.com>
2024-06-10 11:37:10 +02:00
Andreas Süßenbach
c8dd4fb5ea
Add support for enumerating commands with more than two success codes. (#1870) 2024-05-08 18:46:23 +02:00
Andreas Süßenbach
bb66ad3b04
Moved some implementation details into namespace detail. (#1840) 2024-04-08 11:40:53 +02:00
github-actions[bot]
88d508b32f
Update Vulkan-Headers to v1.3.281 (#1834)
Co-authored-by: GitHub <noreply@github.com>
2024-03-25 13:50:59 +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
Andreas Süßenbach
2b35399a73
Remove unnecessary static_casts on vk::Results. (#1822) 2024-03-06 08:54:20 +01:00
Andreas Süßenbach
29723f90a1
Update Vulkan-Headers to v1.3.278 (#1810) 2024-02-19 22:00:57 +01:00
Nikolai Siukosev
f1a38ff729
Disabled vk::raii::exchange() implementation for C++14 or newer (#1803)
* Disabled `vk::raii::exchange()` implementation for C++14 or newer. Replaced with `using std::exchange`

* Regenerated raii headers
2024-02-15 08:35:02 +01:00
Andreas Süßenbach
982afd2929
Special handling for command vkGetDeviceFaultInfoEXT: changed return type from ResultValue to ResultValueType (#1800) 2024-02-08 15:30:36 +01:00
Andreas Süßenbach
c74c22fb77
Use some special handling for struct vk::DeviceFaultInfoEXT (#1796) 2024-02-08 11:40:27 +01:00
Andreas Süßenbach
9fa4459c50
Add special handling for call sequence in commands for vkGetDeviceFaultInfoEXT (#1790) 2024-02-05 15:44:40 +01:00
github-actions[bot]
d4b36b8223
Update Vulkan-Headers to v1.3.276 (#1776)
Co-authored-by: GitHub <noreply@github.com>
2024-01-29 14:01:04 +01:00
Andreas Süßenbach
3e6fed9492
Introduce implicit cast operators for vk::UniqueHandles, vk::SharedHandles and vk::raii::Handles (#1771) 2024-01-16 13:48:53 +01:00
github-actions[bot]
1a24b01583
Update Vulkan-Headers to v1.3.275 (#1768)
Co-authored-by: GitHub <noreply@github.com>
2024-01-08 10:21:39 +01:00
Andreas Süßenbach
d2f13e2f7f
Include <memory> in vulkan_raii.hpp to have std::unique_ptr available. (#1762) 2024-01-03 11:49:10 +01:00
Andreas Süßenbach
197017ef20
Add support of noexcept-path for vk::raii classes (#1742) 2024-01-02 13:47:01 +01:00
github-actions[bot]
2cc4dbdbca
Update Vulkan-Headers to v1.3.274 (#1754)
Co-authored-by: GitHub <noreply@github.com>
2024-01-02 13:10:46 +01:00
github-actions[bot]
170a000750
Update Vulkan-Headers to v1.3.273 (#1748)
Co-authored-by: GitHub <noreply@github.com>
2023-12-13 13:32:34 +01:00
GitHub
f28803081e Update Vulkan-Headers to v1.3.271 2023-11-28 05:51:00 -08:00
github-actions[bot]
9c15a1e1ef
Update Vulkan-Headers to v1.3.269 (#1707)
Co-authored-by: GitHub <noreply@github.com>
2023-10-23 13:58:24 +02:00
github-actions[bot]
d8d8b53a31
Update Vulkan-Headers to v1.3.267 (#1681)
Co-authored-by: GitHub <noreply@github.com>
2023-10-09 10:15:08 +02:00
Andreas Süßenbach
f76ce52df5
Introduce using CppType type-trait for raii-classes, add two helper functions to filter the cpp-types out of a vector of raii-types. (#1672) 2023-10-05 15:19:16 +02:00
Andreas Süßenbach
f97633a220
Extend command generation to support not returning some return stuff and not templatizing a void pointer. (#1666) 2023-10-02 14:57:52 +02:00
github-actions[bot]
7b70ce4831
Update Vulkan-Headers to v1.3.266 (#1670)
Co-authored-by: GitHub <noreply@github.com>
2023-10-02 10:43:10 +02:00
github-actions[bot]
68052d9343
Update Vulkan-Headers to v1.3.260 (#1629)
Co-authored-by: GitHub <noreply@github.com>
2023-07-31 13:37:47 +02:00
github-actions[bot]
48b4b6f985
Update Vulkan-Headers to v1.3.259 (#1626)
Co-authored-by: GitHub <noreply@github.com>
2023-07-24 10:39:52 +02:00
Andreas Süßenbach
2613539ff4
Change move assignment operators of vk::raii handles from using std::exchange to using std::swap (#1607) 2023-06-28 17:03:08 +02:00
Sharadh Rajaraman
6c1996f068
Add C++20 module interface file and tests (#1582)
* feat: exported vk::raii types in vulkan.ixx, with a small test

* feat: *almost* complete vulkan.ixx; missing functions in vulkan_funcs.hpp and constexpr auto defines

* Exported free functions in `vulkan_funcs.hpp` in `vulkan.ixx`

* Completed vulkan.ixx

Exported all types, structs, functions; need to handle anonymous namespace and getDispatchLoaderStatic()

* Moved `vk::anon-namespace::throwResultException` to `vk::detail::throwResultException` to solve linking errors

* Made `vk::getDispatchLoaderStatic` not `static`

`static`in namespace/global scope has to do with internal/external linkage, and not lifetime

* Fixed debug assert fail in `generateCppModuleStructUsings`

* Removed references to `.cppm`

* Formatting and versioning changes

- CMake version handling simplified
- vulkan.ixx includes new structs from new versions
- vulkan.hpp and vulkan_raii.hpp reformatted with clang-format 14

* Removed extraneous includes

- std::optional -> std::string::empty
- std::filesystem was unused

* Fixed constexpr function and value generation
- 'c' prefix removed
- Constants casing fixed
- Types for constants fixed
- Constants assigned to macros
- Ordering of constants and consteval functions fixed

* Moved constexprs to `vulkan.hpp`

- Added corresponding `using` statements to `vulkan.ixx`
- Changed `consteval auto(auto)` functions into templated SFINAE `constexpr` functions

* Formatting, signposting, misc fixes

- Added newlines around macro guards
- Added signposting comments for relevant groups of `using`-statements in `vulkan.ixx`
- Guarded createInstanceUnique with macro guard
- Use m_handles.at("").commands for Funcs

* Changed module file extension to `.cppm`

- It follows the rest of the project convention; `ixx` looks really weird next to `.hpp` and `.cpp`
- CMake transparently handles any extension anyway

* Added `VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE` to `vulkan.cppm`

* Added format traits and extension inspections

- Straightforward, since everything is hard-coded

* Added documentation about Vulkan-Hpp C++ module

- Compiler requirements
- CMake compilation
- Command-line examples

* Added vulkan_hash.hpp

- No need for `using`, since all declarations are template specialisations of existing `std` objects

* Documentation and comment fixes

- Removed extraneous CMake version comments
- Documentation about default dynamic dispatcher with the module
- Comment updates in the source code

* Moved constexpr defines and using statements 

- Moved to after resultUsings in both vulkan.hpp and vulkan.cppm
- Also split up constexprDefinesAndUsings
- Used const_cast for constexprDefines()

* Used std::string instead of std::stringstream

- Some changes also in previous commit
- Also removed overly-clever ranges algorithms

* Simplified protection generation

- Removed `generateNotProtection`
- Added optional `bool` parameter to `generateProtection` for `#if !defined( ... )`

* Simplified Cpp20Modules CMakeLists

- Made C++ standard and libraries into parameters
- Removed FindVulkan call; already done

* `constexpr` generation fixed

- Made all generating functions `const`
- Removed typos and extra comments
- Extracted out filtering functionality into separate functions

* Simplified defines partition generation

- Added `DefinesPartition` struct as a member variable
- Added non-const function to write to the above in `readTypeDefines`
- Removed previous implementation that made many copies

* Added `generateUsingsAndProtection` lambda to RAII name generation

* Moved around `partitionDefines` to make more sense

- called once at the end of the constructor
- edited comments

* Updated headers to 1.3.255

* Removed std::ranges and ranges view adaptors

- CI isn't passing with them

* Fixed constexpr functions for C++11 and C++14

- Removed `enable_if_t` and `is_integral_v` 
- Changed `auto` return type into `uint32_t`

---------

Co-authored-by: Sharadh Rajaraman <r.sharadh@yahoo.com.sg>
2023-06-28 14:10:51 +02:00
github-actions[bot]
3d95b910da
Update Vulkan-Headers to v1.3.255 (#1604)
Co-authored-by: GitHub <noreply@github.com>
2023-06-26 14:12:49 +02:00
Andreas Süßenbach
9f89f760a6
Update Vulkan-Headers to v1.3.254 (#1596) 2023-06-19 15:02:19 +02:00
Andreas Süßenbach
c55cf16397
Fix wrong usage of 'structureChains' in generating functions returning a StructureChain and a vector of data. (#1594) 2023-06-19 12:46:04 +02:00
GitHub
0ab2f4a18a Update Vulkan-Headers to v1.3.253 2023-06-11 16:53:55 +02:00
GitHub
9c3fb4f8df Update Vulkan-Headers to v1.3.251 2023-05-30 02:36:42 -07:00
github-actions[bot]
d4d0ac4859
Update Vulkan-Headers to v1.3.250 (#1574)
Co-authored-by: GitHub <noreply@github.com>
2023-05-08 11:07:25 +02:00
Andreas Süßenbach
6bf5c311b2
Add support for a new class of functions (#1570)
plus refactor returnType generation
2023-04-26 10:56:57 +02:00
Andreas Süßenbach
95c622a64f
Extend support of some special type of functions. (#1567) 2023-04-24 18:06:06 +02:00
Andreas Süßenbach
678295aa75
Update Vulkan-Headers to v1.3.246 (#1551) 2023-04-03 13:29:44 +02:00
github-actions[bot]
1bd3877dcc
Update Vulkan-Headers to v1.3.244 (#1535)
Co-authored-by: GitHub <noreply@github.com>
2023-03-20 10:03:08 +01:00
Andreas Süßenbach
f4b679c7e7
First step in generalizing handling of attribute "altLen". (#1528) 2023-03-09 10:04:33 +01:00
Andreas Süßenbach
9e66a8886a
Refactor reading procedures (#1521) 2023-03-01 10:17:02 +01:00
github-actions[bot]
3853394ffa
Update Vulkan-Headers to v1.3.241 (#1516)
Co-authored-by: GitHub <noreply@github.com>
2023-02-21 11:20:28 +01:00
Andreas Süßenbach
71acf3515b
Change requiredIn in TypeData from std::string to std::set<std::string> (#1514)
+ some member data renaming
2023-02-20 20:01:34 +01:00
Andreas Süßenbach
00eee2ef0f
Change referencedIn in CommandData from std::string to std::set<std::string> (#1512) 2023-02-20 15:58:14 +01:00