826 Commits

Author SHA1 Message Date
asuessenbach
192bf5f3ed Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, and any number of const pointers is generalized to support const void pointer as well, replacing those arguments by const& on a templated type.
2022-01-11 09:45:35 +01:00
asuessenbach
6cbe0ba5e2 Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, just one const pointer is generalized to support a const void pointer as well, replacing that argument to a const& on a templated type.
2022-01-10 11:50:11 +01:00
asuessenbach
eecfe9bf42 Extend operator==() and operator<=>() on structures to compare null-terminated string members 2022-01-05 16:20:13 +01:00
Andreas Süßenbach
a5070c4094
Merge pull request #1170 from amaiorano/fix-hash-null-terminated-strings
Fix std::hash specializations for null-terminated strings
2022-01-04 12:08:35 +01:00
Andreas Süßenbach
cb5347205f
Merge pull request #1173 from asuessenbach/deprecated
Remove deprecated version of function Device::getCalibratedTimestampsEXT().
2022-01-04 08:51:22 +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
10e8f07e85 Remove deprecated version of function Device::getCalibratedTimestampsEXT(). 2022-01-03 15:33:51 +01:00
asuessenbach
edc0ce883f Restrict reflect() on structures to non-GCC and GCC version above 7.5. 2022-01-03 14:17:12 +01:00
asuessenbach
ce3eb55ada Introduce simple reflection function on vk-structs
Used that to simplify comparison operators.
2021-12-16 14:35:17 +01: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
78379f769d Check for correct formats specifications only if formats are specified. 2021-12-08 08:42:04 +01:00
asuessenbach
6fdeaa8001 Make struct cast operators explicit. 2021-12-07 10:39:23 +01:00
asuessenbach
55651f5120 Downgrade <formats> tag from required to optional. 2021-12-06 17:18:42 +01:00
asuessenbach
3515c720fc Introduce support of std::hash for vk-structures. 2021-12-02 23:28:26 +01:00
asuessenbach
e9b463000e Enable check on planeIndex in format components 2021-12-02 12:27:34 +01:00
asuessenbach
5d5182ce70 Introduce a couple of trait functions on vk::Format. 2021-11-29 10:00:19 +01:00
asuessenbach
3abe5cb0df Extended checks on VkFormat. 2021-11-25 10:23:19 +01:00
Andreas Süßenbach
736b33c650
Merge pull request #1150 from asuessenbach/fix
Filter out to get vkGetInstanceProcAddr in vk::raii::InstanceDispatcher
2021-11-24 12:25:42 +01:00
asuessenbach
8e3a52edc0 Filter out to get vkGetInstanceProcAddr in vk::raii::InstanceDispatcher
Since Vulkan 1.2 this can return nullptr!
2021-11-24 08:42:52 +01:00
asuessenbach
976debbd80 Add support for new elements <formats> in vk.xml. 2021-11-23 13:23:14 +01:00
asuessenbach
0c311a7589 Adjust comments in ArrayProxy and ArrayProxyNoTemporaries tests. 2021-11-22 15:11:03 +01:00
Niels Möller
f500c42658 Generalize ArrayProxy and ArrayProxyNoTemporaries constructors
Add new constructors that accept any vector-like type (with
compatible .data() and .size() methods). Replaces the more specific
constructors accepting std::array, std::vector and std::span.
2021-11-17 14:26:17 +01:00
asuessenbach
a3807fb92b Use VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL with vk::raii::Context
-> vk::raii::Context constructor now either gets
     no argument as before, loading vkGetInstanceProcAddr via an internal DynamicLoader;
     or a PFN_vkGetInstanceProcAddr, using that to fill the dispatcher
