Timo Aaltonen pushed to branch debian-unstable at X Strike Force / vulkan / vulkan-loader
Commits: 66a23ac8 by Michel Zou at 2020-12-18T12:15:59-07:00 Rename LIB_SUFFIX to VULKAN_LIB_SUFFIX Closes #527 - - - - - 294480cb by Shannon McPherson at 2020-12-19T18:07:29-07:00 build: Update known-good files for 1.2.165 header Changes: - Updated `known_good.json` - Generated new source files Change-Id: I5156923b1d3fb96d9e4fbe8dddb533f93561adfd - - - - - 1f0c7868 by Charles Giessen at 2021-01-05T10:23:14-07:00 loader: silence fread unused result fread returns the count of values returned but was being ignored. This commit makes sure to use that value when determining whether to continue seeking to the end of the file. Change-Id: Idb818cb3cda0cdde81aba1e5a4dd639c4814a923 - - - - - 9ba83588 by Shannon McPherson at 2021-01-05T10:45:38-07:00 build: Update known-good files for 1.2.166 header Changes: - Updated `known_good.json` Change-Id: Idf48ead0a4cad20ec6f1675741be0ebae45770a0 - - - - - aed40d52 by Ludovico de Nittis at 2021-01-18T02:03:20-07:00 loader: Do not remove duplicated layers Linux can support multiple ABIs, but Vulkan Layer manifest does not allow to specify different library paths, based on the ABI. As a solution, for ICDs, we can simply create multiple manifests, one per ABI, and the Loader will try them one by one until it finds the library that is compatible with the executable class. Instead, for Vulkan Layers, this method doesn't work because the Loader will discard the manifests that have a duplicated layer name. To add support for multiple ABIs to Vulkan Layers, and to make the behavior similar to the ICDs, with this commit we remove the duplicated layer name check. Instead we add to the output list all the Vulkan Layers that we find, and only when we are actually going to dlopen them, we discard the layers with the same name that we already successfully opened. Fixes: #155 Signed-off-by: Ludovico de Nittis <[email protected]> - - - - - 41901f90 by Kévin Petit at 2021-01-28T17:19:33-07:00 loader: Fix Android build - Add missing prototype - Fix incorrect parameter handling Signed-off-by: Kévin Petit <[email protected]> - - - - - 47940fbf by nihui at 2021-01-28T17:21:53-07:00 Fix crash with NULL messenger - - - - - 2b9a7b11 by Kévin Petit at 2021-01-29T11:11:02-07:00 loader: Fix AArch64 Android build The Android NDK doesn't provide a separate libpthread. Don't explicitly link it in when builing for Android. Signed-off-by: Kévin Petit <[email protected]> - - - - - fd5cc696 by richard-lunarg at 2021-02-02T10:31:36-05:00 CMake tweak for macOS cross compilers, seems okay elsewhere too - - - - - 6fcd515b by J.D. Rouan at 2021-02-03T11:34:20-07:00 loader: Do not return OOM when layer count is 0 An application program that overrides malloc with an implementation that returns NULL for a zero-sized allocation will cause some loader and trampoline functions to incorrectly return VK_ERROR_OUT_OF_HOST_MEMORY if there are no layers on the system. This patch prevents these errors by also checking the layer count. Fixes: https://github.com/KhronosGroup/Vulkan-Loader/issues/543 - - - - - ff6a9e31 by Shannon McPherson at 2021-02-08T14:34:38-07:00 build: Update known-good files for 1.2.169 header Changes: - Updated `known_good.json` Change-Id: Iaf11b12afdcd11b06ebce4b66a0b56b2b097522f - - - - - a088d109 by Lenny Komow at 2021-02-10T13:54:42-07:00 repo: Switch to github actions for CI - - - - - a66ceba2 by Lenny Komow at 2021-02-10T13:54:42-07:00 docs: Update readme to point to github actions - - - - - c5678a03 by Jeremy Gebben at 2021-02-15T11:58:50-07:00 build: Update known-good files for 1.2.170 header Changes: - Updated `known_good.json` - Generated new source files Change-Id: I98c582a8cad9ffbdda5a1b2ffa5517b866803047 - - - - - 55c6dc0a by Shannon McPherson at 2021-03-02T15:40:45-07:00 scripts: Update copyright in `common_codegen.py` Change-Id: Id5049a260cb8521a1768b6b48b36bdef825e5508 - - - - - 237d3dcb by Shannon McPherson at 2021-03-02T15:40:45-07:00 build: Update known-good files for 1.2.171 header Changes: - Updated `known_good.json` - Generated new source files - Added `VK_USE_PLATFORM_SCREEN_QNX` to platform list in `common_codegen.py` Change-Id: I2ef49799434ff31ff81680413a8700caea46593c - - - - - 1353e80d by Shannon McPherson at 2021-03-10T08:56:41-08:00 build: Update known-good files for 1.2.172 header Changes: - Updated `known_good.json` Change-Id: I7977f22711cefae65e6eabe00ec44d9e43e890a5 - - - - - f17f507c by Mike Schuchardt at 2021-03-23T13:37:52-07:00 build: Update known-good files for 1.2.173 header - Update known_good.json - Generate source files - - - - - 5180defc by Lenny Komow at 2021-03-23T17:21:03-06:00 docs: Update note about ICD proc addr - - - - - 7ea01c13 by Mike Schuchardt at 2021-03-29T13:05:47-07:00 build: Update to header 1.2.174 - Update known-good - Generate source (no changes) Change-Id: Ia2099a0d63692c19ce8444721d5eb25f94c809d9 - - - - - 684c2a68 by Mike Gorchak at 2021-04-06T14:52:51-06:00 Add support for QNX platform. - - - - - be295c59 by Mike Gorchak at 2021-04-06T14:52:51-06:00 Add QNX platform makefiles. - - - - - 977ac085 by Mike Gorchak at 2021-04-06T14:52:51-06:00 Rename build option to make it clearer that it belongs to QNX only. - - - - - 64cc1709 by Mike Gorchak at 2021-04-06T14:52:51-06:00 Add a couple of paragraphs about building process under QNX. - - - - - 598874f5 by Charles Giessen at 2021-04-20T03:39:46-06:00 build: Run generator to update extensions QNX_screen moved from generated code to wsi.c but the generator was not run so the old code wasn't deleted. This commit rectifies that. Change-Id: Iba9cc3e6871605f50159acf7b6a97428f940b49e - - - - - 4b868e5e by Charles Giessen at 2021-04-20T03:39:46-06:00 ci: Add verification of generated source code The transition from travis to github CI dropped the check for verifying if the source code generator was updated if it needed to for the changes. Change-Id: I53fabfe14f42fe1c9899b2938f5e7b8073362954 - - - - - eb6d6f95 by Mike Schuchardt at 2021-04-20T09:45:05-07:00 build: Update to header 1.2.176 - Update known-good - Generate source - Fix version parsing in FindVulkanHeaders.cmake - Add to VK_ENABLE_BETA_EXTENSIONS to GN build to pick up beta VkObjectType values Change-Id: Ied4e4e71017e48d344b1c9cacf037ae989aceec9 - - - - - 699c54ee by Mike Gorchak at 2021-04-21T11:21:44-06:00 build: Fix QNX build system Add missing root Makefile for build-qnx folder and enable BETA extensions by default. - - - - - 3c8ca694 by Charles Giessen at 2021-04-21T12:00:01-06:00 docs: Update pre-instance-function list Add `vkEnumerateInstanceVersion` to the list of allowed pre instance functions in the LoaderLayerInterface.md Change-Id: I238aec5c3606af4d39bff5c50bbe75e909cd3224 - - - - - 94e19fe3 by Charles Giessen at 2021-04-21T16:22:47-06:00 loader: Accept layer manifest version 1.2.0 This change only prevents the loader from warning on the new version. Change-Id: If8c0aedb2e0052d5b6eb6f72fc4e7ad70b58d8a7 - - - - - f3c1d9e7 by Charles Giessen at 2021-04-22T16:25:44-06:00 loader: Silence wrong ELF class errors Currently the loader does not distinguish between 32 and 64 bit ELF class files. This causes `dlopen` to fail but is expected because the different ELF class libraries are located in the same directory. We can safely ignore this error. If encountered, we will report it with the INFO logging level. Change-Id: Icb8e5351208f8a413a29ea9c457bc3fdac7de292 - - - - - 8e3f63f5 by Charles Giessen at 2021-04-23T15:21:07-06:00 loader: Fix unused variable warning on Apple - - - - - d0f1abe2 by Lenny Komow at 2021-04-24T13:54:27-06:00 loader: Fix stack overflow with large manifests If the json manifest file was too large, the loader would do a stack allocation that would fail, throwing an exception or creating undefined behavior. This changes to a heap allocation. - - - - - bb8231f0 by Lenny Komow at 2021-04-27T16:57:13-06:00 loader: Prevent crash from VK_KHR_display Previously, we assumed that the extension VK_KHR_display would be available on all systems. This appears to no longer be the case. If we get two ICDs, one which supports the extension and one which does not, we used to get a crash if trying to call any function from the extension on the physical device which did not support it. This solves that crash - - - - - 7758858c by Mike Schuchardt at 2021-04-29T09:11:03-07:00 scripts: Switch from mkpath to makedirs distutils.dir_util.mkpath will not re-create a directory if it has been removed with shutil.rmtree because it caches the filesystem under the hood. This was causing the clone retry to fail on the second iteration every time. Switch to using os.makedirs for equivalent functionality without the cache. - - - - - 5dcea8a4 by Mike Schuchardt at 2021-04-29T10:49:58-07:00 build: Update to header 1.2.177 - Update known-good - Generate source (no changes) Change-Id: I45f5702a6c975aa423b03f2e02fd19fca92d50d2 - - - - - 91955fbc by sfricke-samsung at 2021-05-04T14:00:42-06:00 Match null queue check for vkGetDeviceQueue - - - - - f14e11c9 by Mike Gorchak at 2021-05-04T16:19:16-06:00 Use headers in the external folder prior to the system Vulkan headers - - - - - 039cea53 by Charles Giessen at 2021-05-04T16:48:39-06:00 loader: Emit DEBUG for unknown function names Loader previously emitted WARN level log messages for unknown function names. This isn't wrong behavior and is mainly useful to loader developers. Many layers and applications try to load all function pointers they know about, so this code path is well travelled. Change-Id: Ia3e4b47eddb36bd02bcbab8452e5a96d03f75bd3 - - - - - a132dee1 by Mike Schuchardt at 2021-05-11T12:43:53-07:00 build: Update to header 1.2.178 - Update known-good - Generate source Change-Id: I3e2756d9dc0452cc3743a05840d8e2a76961406a - - - - - 3bdb32d2 by Mike Schuchardt at 2021-05-24T12:25:00-06:00 build: Update to header 1.2.179 - Update known-good - Generate source (no change) Change-Id: Ib52dc0ff04f76fd1db2dea4a125a094d30abab62 - - - - - d7c14e5c by Charles Giessen at 2021-05-27T16:59:28-06:00 cmake: Make loader use same CRT in debug mode This solves the issue of debug asserts appearing in the output due to mixed CRT's in the same build. Change-Id: I06169c143614dd1102c901f57aa4bdf431df8846 - - - - - 2703d192 by Charles Giessen at 2021-05-27T16:59:28-06:00 test: Add framework cmake and utilities Create the CMake infrastructure for a testing framework. `test_util.h/.cpp` contains the core macros, wrappers, and utilities. framework_config.h.in is the header that other components include to get the full path to binaries on a system. Change-Id: I3e24a3ee4ff24da499a3bca63059e3b872d3981c - - - - - b7d170b7 by Charles Giessen at 2021-05-27T16:59:28-06:00 tests: Add TestICD for mocking ICD's The TestICD is a configurable ICD which can recreate much of the behavior the loader expects of an ICD. Combined with a direct line of communication between the tests and TestICD, tests can setup specific conditions that have a known response from the loader, thus allowing proper regression testing. Change-Id: I84303f0ddb6011fc1b76dad25fd249abb2da29c9 - - - - - 25470c91 by Charles Giessen at 2021-05-27T16:59:28-06:00 test: Add framework platform abstraction shim The loader queries various platform systems for info such as the location of ICDs and layers. To isolate the loader during testing from the system it is running on, the platform shim intercepts the necessary functions so that the contents of the systems queried by the loader can be configured by tests. On windows this involves 2 aspects: Detouring Win32 API functions and redirecting the registry. The `Detours` library is used to easily capture Win32 API calls. And the registry uses `RegOverridePredefKey` to redirect the registry entries the loader accesses. On linux this only involves intercepting 3 functions; `opendir`, `access`, and `fopen`. This allows the framework to tell the loader what to actuall open/access/fopen. These interceptions call the underlying function but with altered arguments, specifically to paths the tests set up. Change-Id: I3531a1cb190c489ffd9f1f0549d0ebcacb3818c5 - - - - - b1b5de42 by Charles Giessen at 2021-05-27T16:59:28-06:00 test: Add test framekwork layer utility At the present moment, this change is to define simple layer utilities that tests in the future may use. Change-Id: I9ab5e1950da64061997891a0527d0f70a49e41e7 - - - - - 88480c3d by Charles Giessen at 2021-05-27T16:59:28-06:00 test: Add framework test_environment The test environment is the code which glues the platform shim, TestICD, and TestLayers together so that test code can be easily written. The main components tests use are the SingleICDShim and MultipleICDShim classes. Both take care of copying the ICD binaries, setting up the manifests, and redirecting the platform specific systems to point at those manifests. Change-Id: I7cbb76c9555fe13b323173c3838cbb3616b77a18 - - - - - a9db4515 by Charles Giessen at 2021-05-27T16:59:28-06:00 test: Add regression tests code These files are the current 4 source code files used to create the regression test suite loader_regression_tests.cpp and loader_version_tests.cpp contain a majority of the tests. loader_wsi_test.cpp is all the tests pertaining to the WSI functions in the loader. loader_testing_main.cpp contains the `main()` which has windows CRT specific calls to disable popups and debug aserts. There are two executables created, test_regression and test_wsi. test_regression is both regression_tests and version_tests. test_wsi is the WSI tests. These tests are separate as they rely on linking with platform specific windowing libraries which may not be present on a CI system. Change-Id: I1c02b0f82826d337599f4a9a7c02dde40ea5afa3 - - - - - ddf5be24 by Charles Giessen at 2021-05-27T16:59:28-06:00 tests: fix spelling in loader_validation_tests Change-Id: I2e278b959cd1d47bdc0d7fc19965e4d57e71b481 - - - - - 4f82246c by Charles Giessen at 2021-05-27T16:59:28-06:00 tests: Add CMake to handle Detours library The Detours library uses a make file to build it. Thus it needed to be translated into CMake equivalent code to make a useable target. Change-Id: Ibed33c962e522f44297c7fa9cbe3f62964503ceb - - - - - ff390873 by Charles Giessen at 2021-05-27T16:59:28-06:00 loader: Add pragma once to adapters.h This allows the header to be included multiple times without error. Change-Id: I4f4ca4ab57c0b7f8606f397d61dadfadc2597b0b - - - - - 959e8daf by Charles Giessen at 2021-05-27T16:59:28-06:00 cmake: Only enable testing with BUILD_TESTS `enable_testing()` was previously always enabled when configuring the loader repository. This commit only does that when `BUILD_TESTS` is true. Change-Id: I75666088b84efc4613f72e6938da9ed88b54fb1f - - - - - 886a7297 by Charles Giessen at 2021-05-27T16:59:28-06:00 ci: Make linux CI run regression tests Change-Id: I212a714cc0ec41da11bc69e216b4bb54685415a7 - - - - - b83102e3 by Charles Giessen at 2021-05-28T18:43:26-06:00 tests: Include <memory> in test_util.h Change-Id: If2b6766521dd6bea5478b6316eadef8ce3e048cf - - - - - 6f8b0d1c by Charles Giessen at 2021-06-01T11:40:49-06:00 loader: Silence erroneous implicit layer warning When the override layer or an implicit meta layer is detected, the loader will go and find all of the explicit layers because the override/meta layer might require them. During that process `loaderAddLayerProperties` is called. It was accidentally called with `is_implicit = true`, which causes the loader to interpret the manifest files as if they were implicit, generating many erroneous warnings. Change-Id: I8bc6bfa0d2a81159ebc33406e18ebf2099355768 - - - - - 04796099 by Biswapriyo Nath at 2021-06-01T11:56:24-06:00 CMake: Fix linking option and libraries for MinGW. Check MSVC for Visual Studio specific libraries. - - - - - 9fb591fe by Jamie Madill at 2021-06-03T10:34:09-06:00 GN: Support custom library name. This allows for projects like ANGLE that build the loader to prevent conflicts with the system. - - - - - a9cac771 by Mike Schuchardt at 2021-06-07T14:43:14-06:00 build: Update to header 1.2.180 - Update known-good - Generate source (no change) Change-Id: I56d4483f777754c9e368ac9b0025d550070fdd83 - - - - - f7442f96 by Charles Giessen at 2021-06-07T14:07:38-07:00 ci: Enable regression tests in Windows CI Change-Id: I5bb1d03f9c9a3be82f7ed0763a325996a5d8dae8 - - - - - fcc549fc by Charles Giessen at 2021-06-07T14:07:38-07:00 test: Fix Windows x86 icd shim exports _stdcall in Windows x86 builds would mangle names even with `export "C"` By adding .def files, the correct name is used in the .dll and the loader will correctly load it. Additionally, ShimEnumAdapters2 needs _stdcall for 32 bit mode Change-Id: Ia60a5e2a9e4378dc3e09864648e04852b10fe524 - - - - - 01ddf904 by Charles Giessen at 2021-06-07T14:07:38-07:00 ci: Enable building of tests - - - - - 61bfd930 by Charles Giessen at 2021-06-07T14:07:38-07:00 test: Delete files properly on windows Move windows specific error reporting to test_util.h This allows for its use anywhere its required. Change-Id: I14a0da85dc0d3f4e651b99aa005469b47d98d940 - - - - - 43c06213 by Charles Giessen at 2021-06-07T14:07:38-07:00 test: Control process elevation on Windows Since the loader only uses environment variables if the process is not running with elevated priviledges, the test harness needs to be able to control that aspect to ensure consistency as CI systems may run the tests in an 'elevated' context. Change-Id: I8b15a1ecd4ab4960049ba198af8199943e872bba - - - - - 7e2d7ba8 by Charles Giessen at 2021-06-07T14:07:38-07:00 test: Refactor tests that use VK_ICD_FILENAMES Change-Id: I34117fd500f7110669ae19d32ff1e1be920238a9 - - - - - d409f0c7 by Charles Giessen at 2021-06-11T13:59:14-07:00 loader: Replace consistency checks with asserts - - - - - 19eec9a8 by Charles Giessen at 2021-06-11T13:59:14-07:00 loader: Create AddManifestFile function - - - - - 73296a04 by Charles Giessen at 2021-06-11T13:59:14-07:00 loader: Change VkResult when no ICDs were found ReadDataFilesInRegistry would return VK_ERROR_INITIALIZATION_FAILED in several cases which could cause the loader to short cirtuit and return that value when no drivers were found in the registry. This is inconsistent with the later check of the size of the list of manifest, which if it is 0 returns VK_ERROR_INCOMPATABLE_DRIVER. This commit changes the instances of INIT_FAILED into INCOMPATABLE_DRIVER where relevant. - - - - - 57ba02b4 by Mike Schuchardt at 2021-06-14T12:31:20-06:00 build: Update to header 1.2.181 - Update known-good - Generate source (no change) Change-Id: I7aed911c95d3faa89f7cd012ce56ccde00927943 - - - - - 8a3a3cb7 by Christophe at 2021-06-17T09:19:10-06:00 Add layer manifest version 1.2.0 to history - - - - - 1896143d by Mike Schuchardt at 2021-06-21T10:07:16-07:00 build: Update to header 1.2.182 - Update known-good - Disable codegen for VK_HUAWEI_subpass_shading https://github.com/KhronosGroup/Vulkan-Docs/issues/1564 - Generate source Change-Id: If59954254bdf433bd5171f2a63cad88e34069c89 - - - - - cd24f793 by Timo Aaltonen at 2021-08-13T08:48:15+03:00 Merge branch 'upstream-unstable' into debian-unstable - - - - - af441068 by Timo Aaltonen at 2021-08-13T08:50:30+03:00 bump the version - - - - - 075cf43f by Timo Aaltonen at 2021-08-13T08:50:38+03:00 Refresh vulkan-headers to 1.2.182.0 - - - - - 7eee2087 by Timo Aaltonen at 2021-08-13T08:58:26+03:00 release to experimental - - - - - 30 changed files: - − .appveyor.yml - + .github/workflows/build.yml - − .travis.yml - BUILD.gn - BUILD.md - CMakeLists.txt - README.md - + build-qnx/Makefile - + build-qnx/common.mk - + build-qnx/loader_cmake_config.h - + build-qnx/nto/Makefile - + build-qnx/nto/aarch64/Makefile - + build-qnx/nto/aarch64/so.le/Makefile - + build-qnx/nto/arm/Makefile - + build-qnx/nto/arm/so.le.v7/Makefile - + build-qnx/nto/x86_64/Makefile - + build-qnx/nto/x86_64/so/Makefile - cmake/FindVulkanHeaders.cmake - debian/changelog - external/CMakeLists.txt - external/README.md - loader/CMakeLists.txt - loader/LoaderAndLayerInterface.md - loader/adapters.h - loader/debug_utils.c - loader/generated/vk_dispatch_table_helper.h - loader/generated/vk_layer_dispatch_table.h - loader/generated/vk_loader_extensions.c - loader/generated/vk_loader_extensions.h - loader/generated/vk_object_types.h The diff was not included because it is too large. View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/vulkan-loader/-/compare/bc858f8d9570838226b6c14461177c6d37f41ab0...7eee2087cb10349b943a96a9a075f5ded072c4fc -- View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/vulkan-loader/-/compare/bc858f8d9570838226b6c14461177c6d37f41ab0...7eee2087cb10349b943a96a9a075f5ded072c4fc You're receiving this email because of your account on salsa.debian.org.

