Commit Graph

414 Commits

Author SHA1 Message Date
Yoan Lecoq
8251bdbeee Apply suggested changes for PR #138 2022-06-21 12:38:26 -06:00
Yoan Lecoq
31408e0b9e Add SwapchainBuilder::set_required_min_image_count(), following suggestions from PR #138 2022-06-21 12:38:26 -06:00
Yoan Lecoq
78ee4e67cd SwapchainBuilder: Remove use_default_min_image_count(), introduce BufferMode enum 2022-06-21 12:38:26 -06:00
Yoan
f528fe33d6 SwapchainBuilder::use_default_min_image_count(): fix default parameter specified in function definition 2022-06-21 12:38:26 -06:00
Yoan Lecoq
5ac2b21dfe SwapchainBuilder: provide some control over minImageCount 2022-06-21 12:38:26 -06:00
Charles Giessen
f847ab8566 Add exclusion list for alias in generator code
Some alias types are not pure promotional types, and need to be excluded from the
code which replaces types with their alias.

This may be a stopgap solution for a larger underlying problem of not being able to
determine if an alias is promoted or not.
2022-06-20 12:11:46 -06:00
charles-lunarg
fc880eb598 Update to latest Vulkan-Headers 2022-06-20 07:59:48 -06:00
Aelarion
b01b2b1d8e Fix #129 with correct desired_flags test 2022-06-09 12:48:48 -06:00
charles-lunarg
bbf4e9a4f5 Update to latest Vulkan-Headers 2022-06-06 21:38:15 -06:00
charles-lunarg
33b230a784 Update to latest Vulkan-Headers 2022-05-25 10:28:11 -06:00
Yoan Lecoq
74cac40817 SwapchainBuilder: expose present_mode and requested_min_image_count in the resulting Swapchain 2022-05-17 10:34:01 -05:00
charles-lunarg
8f39b12431 Update to latest Vulkan-Headers 2022-05-17 10:32:56 -05:00
Nicholaus Clark
2912c74ebf Address review comments 2022-05-05 21:09:33 -06:00
Nicholaus Clark
adee12a0d9 Fix best practices warning when in VK 1.1 or higher 2022-05-05 21:09:33 -06:00
spnda
bf4e2f073b Fix: portability_enumeration flag was not available before 1.3.208 2022-05-02 12:08:56 -06:00
charles-lunarg
fafc735714 Update to latest Vulkan-Headers 2022-04-25 18:57:49 -06:00
Charles Giessen
c543dc104b Support VK_KHR_portability_enumeration
Also cleanup some warnings in the tests.
2022-04-25 18:34:44 -06:00
charles-lunarg
3480e74bf0 Update to latest Vulkan-Headers 2022-04-11 18:58:44 -06:00
charles-lunarg
908cf98920 Update to latest Vulkan-Headers 2022-04-04 19:08:32 -06:00
charles-lunarg
62c075c16b Update to latest Vulkan-Headers 2022-03-23 14:27:31 -06:00
Charles Giessen
2ca3a7b03b Fix autorun code-gen script 2022-03-23 14:26:53 -06:00
Charles Giessen
25eff41755 Fix autorun code-gen script 2022-03-23 12:21:17 -06:00
Nicholaus Clark
4a2984ad68 Added pNext chain support for swapchain::get_image_views 2022-03-19 12:24:57 -06:00
Charles Giessen
65071da181 Enable VK_KHR_portability_subset if available
Makes it easy to use vulkan on macOS since vk-bootstrap will auto-enable it if
the extension is available.

