Skip to content

Conversation

@hapakj
Copy link
Contributor

@hapakj hapakj commented Nov 6, 2025

charles-lunarg and others added 30 commits June 23, 2025 14:48
Remove some TODO's about needing the detailed dependency info of a command.
Commands from extensions are available if any of the extensions they come
from are enabled. The extensions themselves have complex requirements for enabling,
but because the loader tries to do basic validation, it should only check that the primary
extensions are available. This is so that the loader doesn't replicate all of the complicated
dependency checking logic that already present in the Validation Layer.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.0 to 3.29.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ce28f5b...181d5ee)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
The loader settings file now can specify additional drivers to include, whether
to use those drivers exclusively, and filter/sort the VkPhysicalDevices using
the settings file provided list of deviceUUID's.

This lets the settings file control which drivers and/or devices are reported
by the loader, giving greater control over the runtime behavior of the loader.

device_configurations is an array of JSON objects which contain two fields
each, deviceUUID and deviceName.
deviceUUID is an array of 16 uint8_t's (expressed simply as numbers) which
takes the value of the
VkPhysicalDeviceVulkan11Properties::deviceUUID struct member.
deviceName is a
string taken from VkPhysicalDeviceProperties::deviceName. Only deviceUUID is
used to filter and sort VkPhysicalDevices, deviceName is for convenience and
ease of understanding the JSON loader settings file.

additional_drivers is an array of JSON object which contain just one field,
path, which is a path to the Manifest ICD JSON file for a driver.

additional_drivers_use_exclusively is a boolean field indicating whether the
loader should:
if false (default if unspecified) - look for drivers in the normal locations
and append the  additional_drivers to the back of the driver list.
if true - only use drivers in the additional_drivers, ignoring all other
driver search locations.
Attached patch fixes build on CYGWIN.
Hopefully, the patch is small and easy because it is just needed to add CYGWIN to the list of existing UNIX platforms.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.2 to 3.29.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@181d5ee...4e828ff)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Queries the real path of loaded layers and drivers so that logging messages
contain the exact path used, instead of the path the loader gave to dlopen/
LoadLibrary. This ensures that logs are as accurate as can be, as the dynamic
linker may not respect the passed in library (due to environment variables
or other mechanisms which change which binary is loaded).

This requires normalizing paths before comparison, as the path given to
dlopen/LoadLibrary may represent the same location as the queried path, but
might not be identical strings. Normalization is done using the realpath()
function on platforms that support it, and a fallback implementation is
used elsewhere. The implementation only removes extra directory separators
("//"), extra current directory specifiers ("/./"), and removes relative
to parent directory specifiers ("/foo/../").
Makes many changes to test infrastructure:
* Split test_util into separate files for maintainability
* Move new files into tests/framework/util
* Move FolderManager into separate file from test_environment
* Rename COMMON_UNIX_PLATFORMS to TESTING_COMMON_UNIX_PLATFORMS
* Rewrote unix path redirection logic, relies on FileSystemManager
  * Relative paths are actually relative now
* Split unsecured folder location into unsecured driver/implicit layer/explicit layer/settings
* Fix bugs in tests that are attributable to old path redirection logic.
* Use normalized paths in test framework - ie normalize paths so they can be compared easily
* Make running with elevated privileges a framework level setting
* Split tests that change elevated privileges into separate tests
* Framework can set home & xdg env-vars at startup
* Platform specific folders are only defined on those platforms
* PlatformShim::add_manifest is now windows only, reflecting that only windows implemented it
The searching for the loader_settings.json file relied on faulty assumptions about which paths would be used,
notably ignoring XDG env-vars, as well as SYSCONFDIR, EXTRASYSCONFDIR, and the fallback xdg paths.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.4 to 3.29.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@4e828ff...51f7732)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
If any of the device configurations fields failed to parse, this would cause the entire array of
device configurations to fail to parse, which is surprising.
Requires extensive modifications to the tests since previously many tests accessed
the physical device array directly.
…vice and / or driver id

This change introduces the VK_LOADER_DEVICE_ID_FILTER,
VK_LOADER_VENDOR_ID_FILTER and VK_LOADER_DRIVER_ID_FILTER
enviroment variables, where a comma separated list of id ranges can be provided
to restrict the enumerated physical devices by device, vendor and/or driver id.

e.g. VK_LOADER_DEVICE_ID_FILTER or  VK_LOADER_VENDOR_ID_FILTER:
"0x10001-0x1FFFF,0x1eb1"

e.g. VK_LOADER_DRIVER_ID_FILTER:
"3,7-9"
charles-lunarg and others added 24 commits August 27, 2025 17:08
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.11 to 3.30.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@3c3833e...2d92b76)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Caused by the result value containing a spurious initialization failed
error code.
We can use string_view's to prevent allocating a string every time
get_folder_for_given_path is called.
Uninitialized memory triggers a runtime check that drastically slows down test
execution.
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.0 to 3.30.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@2d92b76...192325c)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Adding this field uses the generated version in `project()` to force CMake to check
that the found VulkanHeaders package's version is the same or greater than the
version of VulkanHeaders this project was generated with.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@192325c...3599b3b)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Allows for the loader_log call to not have 16+ parameters.
…n parameters

deviceUUID is not sufficient to be able to distinguish VkPhysicalDevices as there can be multiple
ICD's that report the same VkPhysicalDevice. This can easily occur when a development build of
a driver is present alongside a stable build on a system. driverUUID then helps differentiate ICD's
reporting the same VkPhysicalDevice, but isn't sufficient as some drivers use the same driverUUID
across all builds (RADV from Mesa as example). Thus, driverVersion is used for that purpose.
Not propagating the error code meant that unknown structs in the pNext
chains of surface create info structs caused crashes later that should
have been prevented. This also allows Out Of Memory conditions to
be propagated correctly
macOS-13 is being removed from github actions.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.5 to 3.30.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@3599b3b...64d10c1)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.6 to 4.30.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@64d10c1...f443b60)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.30.8
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.30.8 to 4.30.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@f443b60...16140ae)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.30.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@hapakj hapakj requested a review from aqnuep November 6, 2025 15:53
@CLAassistant
Copy link

CLAassistant commented Nov 6, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 3 committers have signed the CLA.

❌ carlo-bramini
❌ mixi
❌ BtbN
You have signed the CLA already but the status is still pending? Let us recheck it.

@hapakj hapakj force-pushed the downstream-1.4.330 branch from c1953e9 to 68ba57b Compare November 7, 2025 14:26
@aqnuep aqnuep merged commit 68ba57b into sc_main Nov 10, 2025
61 of 62 checks passed
@aqnuep aqnuep deleted the downstream-1.4.330 branch November 10, 2025 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants