Commit Graph

396 Commits

Author SHA1 Message Date
Charles Giessen
373fd55f6d WIP: Codegen pNext features structs to remove UB
TODO:
Generate compare/merge dispatch to per struct types
pNext Chain holder that manages memory
2024-08-04 14:23:08 -05:00
charles-lunarg
b420029db1 Update to latest Vulkan-Headers 2024-07-02 11:57:40 -05:00
Charles Giessen
1f07cf1434 Add .cache to gitignore for clangd 2024-07-01 10:58:03 -05:00
Charles Giessen
96688de170 Add vulkan-hpp tests
Since the API can accept vulkan-hpp types in a few places, it is good to have
tests for those places. While the current test suite isn't exhaustive, it is
enough to get the ball rolling.

This PR also refactors some of the 'setup' logic for the tests into a separate
file so that the hpp tests can make use of them.
2024-07-01 09:54:16 -05:00
Charles Giessen
42cef2cd14 static_cast the sType to allow Vulkan-Hpp types to work
The add_required_extensions_features function is templated, allowing both
vulkan.h and vulkan-hpp types to be passed in. Due to recent changes in
the generic features struct code, this stopped working. By casting the
sType explicitely using static_cast, it restores usage of vulkan-hpp types.
2024-07-01 09:54:16 -05:00
charles-lunarg
500c17f5d0 Update to latest Vulkan-Headers 2024-06-18 10:16:23 -06:00
charles-lunarg
64fa0ebf56 Update to latest Vulkan-Headers 2024-06-13 10:40:49 -05:00
Charles Giessen
2d6f7dea0a Add negative test for are_extension_feature_present
Didn't handle the case where some fields were supported but others weren't.
2024-06-13 10:25:28 -05:00
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