This can be disabled by calling `disable_portability_subset`.
2022-03-01 21:17:10 -07:00
Charles Giessen
d3170c0657 Refactor physical device extension code to use std::string
Makes it harder for lifetime issues to appear since the extension strings are
owned by the PhysicalDevice class rather than assuming they are correct.
2022-03-01 21:17:10 -07:00
Charles Giessen
5f45b1019a Allow apps to query devices based on the name
This lets applications see all the devices which meet a set of requirements
then pick whichever of these devices is most appropriate for them. The intent
is for applications that want to find all the suitable devices and let the
user of the application pick the physical device from a list.
2022-03-01 21:17:10 -07:00
Danderaion
f4d3f916f1 Fix desire_api_version broken by previous commit 2022-02-27 13:46:15 -07:00
Danderaion
f6c262c3ab Add set_minimum_instance_version
Also deprecates InstanceBuilder::desire_api_version
and PhysicalDeviceSelector::set_desired_version
2022-02-27 13:46:15 -07:00
Danderaion
b7c2ddd8e5 Forward required/desired API versions to PhysicalDeviceBuilder
Desired version is called max_api_version, since valid Vulkan
program is not allowed to use features from any higher version.
2022-02-27 13:46:15 -07:00
Danderaion
0fa1dd8e20 Allow desiring higher api versions
Allows applications to desire_api_version that is
higher than available instance version.
2022-02-27 13:46:15 -07:00
forenoonwatch
b1b121efe0 Fix version macro not selecting VK_MAKE_VERSION
The version macro selector was looking for the constant VK_API_VERSION instead of the correct macro VK_MAKE_VERSION. Replaced the preprocessors accordingly.
2022-02-19 11:06:47 -07:00
Charles Giessen
b87fcf2da2 Add ci action to automate running autogen 2022-02-15 22:06:55 -07:00
sean
d299f782e6 Use own Vulkan version macros 2022-02-15 20:20:42 -07:00
Charles Giessen
1bbeaf2063 Add extensions in layers to main list
Allows apps to find all the extensions available. If they do not enable the layer the
extension comes from, the instance will fail creation due to missing the layer that
implements the extension.
2022-02-15 20:18:08 -07:00
Charles Giessen
7aef0dc1c1 Use reinterpret_cast in VkBootstrapDispatch.h 2022-02-05 20:43:22 -07:00
Charles Giessen
a1e58b4227 Fix autogen using wrong macro guards and types
The autogen accidentally took a reference instead of a copy, so all the aliases
were using the same data as the base type, leading to incorrect macro guards.

In addition, any aliased function would use the base funciton's types, leading
to incompatibilities when compiling with older headers. The chosen solution is
to always use the alias type if it exists.

Lastly, NVX was added to a blacklist, no functions from NVX extensions will be
generated, since they are experimental in nature.
2022-02-05 20:43:22 -07:00
Charles Giessen
d2898f822d Update vk-bootstrap to 1.3 2022-02-05 19:09:01 -07:00
Charles Giessen
d61be2cbc3 Update actions to remove SDK/headers downloads
Rely on CMake's FetchContent to get the required headers
2022-02-05 19:00:21 -07:00
Charles Giessen
99e92599c2 Add missing copy/move assignment operators to vkb::Result 2022-02-05 18:28:06 -07:00
Charles Giessen
eeffeff409 Make the list of device extensions to enable visible
Previously it was difficult to know which extensions were actually enabled.
If an app wanted to optionally enable certain extensions it was hard to know if
they got enabled.
2022-02-05 15:16:02 -07:00
Karn Kaul
f839350318 CMake: export vk-bootstrap and dependent targets
Enable upstream scripts to install the vk-boostrap-targets export-set directly.
2022-01-05 13:14:10 -07:00
Charles Giessen
bd6a2e4311 Fix crashing when calling GetPhysDevFeaturesKHR
vk-bootstrap would attempt to call vkGetPhysDevFeaturesKHR without enabling
the appropriate extension first.
2021-12-31 11:38:07 -07:00
sean
142986cdb7 Fix: Add VkBootstrapDispatch to includable files 2021-12-09 10:55:43 -07:00
Charles Giessen
6bf383778b Don't pass an instance in for pre-instance functions.
A recent loader change results in NULL being returned for pre-instance functions
if the instance handle passed into vkGetInstanceProcAddr isn't NULL. This was
reverted but going forward this change will require updating applications.
2021-12-08 15:49:44 -07:00
Charles Giessen
e761a6f67b Update Catch2 to v2.13.7 2021-12-07 15:10:32 -07:00
sean
8c8694f441 Add InstanceBuilder functions for setting the different versions directly 2021-10-16 17:25:28 -06:00
sean
fb8a48779d Only add physical device properties 2 extension if using Vulkan 1.0 2021-10-13 15:34:53 -06:00
Vibi Manx
5140be1d4d Only fields need to be memset. 2021-09-10 22:54:17 -06:00
Vibi Manx
ad394dce69 Replaced reinterpret cast with memcpy in GenericFeaturesPNextNode. 2021-09-10 22:54:17 -06:00
spnda
f5f9b54f38 Add user-defined conversion operators 2021-09-10 14:29:40 -06:00