Commit Graph

388 Commits

Author SHA1 Message Date
Charles Giessen
71a29a4b72 Make are_extension_features_present handle mismatched lists
The original implementation only worked if the requested features
had the same length. It'll now handle that properly.
2024-06-13 10:25:28 -05:00
n0F4x
fa75546109 Remove unnecessary feature checks 2024-06-13 10:25:28 -05:00
n0F4x
f238a7355f Fix typos in function documentation 2024-06-13 10:25:28 -05:00
n0F4x
92dc597184 Add are_extension_features_present to PhysicalDevice 2024-06-13 10:25:28 -05:00
Charles Giessen
91421d34b0 Set the sType for users to fix regression
Features 11, 12, and 13 structs used to set the sType manually for the user.
That was turned into an assert which inadvertently broke users code. This
is being reverted.
2024-06-13 09:21:58 -05:00
Imad Laggoune
fbad8786a4 [Change] Pass by Pointer to Pass by Reference
-Update all arguments in supports_features to be passed by reference rather then pointers.
-Make necessary changes for all calls to supports_features.
2024-05-29 11:48:22 +01:00
Imad Laggoune
cf2830cd32 Work Around for SEGFAULT in supports_features
-Turn every argument in support_features into const pointers.

-Change support_fueatures calls to match the new arguments.

-Add checks for nullptr.
2024-05-29 11:48:22 +01:00
Charles Giessen
8320b691f7 Rename parameter in enable_extension_features_if_present
Prevents shadowing warnings from annoying users.
2024-05-29 10:05:10 +01:00
charles-lunarg
c30cab593f Update to latest Vulkan-Headers 2024-05-14 09:11:54 -06:00
charles-lunarg
1075574e09 Update to latest Vulkan-Headers 2024-05-07 17:03:01 -06:00
Charles Giessen
c9d94287a5 Add enable_features_if_present to PhysicalDevice
Allows users to enable features if they are present, getting back a bool
telling them whether the feature is supported and will be enabled on the
device.

Also:
* Removes redundant VkPhysicalDeviceFeatures2 struct in vkb::PhysicalDevice.
* Adds test copying of details when creating a VkDevice so that test can check
what features were actually enabled on the device.
* Creates GenericFeatureChain struct for managing pNext chains.
* Allow multiple calls to set_require_features by combining the fields
2024-04-26 16:02:25 -06:00
Charles Giessen
a78a7f38da Assert that set_required_features sTypes are set
This allows the set_required_features_11/12/13 to take a reference instead
of a value. Applications should set the sType, vk-bootstrap shouldn't be
doing that for apps.
2024-04-26 16:02:25 -06:00
Charles Giessen
e186301249 Fix getting started docs using pointer instead of reference
add_required_extension_features takes a reference now, but the docs
indicated it took a pointer.
2024-04-26 16:02:25 -06:00
charles-lunarg
50b75222b2 Update to latest Vulkan-Headers 2024-04-23 09:46:43 -06:00
charles-lunarg
9f816ac215 Update to latest Vulkan-Headers 2024-04-15 18:55:24 -06:00
Charles Giessen
99e51d782e Enable PIC dependent on BUILD_SHARED_LIBS
While vk-bootstrap is a static library, it needs to have PIC enabled
if BUILD_SHARED_LIBS is on so it can work with shared libraries.
2024-03-27 11:32:16 -05:00
charles-lunarg
a5950c0700 Update to latest Vulkan-Headers 2024-03-27 10:55:52 -05:00
charles-lunarg
01ef3217f7 Update to latest Vulkan-Headers 2024-03-11 21:21:29 -06:00
dependabot[bot]
66ffbb23bd Bump peter-evans/create-pull-request from 4 to 6
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 13:05:48 -07:00
dependabot[bot]
30d294136d Bump actions/setup-python from 2 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 13:04:49 -07:00
Charles Giessen
72f45a22e2
Fix dependabot.yml to specify package-ecosystem as github-actions 2024-03-06 10:50:03 -07:00
Charles Giessen
50151234f5
Create dependabot.yml
Add depdendabot for updating actions automatically.
2024-03-06 10:45:24 -07:00
charles-lunarg
ac974854e6 Update to latest Vulkan-Headers 2024-03-06 10:37:43 -07:00
charles-lunarg
534e8bb76c Update to latest Vulkan-Headers 2024-02-20 10:07:48 -06:00
Charles Giessen
8d61e51c8c Fix dropped index in getting_started document 2024-02-14 14:26:04 -06:00
Charles Giessen
3849dafadb Update getting_started.md
Include reference to add_required_extension_features and per-version feature enables.
Fix type with CustomQueueDescription.
2024-02-14 14:23:50 -06:00
Charles Giessen
a330227666 Use vulkan/vulkan_core.h instead of vulkan/vulkan.h
vulkan.h includes platform specific headers that cause non trivial build
overhead. Because vk-bootstrap doesn't make use of any platform specific
API's, it can move over to vulkan_core.h.

