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.


Reply via email to