Commit Graph

1102 Commits

Author SHA1 Message Date
Andreas Süßenbach 6a11b182e1
Extend support of video format properties (no code generated) (#1937) 2024-08-06 09:22:31 +02:00
Sharadh Rajaraman 003cf8e090
Don't export symbols in `vk::detail` namespace (#1931) 2024-08-05 14:26:29 +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 cdcde2bd0b
Parse <videocodecs> section (no code generated from) (#1926) 2024-07-23 09:47:41 +02:00
Janeczko Jakub 096e555640
Add alias bitmasks to module interface (#1917)
* add alias bitmasks to c++ module

* generate code

* format
2024-07-15 12:39:19 +02:00
Andreas Süßenbach 6f72ceca51
Add g++12 for ubuntu builds. (#1914) 2024-07-11 09:36:14 +02:00
Andreas Süßenbach 620cf05ac2
Improve IndexTypeTraits determination. (#1911) 2024-06-28 09:41:13 +02:00
Andreas Süßenbach 3b0d995a82
Introduce some special handlings for structure VkLayerSettingEXT. (#1910) 2024-06-27 13:32:31 +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 3be51fe651
Remove superfluous const in casts of function arguments by value. (#1905) 2024-06-17 14:40:59 +02:00
Andreas Süßenbach b7b92b1e45
Remove an outdated assertion (#1903) 2024-06-13 15:30:49 +02:00
Andreas Süßenbach 842406f2a6
Try to workaround a possible bug with clang and gcc... (#1902) 2024-06-13 14:07:04 +02:00
Andreas Süßenbach 45d90067ee
Add missing cast from VkResult to vk::Result. (#1901) 2024-06-13 13:45:46 +02:00
Andreas Süßenbach 66af8942cb
Fix command sequence for enumerating commands with just one success code. (#1900) 2024-06-13 10:08:18 +02:00
Andreas Süßenbach 235b1a2f85
Reorganized alias handling of constants. (#1899) 2024-06-13 09:47:27 +02:00
Andreas Süßenbach 71031df10a
Fix generation of the standard version of commands to only use the member handle for the first argument. (#1898) 2024-06-12 17:31:32 +02:00
Andreas Süßenbach dc6501456a
Add support for commands with three return parameters, two of them representing a vector. (#1897) 2024-06-12 16:36:03 +02:00
Andreas Süßenbach 600e6d67a2
Relax check for commands listed as required for a feature to just check if it's required for a different feature (#1896) 2024-06-12 13:52:23 +02:00
Andreas Süßenbach b35470b05f
Accept type size_t for vector size in vector-describing structure. (#1895) 2024-06-12 08:41:25 +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
Andreas Süßenbach a64aeb648b
Improved alias handling for enum values and structs; extended error checking commands listed as required in features. (#1889) 2024-06-05 16:44:13 +02:00
Andreas Süßenbach eb1f4cfb58
Update Vulkan-Headers to v1.3.286 (#1887) 2024-06-04 16:32:05 +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 d3f062dd68
Change default for template non-type parameter value of struct CppType from 0 to Type{}. (#1868) 2024-05-07 13:45:58 +02:00
Andreas Süßenbach 1bbd615b15
Change member initialization lists of structs to use braces {} instead of parentheses () (#1864) 2024-05-06 10:36:48 +02:00
Andreas Süßenbach 2518f528c0
Simplify handling of structextends (#1866) 2024-05-06 10:31:43 +02:00
Andreas Süßenbach 48b5595082
Simplified handling of struct aliases (#1858) 2024-05-02 09:28:44 +02:00
Andreas Süßenbach da28afe109
Simplify alias handling for handles. (#1857) 2024-04-30 09:12:25 +02:00
Sharadh Rajaraman 79307b6253
Check value of `VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL` instead of existence (#1856)
* Check value of VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL instead of existence

* Also change vulkansc.cppm
2024-04-29 08:59:01 +02:00
Andreas Süßenbach 1de6e89eb2
Explicitly set the copy/move constructors/assignment operators of vk::handle to be default; add static assert on is_copy_constructible for vk::handles (#1852) 2024-04-25 13:30:52 +02:00
Andreas Süßenbach 7bd57c7290
Simplify handling of enum aliases (#1850) 2024-04-24 08:33:25 +02:00
Andreas Süßenbach 0eafe7e55a
Fix name of enum values with more than one "BIT" in its name (#1848) 2024-04-18 16:11:14 +02:00
Andreas Süßenbach 11121e142a
Simplified constant alias handling (#1845) 2024-04-15 10:18:02 +02:00
Andreas Süßenbach 3134b1b42a
Simplify alias handling for Bitmasks and Commands. (#1843) 2024-04-11 08:43:15 +02:00
Andreas Süßenbach ed5b48b517
Pay attention to struct aliases to determine struct dependencies. (#1842) 2024-04-08 18:00:46 +02:00
Andreas Süßenbach bb66ad3b04
Moved some implementation details into namespace detail. (#1840) 2024-04-08 11:40:53 +02:00
Andreas Süßenbach 4e9c7ec4c3
Add SFIXED5 as valid value for numericFormat in format::component. (#1841) 2024-04-04 08:18:15 +02:00
Andreas Süßenbach d111d68be8
Simplify handling of enum value aliases (#1838) 2024-04-03 08:29:10 +02:00
Andreas Süßenbach 8c9901c072
Extend finding an enum value to also look for the aliases. (#1839) 2024-04-02 13:25:52 +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 89dd8393db
Refactored storing of enum values. (#1831) 2024-03-25 10:47:09 +01:00
Andreas Süßenbach ce84c37abf
Reorganized enum value alias handling. (#1830) 2024-03-21 08:05:15 +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 19f90f043f
Removed an invalid error check on structs. (#1828) 2024-03-18 12:11:31 +01:00
Andreas Süßenbach 695de1bc3a
Fix messages in checkExtensionCorrectness (#1826) 2024-03-11 11:56:56 +01:00
David Ryskalczyk 17226363e7
Fix for VULKAN_HPP_TYPESAFE_CONVERSION defined to 0 (#1806)
* Fix for VULKAN_HPP_TYPESAFE_CONVERSION defined to 0

* Remove the check if VULKAN_HPP_TYPESAFE_CONVERSION actually is defined, just check if it's 1.

---------

Co-authored-by: asuessenbach <asuessenbach@nvidia.com>
2024-03-11 09:39:39 +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 5e7649dcb5
Simplified generation of lists of arguments or initializers (#1821) 2024-03-05 08:16:22 +01:00
Andreas Süßenbach 85daa22a04
Relax requirements on FlagBits types. (#1817) 2024-02-29 08:26:01 +01:00
Andreas Süßenbach 73f210a604
Three fixes: (#1816)
- do not create enhanced struct constructors, if the length of an array is determined by a member of that struct that is a pointer;
- check for error if a command parameter has a len attribute, but is not a pointer
- accept sync access and sync stage to be multiply aliased.
2024-02-28 13:04:56 +01:00
Andreas Süßenbach 789c215e74
Accept multiple XML <formats> tags. (#1814) 2024-02-26 15:38:33 +01:00
Andreas Süßenbach 29723f90a1
Update Vulkan-Headers to v1.3.278 (#1810) 2024-02-19 22:00:57 +01:00
Andreas Süßenbach 4c130b9051
Switch from using strncpy to strncpy_s. (#1809) 2024-02-19 16:06:28 +01:00
Andreas Süßenbach 38e3e8f800
Fix ordering determination of structs. (#1807) 2024-02-19 12:35:54 +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 1b6ea3c295
Resolve warning on multiple len usage in struct VkVideoDecodeAV1PictureInfoKHR (#1791) 2024-02-06 13:16:16 +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
Andreas Süßenbach 6bdba3ef31
Add support for command argument attribute "len" with value "1". (#1789) 2024-02-05 13:13:38 +01:00
Andreas Süßenbach bba05939b9
Extend the noDeleterFunction list by vkReleaseCapturedPipelineDataKHR. (#1784) 2024-02-02 21:52:35 +01:00
Andreas Süßenbach 81be6ce248
Add missing brace. (#1783) 2024-02-02 21:34:43 +01:00
Andreas Süßenbach 3a946ddfa1
Specify std::min to work on type size_t for copy operations in struct constructors. (#1782) 2024-02-02 21:22:52 +01:00
Andreas Süßenbach 7bd7372016
Refactored gathering initializers for enhanced struct constructors. (#1781) 2024-02-02 18:22:51 +01:00
Andreas Süßenbach 78bfb316aa
Add support of attribute "len" for array-sized structure members. (#1779) 2024-02-02 12:53:29 +01:00
Andreas Süßenbach fa020b9bb5
Resolved some code analysis warnings. (#1774) 2024-01-23 14:10:52 +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
Andreas Süßenbach e4ea505027
Simplified typename checks on allocator template types (#1770) 2024-01-10 13:30:04 +01:00
Andreas Süßenbach 9eab68eb5d
Add function pointer check when using DispatchLoaderDynamic. (#1769) 2024-01-08 12:19:28 +01:00
Andreas Süßenbach db5c141013
Downgrade error on multiple identical "depends" attributes for "require" sections for an extension to a warning. (#1765) 2024-01-04 11:37:46 +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 52666b03f5
Resolve warning on struct with multiple members referencing the same member for len. (#1759) 2024-01-02 14:52:16 +01:00
Andreas Süßenbach 197017ef20
Add support of noexcept-path for vk::raii classes (#1742) 2024-01-02 13:47:01 +01:00
Andreas Süßenbach 6b132a4628
Fix usage of wrong command name when determining the skip count for that command (#1747) 2023-12-11 14:46:16 +01:00
Andreas Süßenbach 84b77d1406
Add support for a new class of commands. (#1741) 2023-11-29 19:21:22 +01:00
Andreas Süßenbach 5bd1e56054
Explicitly ignore new limittype "not". (#1740) 2023-11-29 19:20:27 +01:00
Patrick O'Connell 6453966415
Add missing includes (#1730) 2023-11-16 08:55:30 +01:00
Andreas Süßenbach 846ac99cee
Remove warning on "ratified" and "supported" being different for an extension. (#1728) 2023-11-14 16:50:41 +01:00
Sharadh Rajaraman 26664a38a4
Add extension macros as constexpr (#1710)
* Initial implementation

* Reordered prefixes, added SPEC_VERSION macro

- And added using statements to module file

* Actually add changes to .hpp and .cppm files

* Fixes for extension constexpr macros

- renamed some vars
- simplified logic and control flow

* Grouped by extension name rather than macro guards

- And added titles to all extension constexprs

* Syntax changes

- Removed the structured binding and fixed asserts
- Used C++20 functions
- Added another assert to check that extension and specversion macros exist

* Remove `std::ranges` usage
2023-10-26 14:59:13 +02:00
Andreas Süßenbach 962979c679
Identify delete commands starting with "vkRelease" (#1697) 2023-10-16 16:01:35 +02:00
Andreas Süßenbach c8cf030fe9
Add FlagBits type as required if it is not listed where the corresponding Flags type is required (#1689) 2023-10-10 21:54:36 +02:00
Anton Shangareev b961a1a4c2
Fix C++20 module build with -DVULKAN_HPP_NO_SMART_HANDLE (#1678)
* Move SharedHandle and UniqueHandle under correct preprocessor guard in .cppm

* Fix VulkanHppGenerator
2023-10-09 12:25:01 +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
Andreas Süßenbach eccf541cd4
Add support of hex numbers for enum values (#1671) 2023-10-02 14:56:27 +02:00
Andreas Süßenbach 9aa679e5e8
Add support of attribute "type" for a enums in an extension, storing them as a constant. (#1668) 2023-09-28 13:23:31 +02:00
Andreas Süßenbach f1b8af1157
Reduced listing of unused VkStructureType value from error to warning. (#1664) 2023-09-26 15:05:54 +02:00
Andreas Süßenbach 3e1e9b4653
Add support of commands returning void and getting two simple data type values. (#1663) 2023-09-26 12:02:43 +02:00
Andreas Süßenbach 37b50fa9ef
Revert "Update Vulkan-Headers to v1.3.265 (#1661)" (#1662)
This reverts commit 205758299b.
2023-09-25 15:28:32 +02:00
Andreas Süßenbach 205758299b
Update Vulkan-Headers to v1.3.265 (#1661) 2023-09-25 11:56:48 +02:00
Andreas Süßenbach 128261aa45
Add missing header in vulkan.cppm. (#1659) 2023-09-19 17:40:35 +02:00
Ilya Doroshenko 5d0d3b7bd9
Shared Handles (#1619)
* stage 1: added shared handles and all traits

* moved deleter to the shared part, now Shared handle weights 2 pointers

* Fixed Destroy Function

* generated headers

* At least no errors.

TODO: get image overload of shared handle back
make an example

* fixed all SFINAE issues, moved image specialization

* Added a sample

* made better example, added specialization for swapchain, added shared handles to readme

* Major update:
Fixed all wishes
Made std::shared_ptr do heavy lifting
Reduced code complexity
Added ParentType to basic handles
Added put and put_native for cross-abi usage

* more readme

* safer release()
removed put() for now

* better synchronization
inspired by STL shared_ptr implementation

* removed test shared pointer

* added forward type for better interop with VMA
added parent checking

* fixed getParent()

* added non-deleting overloads for Queue, DisplayKHR and PhysicalDevice

* Shared non-destoyed type now have handles

* using constructors are made to comply standard

* fixed leak

* shared handles migrated to own header,
made module entries

* header is independent now

* rebased repo, updated the example

* fixed most of the stuff

* renamed parent of, added guide to make shared handles

* vulkansc

* moved destructor to shared handle traits

* resolved issues with CI

* more relaxed memory ordering for release operation

* trying to remove submodule

* renamed to destructorType

* suppressed function cast warning

* only GCC should be affected
2023-09-19 13:04:36 +02:00
Andreas Süßenbach d60453f6ea
Introduce hard-coded default values for some structure members. (#1658) 2023-09-19 12:05:06 +02:00
Andreas Süßenbach 39c8c02de0
Make the tag on constants uppercase. (#1657) 2023-09-18 18:03:18 +02:00
Andreas Süßenbach 9004069b9b
Move Flags<> and FlagTraits<> from vulkan.hpp to vulkan_enums.hpp (#1654) 2023-09-07 18:42:46 +02:00
Andreas Süßenbach d4704cce01
Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651)
* Make C++20 modules work with the defaultDispatchLoaderDynamic.

* Add vulkan_hpp_macros.hpp to list of installed files.

* Adjust the text on module in the readme.

* Rename module from vulkan to vulkan_hpp

* Adjust some comments.

* Add a little disclaimer to vulkan.cppm.
2023-09-07 15:20:10 +02:00
Andreas Süßenbach a2e240c7e7
Relax check for constants as array size: also allow potentially externally defined constants (#1652) 2023-09-04 12:31:50 +02:00
Andreas Süßenbach 23606b20f7
Guard vk::raii names in vulkan.cppm just as in vulkan_raii.hpp. (#1650) 2023-08-28 13:30:00 +02:00
Andreas Süßenbach ef0dbd602b
Correct includes in vulkansc-headers. (#1645) 2023-08-28 10:21:34 +02:00
Andreas Süßenbach 57d54a0ba6
Introduce a helper function to dynamically map from vk::ObjectType to vk::DebugReportObjectTypeEXT. (#1639) 2023-08-16 08:37:43 +02:00
Andreas Süßenbach e2f5348e28
Relax check on "depends" for extension requires. (#1637) 2023-08-10 10:35:19 +02:00
Andreas Süßenbach 0e3e8967be
Extend the depends-handling in readExtension. (#1635) 2023-08-07 13:34:43 +02:00
Andreas Süßenbach b988e54dad
Sort constants by feature and extension. (#1628) 2023-07-26 22:12:40 +02:00
Andreas Süßenbach 24045ff3f4
Add support of alias'ed enums for IndexType/CppType traits generation (#1627) 2023-07-26 10:17:13 +02:00
Andreas Süßenbach 99027b5a24
Changed calls to std::map<>::find() to std::map<>::contains(), when appropriate. (#1623) 2023-07-17 09:48:44 +02:00
Andreas Süßenbach 207031caa4
change calls to std::find, std::find_if, and std::find_if_not to functionally identical calls to std::any_of, std::all_of, and std::none_of, when appropriate (#1621) 2023-07-13 11:26:01 +02:00
Andreas Süßenbach 069c3b875e
Introduce VideoHppGenerator. (#1618) 2023-07-11 15:39:17 +02:00
Sharadh Rajaraman f4abba455e
Bug fixes for `vulkan.cppm` (#1616)
* Bug fixes for C++20 module

- Removed nested `export` keyword for `vk::raii` namespace in C++ module file
- Fixed macro in `vulkan.cppm` for `vk::DynamicLoader`: changed from `VULKAN_HPP_DYNAMIC_LOADER_TOOL` to `VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL`  
- Moved VulkanHppModule declaration before generator
- Fixed `CMakeLists.txt` for `Cpp20Modules` executable target

* Use `VULKAN_HPP_CONSTEXPR_INLINE` for constants in `vulkan.hpp`

- Added VULKAN_HPP_CONSTEXPR_INLINE macro definition
- Allow external linkage for these constants in C++17 and later
2023-07-10 08:46:50 +02:00
Andreas Süßenbach 7a4ee5eaaf
Moved check on enum aliases from readTypeEnum to checkEnumCorrectness. (#1613) 2023-07-04 13:53:21 +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
Andreas Süßenbach 13808e5875
Introduce operator==() and operator!=() to compare vk-handles with nullptr. (#1600) 2023-06-22 09:07:26 +02:00
Andreas Süßenbach 397ffad84a
Fix defines in workflow files to enable compilation of tests and samples in CI. (#1595) 2023-06-20 14:43:35 +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
Andreas Süßenbach babfbddf32
Add support for new element <sync> in vk.xml (#1590)
That element tree is just parsed and some checks are done.
2023-06-13 14:25:23 +02:00
Andreas Süßenbach bc19e479f9
Fix determination of StructureChainAllocater usage for returned parameters. (#1591) 2023-06-13 14:24:10 +02:00
Andreas Süßenbach 523491a7df
Extent extension dependency inspection to allow multiple sets of dependencies per version. (#1578) 2023-05-17 10:23:27 +02:00
Andreas Süßenbach f618b6bd5d
Cleanup work on enum value handling. (#1573) 2023-05-04 13:35:50 +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 20cb37e39f
Add support of new extension attribute "ratified". (#1563) 2023-04-17 13:51:24 +02:00
Andreas Süßenbach 3427b0039b
Introduce overload of getExtensionDepends to get availability and dependencies by vulkan version. (#1559) 2023-04-12 11:48:59 +02:00
Andreas Süßenbach 9de0959474
Introduce extension inspection function vk::getExtensionDepends. (#1558) 2023-04-11 17:49:02 +02:00
Andreas Süßenbach d1d80ae723
Introduce extension inspection functions get[Device|Instance|Deprecated|Promoted|Obsoleted]Extension; renamed some of the previous extension inspection functions (#1556) 2023-04-11 09:14:50 +02:00
Andreas Süßenbach a4841bc2f0
Add new extension inspection functions getExtensionObsoletedBy() and isExtensionObsoleted() (#1555) 2023-04-05 13:37:34 +02:00
Andreas Süßenbach be1bb7645f
Add new extension inspection functions getExtensionPromotedTo() and isExtensionPromoted() (#1553) 2023-04-04 10:45:15 +02:00
Andreas Süßenbach 35ab2bb711
Fix handling of multiple vs. single success codes on handle creation with vulkan_raii.hpp. (#1550) 2023-04-03 12:10:39 +02:00
Andreas Süßenbach 91a92c6c5f
Add functions isExtensionDeprecated() and getExtensionDeprecatedBy() to extension_inspection. (#1547) 2023-03-30 13:25:09 +02:00
Andreas Süßenbach 2175530fd0
Improved tokenizing of extension attribute "depends" (#1546) 2023-03-29 13:33:42 +02:00
Andreas Süßenbach 4420e1f91e
First set of extension inspection helper functions: isDeviceExtension and isInstanceExtension (#1545) 2023-03-28 17:33:11 +02:00
Andreas Süßenbach 9d5220db12
Extend default case in throwResultException to also get the actual message. (#1544) 2023-03-27 12:31:14 +02:00
Andreas Süßenbach cfed28c23d
Resolve warning on a struct with multiple array members with the same len. (#1543) 2023-03-27 11:06:47 +02:00
Andreas Süßenbach 01db23af60
Minor cleanup work. (#1539) 2023-03-22 08:52:35 +01:00
Andreas Süßenbach a11116394a
Simplified and corrected structure alias handling. (#1538) 2023-03-21 11:22:48 +01:00
Andreas Süßenbach c45c87b559
Minor cleanup on supported/unsupported features/extensions. (#1537) 2023-03-21 08:10:00 +01:00
Andreas Süßenbach 086af6f3d7
Removed an invalid assertion in readRequireEnum. (#1534) 2023-03-16 17:16:12 +01:00
Andreas Süßenbach 044844394c
Add support for a new class of commands. (#1533) 2023-03-15 13:02:48 +01:00
Andreas Süßenbach fa079aefaa
Improve handling of attribute "stride" (#1532) 2023-03-13 14:48:55 +01:00
Andreas Süßenbach aac3be4855
Second step in generalizing handling of attribute "altLen" (#1529) 2023-03-13 09:08:01 +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 9bee68b723
Adjust name of included vulkan header. (#1527) 2023-03-08 10:10:54 +01:00
Andreas Süßenbach da4ab05a14
Adjust include snippet of vulkan[sc].hpp to actually use vulkan[sc]. (#1526) 2023-03-07 17:32:10 +01:00
Andreas Süßenbach ae07aa7254
First version to support both, "vulkan" and "vulkansc". (#1524)
The files set generated is controlled by command line argument -api [vulkan|vulkansc]
2023-03-07 08:23:14 +01:00
Andreas Süßenbach 31554d2aca
Simplify enum value alias handling. (#1523)
* Simplify enum value handling.

* Simplified enum value generation
2023-03-06 08:37:40 +01:00
Andreas Süßenbach 81633480b9
Simplified enum value handling (#1522) 2023-03-02 22:14:37 +01:00
Andreas Süßenbach 9e66a8886a
Refactor reading procedures (#1521) 2023-03-01 10:17:02 +01:00
Andreas Süßenbach bceab2b9d2
Change assertion to condition on generating the vector size check. (#1518) 2023-02-23 10:07:26 +01:00
Andreas Süßenbach 2207dc92c6
Corrected handling of attribute "depends" of <require> sections on extending enums. (#1517) 2023-02-22 16:20:44 +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
Andreas Süßenbach 7c073da2c1
Adjust handling of attribute "depends" in <extension> (#1508) 2023-02-16 16:07:33 +01:00
Andreas Süßenbach a3cd63a4e2
Add handling of attribute "deprecated", extend handling of attribute "api" (#1506) 2023-02-16 13:12:55 +01:00
Andreas Süßenbach 1e95278b04
Renamed member functions and variables from "skipped" to "removed". (#1505) 2023-02-16 08:24:33 +01:00
Andreas Süßenbach 25289b1d0d
Added missing support of attribute "comment" in require clause of extensions. (#1504) 2023-02-15 17:13:02 +01:00
Andreas Süßenbach ab08f20c01
Sort handle classes by feature and extension. (#1500) 2023-02-08 17:21:03 +01:00
Andreas Süßenbach e651117495
Unify detection logic for raii- and non-raii-command-generation (#1499) 2023-02-02 14:09:45 +01:00
Andreas Süßenbach d796a40abb
Add support for filtering out vulkansc stuff. (#1496) 2023-01-26 17:12:29 +01:00
Andreas Süßenbach db11b8b62b
Add support for a new type of functions. (#1492) 2023-01-23 16:41:43 +01:00
Andreas Süßenbach 8179bd05bd
Add support for a new class of commands. (#1481) 2023-01-20 20:41:26 +01:00
Andreas Süßenbach 5e8166e284
Handle potential shadowing of function parameter name "objectType" with class member. (#1476) 2023-01-09 11:32:23 +01:00
Andreas Süßenbach 49a288231b
Add missing braces in union constructors on array members. (#1469) 2022-12-13 10:03:05 +01:00
asuessenbach 5accdbc9d5 Adjust ci-ubuntu.yml to latest changes of runners. 2022-12-10 21:11:05 +01:00
asuessenbach 561354a79b Unify command set handling. 2022-11-29 13:38:36 +01:00
asuessenbach 1365fa3c27 Simplyfied some generator functions by combining a couple of bool arguments into a Flags object. 2022-11-28 16:53:24 +01:00
asuessenbach 556c0d3434 Introduce additional constructor for unions holding a fixed size array of data. 2022-11-24 08:59:50 +01:00
asuessenbach ad5f67d330 Add support of more complex logic of attribute <depends> 2022-11-23 17:42:23 +01:00
asuessenbach 9eab4b61e1 Add format trait function compatibilityClass() 2022-11-23 10:51:18 +01:00
asuessenbach 6412502686 Add support for a new class of functions. 2022-11-22 19:22:16 +01:00
asuessenbach 1b61fc6cf7 Use std::equal to compare array of null-terminated strings in structs. 2022-11-17 14:05:55 +01:00
asuessenbach 412471771a Fix include guard of vulkan_static_assertions.hpp 2022-11-16 08:38:00 +01:00
asuessenbach 73276f2c26 Remove outdated conditions around two init functions of the DispatchLoaderDynamic. 2022-11-14 12:28:20 +01:00
asuessenbach 196978705e Extent support of functions returning some typed value 2022-11-14 10:06:49 +01:00
asuessenbach 7b5fc43e10 Add support for attribute "depends". 2022-11-09 16:25:43 +01:00
asuessenbach d481557fef Improved plural-s detection in command names. 2022-11-09 09:58:48 +01:00
asuessenbach 33f2837650 Add support for handle creation functions taking createInfo structs that are not an anchor of a structure chain. 2022-11-07 11:30:47 +01:00
asuessenbach 2382684a69 Move explicitly defaulted copy assignment operators of structs into !defined(VULKAN_HPP_NO_STRUCT_CONSTRUCTORS) section
To explicitly default the copy assignment operator is only needed, if there are other constructors. Otherwise, some compilers warn about it.
2022-10-26 08:56:25 +02:00
asuessenbach d5ad2e1883 Introduce function release() to all vk::raii::HandleTypes. 2022-10-25 12:11:29 +02:00
asuessenbach 0f07e41849 Add support for functions getting a structure chain and having more than one success codes. 2022-10-24 12:33:27 +02:00
asuessenbach 1ab5fa6550 Support structs holding arrays of data, where the data size is given by a pointer-type.
In that case, no improved constructor and no improved setters are generated.

Plus some minor cleanup.
2022-10-24 10:39:19 +02:00
asuessenbach 4bf02b2588 Reorganized generating bitmasks in vulkan_enums.hpp. 2022-10-17 16:10:36 +02:00
asuessenbach 302389d550 Templatized bitwise operators on FlagBits. 2022-10-10 11:04:27 +02:00
asuessenbach a49fd51629 Minor cleanup on bitmask generation. 2022-10-05 16:58:40 +02:00
asuessenbach a55e3eb2a0 Cleanup on protection handling
+ some other minor cleanup
2022-10-05 09:28:37 +02:00
asuessenbach f5be57e498 Corrected handling of mutual exclusive arrays in constructors of structures VkAccelerationStructureTrianglesOpacityMicromapEXT and VkMicromapBuildInfoEXT 2022-10-04 11:34:04 +02:00
asuessenbach 7dc59adf40 Add support of "opticalflow" as a candidate for the "queues" attribute of a command. 2022-09-28 12:09:49 +02:00
asuessenbach 1173c9ab77 Allow union attribute "selection" to have multiple comma-separted values. 2022-09-27 08:50:36 +02:00
asuessenbach 6fe966c6d9 Fix inconsistency with return type of vk::raii::SwapchainKHR::getImages()
+ some minor cleanup
2022-09-21 10:08:07 +02:00
asuessenbach a630fcdf84 Explicitly ignore new command attribute "tasks" 2022-09-19 10:21:43 +02:00
asuessenbach d0317af5a9 [raii] Add missing handling of successCode in move-construction and move-assignment of multi-successCode handles. 2022-09-14 12:21:26 +02:00
asuessenbach 34725b3192 Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute. 2022-09-12 16:53:44 +02:00
asuessenbach 02c8049f42 Switch to C++20 for the Generator + some minor cleanup. 2022-09-06 18:22:04 +02:00
asuessenbach 5ede04aa9d Add support for functions returning more than one success code and getting two values. 2022-08-30 10:47:43 +02:00
Stephan Seitz 1e67e5aba4 fix: use feature test macros for usage of <format>
Fixes #1394
2022-08-29 23:12:25 +02:00
Stephan Seitz 8afaf0e2d0 fix: include <utility> in vulkan_raii.hpp for std::exchange 2022-08-29 23:12:25 +02:00
asuessenbach 5480d192f5 Refactor the CMakeLists for all the samples; use vulkan.hpp/vulkan_raii.hpp as precompiled header. 2022-08-10 15:29:28 +02:00
asuessenbach e8bf9bed9a Move all the static_assertions from vulkan_handles.hpp and vulkan_structs.hpp into the new header vulkan_static_assertions.hpp 2022-08-03 11:53:57 +02:00
Andreas Süßenbach 921995589d
Merge pull request #1375 from asuessenbach/error
Add missing string assignment.
2022-08-02 14:12:07 +02:00
Andreas Süßenbach a57b04a569
Merge pull request #1374 from asuessenbach/refactor
Refactor top-level file generation function.
2022-08-02 12:07:23 +02:00
asuessenbach deae8ceb49 Add missing string assignment. 2022-08-02 12:06:32 +02:00