This *MAY* break users of the library who were depending on vulkan/vulkan.h
including other headers, like windows.h. But because the benefits outweigh
the drawbacks, it is a good change.
2024-02-12 09:48:56 -06:00
Charles Giessen
bc510bc421 Fix VK_BOOTSTRAP_INSTALL description string 2024-02-12 09:48:56 -06:00
Charles Giessen
c7e50426ba Add alternate for deprecated desired extension functions 2024-02-11 11:18:56 -06:00
Mxr
eab517912c Further fix 2024-02-05 21:16:15 -08:00
Mxr
df5d11fc25 Fix: dangling reference in the range-based for loop 2024-02-05 21:16:15 -08:00
charles-lunarg
2321c238d4 Update to latest Vulkan-Headers 2024-02-05 21:12:03 -08:00
sean
6119bfcb9a Fix: Move objects/vectors where applicable 2024-01-30 10:06:25 -07:00
charles-lunarg
dd6c02e8ab Update to latest Vulkan-Headers 2024-01-30 08:33:40 -07:00
Diamond-D0gs
0af4cb5055 implemented enable_extensions_if_present and tests 2024-01-18 15:15:00 -07:00
charles-lunarg
382259e32b Update to latest Vulkan-Headers 2024-01-09 09:38:29 -07:00
Charles Giessen
51cbe62371 Add const case to parameter parsing in autogen
This was missing, causing errors in user code due to not preserving const
2023-12-29 11:26:50 -06:00
Charles Giessen
8e23c8afda Manually guard vkCmdSetExclusiveScissorEnableNV
vkCmdSetExclusiveScissorEnableNV was added to an existing extension
in 1.3.241. Guard it against users with older headers.
2023-12-28 16:18:00 -06:00
Charles Giessen
25dc27c31c Make destroy_* functions pass by reference
The destroy_instance and destroy_device functions should be passed by
const reference to make it consistent with other destroy functions.
2023-12-28 16:01:44 -06:00
charles-lunarg
605c3f1712 Update to latest Vulkan-Headers 2023-12-28 15:56:47 -06:00
Charles Giessen
3ad0388f1b Workaround VK_EXT_discard_rectangles adding new functions
Generalize the mechanism to not enable function pointers based on the current header
version, due to VK_EXT_discard_rectangles adding functions not present in the original
extension.
2023-12-14 13:05:31 -07:00
Charles Giessen
ae05c97bdb Create Vulkan::Headers if CMake version is too low. 2023-12-14 11:24:51 -07:00
Charles Giessen
c16df41166 Fix aliased types not being generated
Types that are promoted get turned into aliases, but the dispatch table was missing
these types. This was due to a simple mistake of mixing up the alias with the type
being aliased.
2023-12-12 20:15:31 -07:00
charles-lunarg
ee817ba3c8 Update to latest Vulkan-Headers 2023-12-11 17:56:49 -07:00
Charles Giessen
348e8bf796 Support tests on windows with clang & clang-cl
Required adding a .def file to properly export the required symbols and
disabling pointer cast warnings that are coming from Catch2.
2023-12-06 14:07:18 -07:00
Charles Giessen
767bd1baf2 Fixup Clang on windows support
This commit fixes issues that prevented clang-cl & clang from being distinguished
on windows, resulting in improper command line arguments being used.

CMAKE_CXX_COMPILER_FRONTEND_VARIANT is the proper way to distinguish clang from
clang-cl, which have different command line options.
2023-12-06 14:07:18 -07:00
charles-lunarg
e2e2d69785 Update to latest Vulkan-Headers 2023-12-04 17:44:05 -07:00
Charles Giessen
f223c8d5ae Cleanup CMake finding of Vulkan & installation code
Adds extensive integration tests that exercise the various ways of finding
the Vulkan-Headers.

vk-bootstrap should now use the Vulkan-Headers or Vulkan::Headers targets if
they were already defined (such as is the case of FetchContent), and will
look for the VulkanHeaders package and Vulkan package as a fallback, and will
FetchContent Vulkan-Headers directly if that fails.

This should make integration seamless with the various ways vulkan-headers
is acquired.

The vk-bootstrap-vulkan-headers target was dropped in favor of directly
linking to Vulkan-Headers (creating a target by that name if none exists).
2023-12-02 19:49:54 -07:00
Charles Giessen
34be5eb2c5 Update to GLFW 3.3.8 in example code 2023-12-02 19:49:54 -07:00
Charles Giessen
622e36a487 Small cleanup of tests 2023-12-02 11:32:03 -07:00