+ changed the sample RAII_Samples/RayTracing to work with VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL defined to be zero
+ fixed the missing destructor call in most of the move assignments of the vk::raii classes
2021-11-16 18:07:19 +01:00
asuessenbach
bf73d74aa9 Remove deprecated versions of function PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR 2021-11-16 13:29:50 +01:00
Andreas Süßenbach
6d5e90ec59
Merge pull request #1140 from asuessenbach/fix
Fix vector constructor argument in generateCommandResultEnumerateChained()
2021-11-16 11:46:08 +01:00
Andreas Süßenbach
9b94931267
Merge pull request #1137 from asuessenbach/link
Fix wrong linking in copied StructureChains with unlinked elements
2021-11-16 08:40:42 +01:00
asuessenbach
bb7e7b3089 Fix vector constructor argument in generateCommandResultEnumerateChained() 2021-11-16 08:38:51 +01:00
asuessenbach
75bf4a0f93 Fix allocator name in generateCommandResultEnumerateChained()
+ correctly format vulkan_structs.hpp
2021-11-15 23:25:42 +01:00
Andreas Süßenbach
323c921a19
Merge pull request #1132 from Saalvage/more-constexpr
More support for constexpr
2021-11-15 17:59:19 +01:00
asuessenbach
5009b39f57 Fix wrong linking in copied StructureChains with unlinked elements 2021-11-15 17:50:18 +01:00
asuessenbach
b5d312187c Add support of functions enumerating chained structure data.
+ slightly reordered error handling in enumerating functions.
2021-11-15 15:05:17 +01:00
Salvage
4017a99055
More constexpr support! 2021-11-12 02:59:37 +01:00
asuessenbach
e5f9ef470e Minor cleanup work. 2021-11-11 16:00:22 +01:00
Andreas Süßenbach
f352a3efd8
Merge pull request #1128 from asuessenbach/version
Check for "VK_API_VERSION_m_n" or "VK_VERSION_m_n" in SPIRVCapabilities and SPIRVExtensions
2021-11-09 11:04:29 +01:00
asuessenbach
08bbbe892f Check for "VK_API_VERSION_m_n" or "VK_VERSION_m_n" in SPIRVCapabilities and SPIRVExtensions 2021-11-09 08:57:08 +01:00
asuessenbach
2a55e8ef2f Minor cleanup work. 2021-11-09 08:40:53 +01:00
asuessenbach
0beeac873a Remove dumb parent-pointer in raii-objects. 2021-11-08 17:31:36 +01:00
asuessenbach
533129308a Change m_dispatcher in vk::raii::Context, vk::raii::Instance and vk::raii::Device from member to std::unique_ptr<> 2021-11-04 13:53:43 +01:00
asuessenbach
c2a3cfad1a Extend enum type search in readEnums. 2021-11-02 18:55:43 +01:00
asuessenbach
c7838676bd Minor cleanup work. 2021-11-02 09:31:32 +01:00
Andreas Süßenbach
95fbfbe36d
Merge pull request #1115 from asuessenbach/throw
Change function throwResultException from static to anonymous namespace
2021-10-25 17:57:45 +02:00
asuessenbach
c5218f5a82 Change function throwResultException from static to anonymous namespace 2021-10-25 15:44:42 +02:00
asuessenbach
e725ff31bd Refactor parent member of the vk::raii classes. 2021-10-25 13:37:43 +02:00
Andreas Süßenbach
7361d443a3
Merge pull request #1109 from dneto0/dont-crash-gipa
Don't overwrite vkGetInstanceProcAddress
2021-10-25 10:47:48 +02:00
asuessenbach
714b953e51 Minor cleanup work. 2021-10-25 09:30:04 +02:00
David Neto
935e5e68fa Don't overwrite vkGetInstanceProcAddress
The vk::DispatchLoaderDynamic::init(vk::VkInstance) method should note
use vkGetInstanceProcAddr to overwrite vkGetInstanceProcAddr itself.

vkGetInstanceProcAddr( a_valid_instance, "vkGetInstanceProcAddr" ) is
required to return NULL.

Fixes: 1108
2021-10-22 04:03:31 -04:00
asuessenbach
5a4eceb0ab Introduce factory methods for the RAII handle classes. 2021-10-18 13:42:45 +02:00
asuessenbach
7645e4eb82 Minor cleanup work. 2021-10-18 10:35:17 +02:00
asuessenbach
8d23f0ed8c Fix handling of "void *" in generateCommandResultGetValue 2021-10-14 13:44:44 +02:00
asuessenbach
c3f32b8538 Introduce constructors on nullptr_t for the RAII handle classes. 2021-10-11 17:49:13 +02:00