Commit Graph

127 Commits

Author SHA1 Message Date
asuessenbach 49b11ea464 Correct tests "DeviceFunctions" and "DispatchLoaderStatic" to actually use the static dispatch loader. 2022-07-18 14:28:35 +02:00
Jinesi Yelizati 9748e47228
Speed up CI by using ninja and parallel build (#1347)
* chore(CI): speed up CI by using ninja and parallel build

* chore(CI): align compiler for c and cxx

* fix(samples): add dependency to generator

* fix(cmake): get rid of file glob

* chore(CI): use clang on mac

glfw don't support gcc on mac

* fix(sample): add depencency on build_vulkan_hpp

* fix(cmake): make sure every target in tests and samples link to utils
2022-07-07 10:22:21 +02:00
asuessenbach 9e4f6812fb Add CI on MacOS. 2022-06-21 14:48:56 +02:00
phantom10111 1bc663f851 Add tests for ArrayProxy constructors with raw arrays with size
Add tests for new ArrayProxy and ArrayProxyNoTemporaries constructors.
Also add more size assertions, to verify that ArrayProxy size is correct
after construction.
2022-04-19 11:49:17 +02:00
asuessenbach 26e2fc42c8 Combine two types of commands into one generation function. 2022-04-07 16:04:26 +02:00
asuessenbach d50485c5c7 Combine two types of commands into one generation function. 2022-04-07 08:48:55 +02:00
asuessenbach dd6deccf52 Add missing allocator template argument in createResultValue helper functions working on std::vector<UniqueHandle> types. 2022-04-04 10:00:13 +02:00
asuessenbach 16a44bb94f Re-add accidentally removed version of createResultValue
+ add test project for UniqueHandles.
2022-03-30 09:45:51 +02:00
asuessenbach 23c11fe38d Introduce copy constructor and assignment operator for vk::raii classes that hold handles without a destructor. 2022-03-22 13:53:21 +01:00
asuessenbach a104fd65d3 Combine two types of commands into one generation function. 2022-03-16 13:51:43 +01:00
asuessenbach 7e6083e5b2 Make test/FormatTraits.cpp valid for C++11. 2022-03-07 10:15:27 +01:00
asuessenbach bde88d1c87 Disable init-list-lifetime warning with tests in ArrayProxyNoTemporaries.cpp 2022-03-02 16:26:09 +01:00
asuessenbach 5fe410279a Change ColumnLimit with clang-format from 120 to 160. 2022-02-28 10:11:04 +01:00
asuessenbach 1c39502170 Extract trait functions on vk::Format into the additional header vulkan_format_traits.hpp. 2022-02-21 10:11:25 +01:00
asuessenbach eecfe9bf42 Extend operator==() and operator<=>() on structures to compare null-terminated string members 2022-01-05 16:20:13 +01:00
Antonio Maiorano e84bb64746 Fix std::hash specializations for null-terminated strings
Instead of hashing the pointer, hash the string contents.

Fixes: https://github.com/KhronosGroup/Vulkan-Hpp/issues/1169
2022-01-03 14:26:34 -05:00
asuessenbach cdb64cdefd Generate std::hash specializations into the new file vulkan_hash.hpp, requiring C++14 for std::hash specializations of the vulkan structures. 2021-12-13 17:00:00 +01:00
asuessenbach 3515c720fc Introduce support of std::hash for vk-structures. 2021-12-02 23:28:26 +01:00
asuessenbach 0c311a7589 Adjust comments in ArrayProxy and ArrayProxyNoTemporaries tests. 2021-11-22 15:11:03 +01:00
asuessenbach 13bdb2ff69 Introducde getDispatchLoaderStatic() to prevent dangling pointers in debug builds 2021-09-08 13:38:56 +02:00
asuessenbach af80b7aee8 Introduce constructors of ArrayProxy and ArrayProxyNoTemporaries from std::span (C++20) 2021-08-05 13:37:49 +02:00
asuessenbach fe846ff445 Extendend test on designated initializers 2021-03-22 10:24:07 +01:00
asuessenbach 2cb1c19c7f Introduce raii-compliant handle wrapper classes. 2021-02-22 16:19:12 +01:00
asuessenbach 8a21c2e0eb Fix function StructureChain::unlink(). 2021-01-21 16:56:14 +01:00
asuessenbach 2e2782448c Introduce new function StructureChain::isLinked<>() 2021-01-20 14:09:52 +01:00
Andreas Süßenbach b9ec269ab2
Merge pull request #845 from mtavenrath/fix_warnings
Fix compiler warnings on gcc/clang
2021-01-19 08:38:45 +01:00
Markus Tavenrath 160dc916f9 Change structure member sType to non-const to allow default assignment operator. Make copy constructor and copy assignment default. The latter is required for C++20 designated initializers. Delegate the constructor from C-type to the copy constructor by casting rhs accordingly. Fix warnings on gcc/clang. 2021-01-18 12:25:50 +01:00
asuessenbach dcc775eb53 Make ArrayProxyNoTemporaries complete by marking all constructors getting rvalue references as deleted. 2021-01-14 11:49:35 +01:00
asuessenbach e159e685d4 Add missing const-qualifier in the static_cast in function T const & StructureChain::getFeatures2() const. 2020-11-09 09:55:45 +01:00
asuessenbach 2e95313c1d fix some warnings (errors) on release build. 2020-10-20 10:05:18 +02:00
asuessenbach 8d1c84b3f5 Set warnings as errors for the generator, the samples, and the tests. 2020-10-14 17:44:16 +02:00
asuessenbach 0db791c687 Special handling for commands that get a size and a void-pointer to write data into
- marked previous function that got an ArrayProxy as deprecated (C++14)
- introduce a new function returning a std::vector of the given size
- introduce a new function returning a single value
2020-09-02 15:00:06 +02:00
Markus Tavenrath 6f4e1e41a7 Add documentation on how to build the generator, tests, and samples. 2020-08-13 11:38:21 +02:00
asuessenbach 8918c644a7 Update of submodule glslang 2020-07-29 09:16:09 +02:00
asuessenbach 99f990afa1 Extend template argument list for functions returning a std::vector<Stuff> to help compilers detecting the correct function.
+ change the order of Allocator and Dispatch template arguments for functions returning a std::vector<UniqueStuff>, as the Allocator needs to use the Dispatch in those cases!
2020-07-23 18:14:05 +02:00
asuessenbach fba2516d9c Remove implicit cast operators on ResultValue<T>
As it turned out to not provide a complete solution to the C++-API-change issue on logical-change of the C-API, we simply remove those implicit cast operators. That is, accessing the result and the value need to be explicit.
2020-07-22 16:49:42 +02:00
asuessenbach d86303c0e4 Introduce structure constructors using ArrayProxyNoTemporaries 2020-07-09 12:03:03 +02:00
Markus Tavenrath 34076925af Add defines to put the storage for a DispatchLoaderDynamic in a DLL. 2020-06-29 09:21:28 +02:00
asuessenbach db58507063 Introduce VULKAN_HPP_NO_STRUCT_CONSTRUCTORS so support designated initializers.
You have to define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS to remove all the struct constructors from vulkan.hpp, so that you can use designated initializers on them.
Of course, makes only sense with C++20.
2020-06-24 11:28:43 +02:00
asuessenbach 92bc17981b Provide default arguments in ObjectFree constructor for allocationCallbacks and dispatcher. 2020-06-18 11:00:22 +02:00
asuessenbach 3724bfd0f5 Add cast operator to reference of UniqueHandle of ResultValue<UniqueHandle>. 2020-06-17 11:44:12 +02:00
mocabe 52dc8eb2fe [test] Rename target ResultValueRValue to ResultValue 2020-06-02 08:45:57 +02:00
mocabe a7f155f6bc [test] Update test for ResultValue 2020-06-02 08:45:57 +02:00
mocabe 63f3412b03 [test] Add missing test cases for ResultValueRValue.cpp 2020-06-02 08:45:57 +02:00
asuessenbach 8958396a0c Add support for "allowduplicate" attribute on chainable structures. 2020-05-25 09:36:20 +02:00
Alexandros Frantzis 18da9fdcfd Provide rvalue cast operator for ResultValue
Allows objects returned as ResultValue (instead of
ResultValueType::type) to be moved without requiring
additional casting or explicit use of ResultValue::value.

Resolves #589
2020-05-05 15:45:10 +03:00
asuessenbach f5e59484a6 Introduce usage of clang-format to format vulkan.hpp and the other sources. 2020-04-23 10:55:02 +02:00
asuessenbach d40c96b45e [WIP] test on ArrayProxy 2020-04-15 16:42:41 +02:00
asuessenbach cc77b67bb8 Provide std::hash<vk::HandleType> to make handles hashable. 2020-04-06 10:41:42 +02:00
asuessenbach 0ea8a527ba Introduce ArrayWrapper?D, replacing ConstExpression?DArrayCopy
+ no explicit copy constructor of structs needed any more
+ removed assignment operator of structs that don't hold a const sType member (for those, we still need the assignment operator!)
+ simplified operator==() of structs (pre C++20)
+ resolved some 32bit warnings
2020-03-25 12:35:35 +01:00
asuessenbach 241e70e9cd Correct ConstExpression2DArrayCopy
+ introduce new test ArrayCopy
2020-02-24 12:05:49 +01:00
Andreas Süßenbach b08af45046 Resolve warnings from gcc.
Resolves #505
2020-02-13 10:27:30 +01:00
tomilov d61800c3be remove unnecessary condition 2020-01-30 21:05:44 +05:00
tomilov bbbbf6b751 add missing initialization of dynamic dispatcher 2020-01-30 14:46:20 +05:00
mocabe b6a190f4a2 Building samples for Linux (#491)
* CMake: Fix SAMPLES_BUILD and TESTS_BUILD

* CMake: Enable sample build on linux

* samples: Use glfw for window creation

* samples: Fix include order

* samples: Support new window handling

* samples: Add build target for util

* samples: Update CMake scripts to use util target

* samples: Add WindowData to manage unique window

* samples: Surface handling using WIndowData

* sampels: Remove call for vk::su::destroyWindow()

* CMake: FIx more options

* samples: Build SurfaceCapabilities only on WIN32

* samples: Fixed RayTracing sample to build on Linux

* samples: Fix wrong check on SurfaceProtectedCapabilitiesKHR

This also fixes compilation with MinGW gcc/clang

* CMake: check CMAKE_SYSTEM_NAME for Linux samples

* CMake: Add source group for utils

* samples: Fix potential bugs

* samples: Reduce warnings on gcc/clang

* samples: Fix missmatched new/free() which is UB

* samples: Add missing initialization for dynamic dispatcher

* samples: Remove unnecessary  dispacther construct

Co-authored-by: Andreas Süßenbach <asuessenbach@nvidia.com>
2020-01-28 10:16:10 +01:00
Andreas Süßenbach 33b244859b Add specific initialization of Flags and FlagBits. (#489)
Resolves #488.
2020-01-16 12:12:31 +01:00
Markus Tavenrath 499d4bb33d
Bring back default arguments to ObjectDestroy class. Update header to Vulkan 1.130 (#468)
Fix issue #467
2020-01-03 10:59:59 +01:00
Andreas Süßenbach f2058303cb Introduce functions vk::StructureChain::unlink<ClassType>() and vk::StructureChain::relink<ClassType>(). (#441)
Resolves #439.
2019-11-28 15:58:15 +01:00
Markus Tavenrath 10aa543b7e Use existing tests for appveyor. (#426) 2019-11-06 16:56:52 +01:00
Markus Tavenrath e26cb8113a Add support for a full volk replacement by supporting a global DispatchLoaderDynamic. The global dynamic dispatcher will be available if either the define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC is set to 1 or if VK_NO_PROTOTYPES is defined. In those cases it is required to add VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE; to any compilation unit of the project to allocate storage for the dispatcher. (#390) 2019-09-25 11:59:39 +02:00
Markus Tavenrath 48d540a23d Add vk::DynamicLoader and simplify usage of vk::DispatchLoaderDynamic. Update Vulkan-Headers to 1.1.123 (#387) 2019-09-24 12:12:49 +02:00
Andreas Süßenbach d811c3a7e2 Add sample Template; some generalization in utils; some minor improvements in some samples. (#349)
* Add samples SecondaryCommandBuffer and SeparateImageSampler.

+ made some helper functions more explicit.

* Add sample Template, some generalizations in utils, some minor improvements in various samples.
2019-06-25 09:47:27 +02:00
Andreas Süßenbach a6ad0f1eff Re-introduce vulkan/vulkan.hpp; adjust include order to use that header in samples and tests (#340) 2019-06-11 13:25:36 +02:00
Markus Tavenrath 50e0a941e9
Use new Vulkan-Headers repository. Don't generate createReturnValue function call if the return type is void. (#335) 2019-06-06 13:13:38 +02:00
Andreas Süßenbach fba738079a Use CMake's find_package to locate vulkan for samples and tests. (#308) 2019-04-01 08:52:22 +02:00
Andreas Süßenbach 45590a9bd7 Change include paths and argument type on main functions to ease linux adoption (#307) 2019-03-19 15:35:08 +01:00
Andreas Süßenbach e935e6291e
Update to Vulkan 1.1.103 (#298) 2019-03-12 09:32:39 +01:00
Andreas Süßenbach 05497cb191
Changed from using outdated environment variable VK_SDK_PATH to VULKAN_SDK. (#286) 2019-01-28 14:47:13 +01:00
Andreas Süßenbach 67ffe214e3 Change API of class DipatchLoaderDynamic to be based on vkInstance etc. instead of vk::Instance; add test to show how to use it. (#284) 2019-01-22 09:03:03 +01:00
Andreas Süßenbach a147b07737 Cleanup code generation with focus on removing the need to sort all dependencies before writing them. 2019-01-09 11:55:11 +01:00
Andreas Süßenbach b4080fb425 Correct usage of UniqueHandle<Type,Dispatch> in functions returning vectors of UniqueHandle<Type>. (#278) 2018-12-05 15:53:54 +01:00
Andreas Süßenbach 80518392d5 Introduced NoException test and resolved some warnings on unused parameters in the createResultValue functions. (#275) 2018-12-03 14:30:36 +01:00
Andreas Süßenbach a616542f3c
Fix issue with unused parameter "vectorAllocator" in some functions. (#277)
+ update to version 94.
2018-11-29 13:21:24 +01:00
Andreas Süßenbach 8205bf6dbe
Update to Vulkan 1.1.91 (#267) 2018-11-06 08:51:33 +01:00
Andreas Süßenbach 127de1bf93 Update to Vulkan 1.1.85. (#258) 2018-09-25 10:46:26 +02:00
Andreas Süßenbach 295d5c755f Extend checking of StructureChains to allow transitive extension. (#254) 2018-09-20 15:20:00 +02:00
Andreas Süßenbach 1ddafc1c56 Corrected functions dealing with StructureChains. (#253)
+ adjusted readme.md accordingly
+ added (a first!) test project
2018-09-19 13:49:43 +02:00