Shannon McPherson [Tue, 2 Feb 2021 21:03:46 +0000 (14:03 -0700)]
build: Update known-good files for 1.2.169 header
Changes:
- Updated `known_good.json`
Change-Id: Iaf11b12afdcd11b06ebce4b66a0b56b2b097522f
J.D. Rouan [Mon, 1 Feb 2021 22:03:04 +0000 (14:03 -0800)]
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
richard-lunarg [Mon, 1 Feb 2021 23:31:41 +0000 (18:31 -0500)]
CMake tweak for macOS cross compilers, seems okay elsewhere too
Kévin Petit [Fri, 29 Jan 2021 16:05:43 +0000 (16:05 +0000)]
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 <kevin.petit@arm.com>
nihui [Sat, 23 Jan 2021 12:00:34 +0000 (20:00 +0800)]
Fix crash with NULL messenger
Kévin Petit [Thu, 28 Jan 2021 20:15:51 +0000 (20:15 +0000)]
loader: Fix Android build
- Add missing prototype
- Fix incorrect parameter handling
Signed-off-by: Kévin Petit <kevin.petit@arm.com>
Ludovico de Nittis [Tue, 1 Dec 2020 16:03:03 +0000 (17:03 +0100)]
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 <ludovico.denittis@collabora.com>
Shannon McPherson [Mon, 4 Jan 2021 18:14:09 +0000 (11:14 -0700)]
build: Update known-good files for 1.2.166 header
Changes:
- Updated `known_good.json`
Change-Id: Idf48ead0a4cad20ec6f1675741be0ebae45770a0
Charles Giessen [Mon, 28 Dec 2020 19:33:17 +0000 (13:33 -0600)]
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
Shannon McPherson [Fri, 18 Dec 2020 22:33:16 +0000 (15:33 -0700)]
build: Update known-good files for 1.2.165 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: I5156923b1d3fb96d9e4fbe8dddb533f93561adfd
Michel Zou [Wed, 16 Dec 2020 14:03:23 +0000 (15:03 +0100)]
Rename LIB_SUFFIX to VULKAN_LIB_SUFFIX
Closes #527
Michel Zou [Thu, 26 Nov 2020 21:12:58 +0000 (22:12 +0100)]
cmake: remove mingw lib prefix
we want the dll to be named vulkan-1.dll and not libvulkan-1.dll
as it is the default on mingw (for drop-in replacement)
Lenny Komow [Tue, 1 Dec 2020 17:49:01 +0000 (10:49 -0700)]
loader: Remove SEEK_END usage
Change-Id: I699caaf048d70756649d9f6a2c7dfb012c6d2342
Charles Giessen [Mon, 19 Oct 2020 23:22:13 +0000 (17:22 -0600)]
loader: Properly check for elevated permissions
The status message for the loader not searching environment
variables when running with elevated permissions didn't properly
check. This commit adds in proper guards to make sure the status
message only prints when compiled with explicit use of non-secure
getenv
Change-Id: I993bb08de21bb0e338852368c24fe615d0d1f9b9
Shannon McPherson [Mon, 23 Nov 2020 16:19:03 +0000 (09:19 -0700)]
build: Update known-good files for 1.2.162 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: Ic0f414ccf230314fa648abbb00da9509e1389a31
J.D. Rouan [Mon, 16 Nov 2020 23:36:42 +0000 (15:36 -0800)]
Add GGP WSI platform support to Vulkan-Loader
Add GGP WSI platform support to Vulkan-Loader. GGP is Google Games
Platform, the platform for Stadia.
Mike Schuchardt [Mon, 6 Jul 2020 23:05:57 +0000 (16:05 -0700)]
scripts: Add default return type for VkDeviceSize
Biswapriyo Nath [Thu, 12 Nov 2020 13:05:06 +0000 (18:35 +0530)]
loader: Cast dxgi object to void** to suppress gcc warnings.
Michel Zou [Mon, 16 Nov 2020 20:09:38 +0000 (21:09 +0100)]
pkgconfig: Missing lib suffx on win32
on win32 the library name is vulkan-1, not vulkan
Shannon McPherson [Mon, 16 Nov 2020 19:55:26 +0000 (12:55 -0700)]
build: Update known-good files for 1.2.161 header
Changes:
- Updated `known_good.json`
Change-Id: Ib6f5ff539b627b6978e81e6247ecfdeee1506c1f
Shahbaz Youssefi [Tue, 3 Nov 2020 03:32:02 +0000 (22:32 -0500)]
Reland "Generate libvulkan.so.1 on Linux instead of libvulkan.so"
Chromium now uses VK_KHR_xcb_surface instead of VK_KHR_xlib_surface, so
it's able to use the gn build of Vulkan-Loader.
Shannon McPherson [Tue, 10 Nov 2020 18:07:08 +0000 (11:07 -0700)]
build: Update known-good files for 1.2.160 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: I8afe698dd58a062d28f40a49f51cfa6c19409387
Shannon McPherson [Mon, 2 Nov 2020 18:46:58 +0000 (11:46 -0700)]
build: Update known-good files for 1.2.159 header
Changes:
- Updated `known_good.json`
Change-Id: I7c30f49ac3514e8c3dd1866b07bf3bc3ee2fe55e
Shahbaz Youssefi [Fri, 30 Oct 2020 05:21:10 +0000 (01:21 -0400)]
Revert "Generate libvulkan.so.1 on Linux instead of libvulkan.so"
Causes Chromium to pick up ANGLE's build of Vulkan-Loader instead of the
system one, with the caveat that the gn build of Vulkan-Loader doesn't
support VK_KHR_xlib_surface which Chromium depends on.
This change can be re-introduced once Chromium switches to
VK_KHR_xcb_surface.
This reverts commit
8308d6744d50e4dc357e60282436f6ec0942b8c8.
Michel Zou [Thu, 22 Oct 2020 21:29:35 +0000 (23:29 +0200)]
Add an option to disable MASM
MASM generally goes with msvc, but it is not necessarily available with MinGW.
xantares [Tue, 20 Oct 2020 17:51:16 +0000 (19:51 +0200)]
Configure vulkan.pc when pkg-config is available
This allows vulkan.pc to be enabled on MinGW
Shahbaz Youssefi [Fri, 23 Oct 2020 01:48:53 +0000 (21:48 -0400)]
Generate libvulkan.so.1 on Linux instead of libvulkan.so
This is the Linux way. Previously, a copy step was added to copy
libvulkan.so to libvulkan.so.1. However, that only runs if everything
is built and not when a specific target is built.
There is no need for libvulkan.so on Linux, so this change makes the
libvulkan target directly generate libvulkan.so.1 and removes the copy
step.
Shannon McPherson [Mon, 19 Oct 2020 16:09:31 +0000 (10:09 -0600)]
build: Update known-good files for 1.2.158 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: I5f06eec6afb61bac576cbad3e6e6982c0bd0440c
Michel Zou [Thu, 22 Oct 2020 21:24:24 +0000 (23:24 +0200)]
tests: Use cmake -E copy instead of xcopy
Craig Stout [Mon, 26 Oct 2020 19:05:15 +0000 (12:05 -0700)]
Add support for VK_FUCHSIA_imagepipe_surface
xantares [Tue, 20 Oct 2020 17:37:43 +0000 (19:37 +0200)]
Fix vulkan link to on cfgmgr32 case-sensitive fs
On MinGW from Linux this fails because cfgmgr32 is lowercase. This will still work on win32.
Rémi Verschelde [Mon, 12 Oct 2020 10:46:18 +0000 (12:46 +0200)]
CMake: Fix libdir in pkg-config file, dehardcode includedir
Fixes #489.
Supersedes #214.
Craig Stout [Thu, 1 Oct 2020 02:59:30 +0000 (22:59 -0400)]
Add Fuchsia support
Fuchsia (fuchsia.dev) builds with GN and uses a loader service to load
the ICD into the application's address space.
ANGLE builds have been verified.
Reemoves unused variable is_icd.
Shannon McPherson [Mon, 12 Oct 2020 20:37:47 +0000 (14:37 -0600)]
build: Update known-good files for 1.2.157 header
Changes:
- Updated `known_good.json`
Change-Id: I7705cbe942a67c7b915349a1c34c7615d1dc4691
Dorian Apanel [Wed, 7 Oct 2020 22:46:12 +0000 (00:46 +0200)]
Handling also zero size override paths.
Dorian Apanel [Wed, 7 Oct 2020 09:18:51 +0000 (11:18 +0200)]
loader: Override layer load when custom allocator used.
When custom allocator is used, and is requested to allocate
zero size allocation, it can return NULL, which is then
interpreted as VK_ERROR_OUT_OF_HOST_MEMORY.
When such allocator was used, override layer was not loaded.
fix #485
Piers Daniell [Wed, 7 Oct 2020 18:29:54 +0000 (12:29 -0600)]
Fix formatting issue.
Piers Daniell [Wed, 7 Oct 2020 16:39:39 +0000 (10:39 -0600)]
Fix some issues when EnumerateAdapterPhysicalDevices is available
1) Fix a memory leak with sorted_array[].physical_devices when EnumerateAdapterPhysicalDevices returns an error. This fixes a failure with the "dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail" Vulkan CTS test.
2) Fix an issue with vkEnumeratePhysicalDeviceGroups() when fpCreateDXGIFactory1() fails, which will happen with Windows versions before version 10.
Shannon McPherson [Tue, 6 Oct 2020 16:47:13 +0000 (10:47 -0600)]
build: Update known-good files for 1.2.156 header
Changes:
- Updated `known_good.json`
Change-Id: Iefcdd52d8021515764d644ca86b0c5cd3dce8e16
Brecht Sanders [Tue, 29 Sep 2020 16:14:55 +0000 (18:14 +0200)]
loader: Fixes build with MinGW-w64 8.0.0.
See http://winlibs.com for a release of such GCC compiler
See issue https://github.com/KhronosGroup/Vulkan-Loader/issues/474
Charles Giessen [Mon, 5 Oct 2020 22:58:04 +0000 (16:58 -0600)]
docs: Update build.md for static build changes
macOS is the only supported platform for a static loader.
Changes the build.md and CMakeList.txt to correctly specify
the option and warning message.
Change-Id: Iaf00e65e60ce5833516b7fe290eed7198436b48b
Lenny Komow [Mon, 5 Oct 2020 22:38:35 +0000 (16:38 -0600)]
docs: Remove outdated references to WDK
Change-Id: Iab787fa84e76fefd5b22bd97566dbf47cf642ed0
Lenny Komow [Thu, 1 Oct 2020 17:03:25 +0000 (11:03 -0600)]
loader: Fix incorrect allocation error cleanup
Charles Giessen [Tue, 29 Sep 2020 20:00:21 +0000 (14:00 -0600)]
docs: Update static linking info
When static linking was removed as a build option, the documentation
for it was not ammended. This commit changes the text to describe that
it used to be supported, is no longer supported, and why the feature
was removed.
Change-Id: I8da0c1c811be7e9dc5119c4c27c34a5cbb30edf8
Shannon McPherson [Mon, 21 Sep 2020 16:21:48 +0000 (10:21 -0600)]
build: Update known-good files for 1.2.154 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: I909289d4e1523ed32aa62516a4725a2ff2df4f65
Charles Giessen [Thu, 17 Sep 2020 22:31:16 +0000 (16:31 -0600)]
Revert "loader: Return error if layer loading failed"
This reverts commit
49648d8fb398ac7d3d8e159939de060b8e759ecf.
Many layers were relying on silently failing to allow 32/64 bit versions
to work on linux. A later commit will properly check for failing layers.
Piers Daniell [Thu, 10 Sep 2020 22:48:19 +0000 (16:48 -0600)]
loader Fix issues with physical device sorting
Change-Id: I0bf01e5348aba2422eb0735928cfdcd682d1cd54
Shannon McPherson [Mon, 7 Sep 2020 19:37:45 +0000 (13:37 -0600)]
build: Update known-good files for 1.2.153 header
Changes:
- Updated `known_good.json`
Change-Id: I54f79fa08f65ff333ab47b651939dfd05b3c5094
Charles Giessen [Mon, 1 Jun 2020 17:45:30 +0000 (11:45 -0600)]
docs: Add info on VkConfig and override layer
Change-Id: I7fab8f7ff25a7f3ffd00a88da82daeac69e4e83c
Trung Lê [Fri, 10 Apr 2020 06:11:55 +0000 (16:11 +1000)]
Update Linux distro used in Travis pipeline
Ubuntu bionic comes with cmake 3.10.2. We could get rid of the custom cmake installation step.
Charles Giessen [Wed, 5 Aug 2020 19:42:44 +0000 (13:42 -0600)]
loader: Make device extensions return same count
Previously the loader would return a different count in the call to
vkEnumeratePhysicalDeviceExtensionProperties if any implicit layers contained extensions
that a driver also happened to support, thus causing a duplicate entry to the count, but
was later resolved in the second call to that function. This commit de-duplicates the
extensions when getting the count, preventing such an issue from occuring.
Change-Id: I3b3c0b8871e412d26dda916ed1e1e3fe3299491e
Charles Giessen [Mon, 1 Jun 2020 22:26:54 +0000 (16:26 -0600)]
loader: Return error if layer loading failed
Loader will now fail vkCreateInstance with VK_ERROR_LAYER_NOT_PRESENT
if the layer's library failed to load. Previously, it would log the
error but continue, leading to false positives since it would return
VK_SUCCESS.
Change-Id: I00804b6f02cc6e927ac0219b4cb0c2361d6561fe
Charles Giessen [Thu, 27 Aug 2020 22:27:06 +0000 (16:27 -0600)]
docs: Remove mention of old layers
The LoaderAndLayerInterface.md contained references to layers that
are no longer exist. This commit cleans that up.
Change-Id: I09a78513ba6f56cad6b6e9f2432242b86a291e93
Shannon McPherson [Thu, 27 Aug 2020 17:51:32 +0000 (11:51 -0600)]
build: Update known-good files for 1.2.152 header
Changes:
- Updated `known_good.json`
Change-Id: Ia6090de3d029dd2bf96a8d745d3c95461fd31bd6
Lenny Komow [Thu, 27 Aug 2020 17:22:26 +0000 (11:22 -0600)]
tests: Change license to Apache 2.0
Change-Id: Id0d23d1373154512b9e94af89a046b6b4e6d932b
Jamie Madill [Thu, 27 Aug 2020 03:40:09 +0000 (23:40 -0400)]
GN: Add missing header dependencies.
These headers were detected as missing by an ANGLE tool. Adding them
should fix some edge cases with incremental builds.
Lenny Komow [Tue, 25 Aug 2020 20:42:53 +0000 (14:42 -0600)]
repo: Prevent cmake name mismatch warning
Change-Id: I76c2c38ee42cf3b2956ecbeca4cd038dc4ffd800
Ryan Harrison [Wed, 26 Aug 2020 14:02:28 +0000 (10:02 -0400)]
Fix formatting
Ryan Harrison [Wed, 26 Aug 2020 14:01:14 +0000 (10:01 -0400)]
Move variables into scope they are referenced within
This prevents unused variable warnings/errors on non-Windows
platforms.
Fixes #459
Lenny Komow [Tue, 18 Aug 2020 21:38:08 +0000 (15:38 -0600)]
loader: Fix invalid cleanup on allocation error
Change-Id: I781ba00a65fa59a02423ea0d7c4168bda2c50193
Biswapriyo Nath [Wed, 29 Jul 2020 04:58:18 +0000 (10:28 +0530)]
loader: Fix some non-msvc compiler warnings
changes:
* loader/loader.c: cast dxgi_factory to void** type
* tests/loader_validation_tests.cpp: check if __STDC_FORMAT_MACROS is already defined
* tests/test_common.h: check if NOMINMAX is already defined
* tests/test_commogn.h: check _MSC_VER instead of WIN32 before pragma warning directive
Change-Id: I2fd78b760a90c2ac0e6463a60f5593a24ca904b8
Cody Northrop [Mon, 17 Aug 2020 20:28:20 +0000 (14:28 -0600)]
loader: Fixes for gn build
Shannon McPherson [Mon, 17 Aug 2020 17:41:19 +0000 (11:41 -0600)]
build: Update known-good files for 1.2.151 header
Changes:
- Updated `known_good.json`
Change-Id: I1b10c8c50ddbdafc545b5cf8b41e28f5fe79efbd
Fxshlein [Sun, 16 Aug 2020 08:29:50 +0000 (10:29 +0200)]
docs: Remove COPYRIGHT.txt from the readme
the COPYRIGHT.txt file itself was removed in https://github.com/KhronosGroup/Vulkan-Loader/commit/
d7452989ff0cfbaeaecfb63d8516cab63cf41bee
Lenny Komow [Fri, 14 Aug 2020 20:57:27 +0000 (14:57 -0600)]
repo: Set appveyor build to use Win10 SDK
Change-Id: Ic5dbf10dfd0a6229cd6783e5d2edd2f02c1b8ae4
Lenny Komow [Fri, 14 Aug 2020 20:48:42 +0000 (14:48 -0600)]
loader: Move tag to avoid linux warning
Piotr Bialecki [Fri, 7 Aug 2020 18:02:02 +0000 (20:02 +0200)]
loader: Fix physical device sorting crash
Fixed crash in device enumeration when there are adapters which do not
support Vulkan. Fixed incorrect error code returned from device
enumeration.
Change-Id: Ieaa1994b3766083a30738a09408e020813e27188
Lenny Komow [Mon, 3 Aug 2020 21:17:48 +0000 (15:17 -0600)]
loader: Remove illegal asssignment
Lenny Komow [Mon, 3 Aug 2020 17:03:22 +0000 (11:03 -0600)]
loader: Fix variable name
Change-Id: Ib8f9e5aa9de79705ec3665baebab3c0b829abd62
Lenny Komow [Mon, 3 Aug 2020 16:40:22 +0000 (10:40 -0600)]
loader: Fixpossible memory corruption
This fixes a possible memory corruption on Linux when using ICDs
without a corresponding physical device.
Change-Id: Ib0c4ed8fa8452fbee78b535372283141331d483d
Lenny Komow [Fri, 31 Jul 2020 00:10:06 +0000 (18:10 -0600)]
loader: Add reporting for physical device sorting
Lenny Komow [Mon, 6 Apr 2020 14:07:37 +0000 (08:07 -0600)]
docs: Update loader doc with device sorting info
Lenny Komow [Mon, 27 Jul 2020 17:33:45 +0000 (11:33 -0600)]
loader: Sort physical devices on Windows
This change adds a mechanism to allow sorting of physical devices
and physical device groups on Windows 10 if a driver supports a new
interface.
Shannon McPherson [Thu, 13 Aug 2020 19:22:41 +0000 (13:22 -0600)]
build: Update known-good files for 1.2.150 header
Changes:
- Updated `known_good.json`
Change-Id: I39f42dafe28afcec9b1fa8c9966d108fb7e703b9
Jamie Madill [Thu, 13 Aug 2020 18:33:48 +0000 (14:33 -0400)]
Fix double delete in loaderScanForImplicitLayers.
Adds a missing NULL assignment. This problem surfaced when using the
Vulkan configurator.
Fixes #452
Lenny Komow [Thu, 6 Aug 2020 23:00:25 +0000 (17:00 -0600)]
loader: Make invalid std val layer an error
Standard validation was changed to khronos validation. This change
moves the warning when illegally using standard validation to an
error that will not allow a user to continue and will tell the user
to use khronos validation.
Change-Id: Iaeae6cffa4494a299f408033569163a7c61d3105
Dorian Apanel [Thu, 6 Aug 2020 11:50:49 +0000 (13:50 +0200)]
loader: fix memory leak of failed to load layers
fix #445
Lenny Komow [Wed, 5 Aug 2020 20:09:52 +0000 (14:09 -0600)]
docs: Pass inst handles when getting func pointers
This fixes some documentation that incorrectly showed passing a NULL
instance when getting function pointers from vkGetInstanceProcAddr.
Change-Id: I56b4e8f244ec79ffb489ad86e09b30b8df8bc006
Charles Giessen [Wed, 5 Aug 2020 19:45:37 +0000 (13:45 -0600)]
loader: fix override paths leaking in VerifyAllMetaLayers
Change-Id: Ic1649d72e71fe0b6ff0a950e30e18feb387f5919
Shannon McPherson [Mon, 20 Jul 2020 18:36:53 +0000 (12:36 -0600)]
build: Update known-good files for 1.2.148 header
Changes:
- Updated `known_good.json`
Change-Id: Ib18f665a1782af4cd9e34923de67b7c3b7ad8393
Bob Ellison [Wed, 15 Jul 2020 21:13:48 +0000 (15:13 -0600)]
scripts: fix update_deps retry clone
There was a subtle bug in the original change; "git fetch"
would retry correctly, but "git clone" failed because the
destination directory was missing (after having been removed,
to ensure a clean clone operation).
The test case that was used (hundreds of times) happened to
provoke an error on the "git fetch" path; I was unaware that
the "git clone" failure path had never been exercised.
Shannon McPherson [Tue, 14 Jul 2020 17:25:34 +0000 (11:25 -0600)]
build: Update known-good files for 1.2.147 header
Changes:
- Updated `known_good.json`
Change-Id: I2309eef9e654cdca58770161a9397929a0b23de8
Lenny Komow [Tue, 14 Jul 2020 19:54:05 +0000 (13:54 -0600)]
loader: Remove RTLD_DEEPBIND flag
This causes trouble when used with the steam fossilize layer. We'd
still like to use RTLD_DEEPBIND, but we need to work out the issues
first.
Change-Id: Ic44b5a9de9a4e7a1163cbc68e4d5e692315b285c
Bob Ellison [Mon, 13 Jul 2020 17:28:10 +0000 (11:28 -0600)]
scripts: udpate_deps retry on clone or fetch failure
Duplicate change from
b636386a7824eb4e6a0d99962e1491ac68d3a295
on KhronosGroup/Vulkan-ValidationLayers, to keep update_deps.py
in sync across all repos. Original commit message is:
We see spurious failures to connect to github when trying to
run update_deps.py (up to 7% of runs, depending on the machine).
This is an annoyance when running by hand, but a headache and
a serious resource waste when running in automation (as a single
broken "git clone" or "git fetch" can cause the whole run to fail).
These changes allow update_deps.py to automatically retry
"git fetch" and "git clone" operations on failure.
These changes will be duplicated in follow-on PRs to the
other repositories that include "update_deps.py", to keep
them all in sync. These are KhronosGroup/Vulkan-Tools,
KhronosGroup/Vulkan-Loader, LunarG/VulkanSamples, and
LunarG/VulkanTools.
I'm also including a "technical debt" update here, because
VulkanTools/scripts/update_deps.py had diverged from the other
"update_deps.py" versions, to add a way to avoid building a
dependency if that dependency is not supported on the current
build platform. This should be harmless to the other
repositories (though potentially useful in the future). The
original commit was
aaabc9df034f1fdf9a976a6293d0983b079143ee
with description:
In update deps, this will check that a dependency is actually supported
on the platform being built. This is needed because the loader is a
dependency on all platforms other than Windows.
Charles Giessen [Thu, 9 Jul 2020 20:20:10 +0000 (14:20 -0600)]
loader: Make RTLD_DEEPBIND conditional on ASAN
Address Sanitizer (ASAN) is broken by the inclusion of RTLD_DEEPBIND. This commit
removes that dlopen flag if ASAN is detected during compilation.
Change-Id: Ibc3cc329b2f6335a3d5982691b6491efc8c3bbe9
Mike Schuchardt [Thu, 2 Jul 2020 21:59:18 +0000 (14:59 -0700)]
build: Roll GN DEPS file
Sync standalone GN toolchain revisions with current ANGLE revisions
Nicolas Caramelli [Tue, 7 Jul 2020 19:56:13 +0000 (21:56 +0200)]
Remove duplicate key / value in scripts/common_codegen.py
Shannon McPherson [Mon, 6 Jul 2020 17:20:11 +0000 (11:20 -0600)]
build: Update known-good files for 1.2.146 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: Ifbd578d254d544a454e7e84738330eae9983c462
Nicolas Caramelli [Sat, 4 Jul 2020 20:53:59 +0000 (22:53 +0200)]
loader: Add support for directfb surface extension
The new VK_EXT_directfb_surface extension is a WSI extension and
thereforce needs loader support like the other surface extensions.
Alexander Batashev [Sun, 5 Jul 2020 10:27:38 +0000 (13:27 +0300)]
loader: Fix symbol lookup order
Some Vulkan implementations may rely on external libraries.
One example is mesa driver, that uses libLLVM.so. If user
application also links with LLVM, some clashes may take place.
This patch ensures that library's own symbols are looked up
before any other symbols in current process.
Sylvain Defresne [Thu, 2 Jul 2020 16:05:01 +0000 (18:05 +0200)]
Convert GN libs lists to frameworks
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.
Bug: chromium:1052560
Charles Giessen [Wed, 1 Jul 2020 21:34:23 +0000 (15:34 -0600)]
loader: fix wrongly returned error code
vkEnumerateInstanceExtensionProperties was returning INITIALIZATION_FAILED
when a single malformed manifest file was found. This was due to the way
loader_scan_icd only returns an error if no valid ICD's were found.
Change-Id: I84b39774b766d20d607c990bddc921b1c2a4297a
Charles Giessen [Thu, 2 Jul 2020 21:26:41 +0000 (15:26 -0600)]
loader: fix TSAN warning
The trampoline vkEnumerateDeviceExtensionProperties locked/unlocked the
loader mutex, but the terminator function also unlocked, causeing a double
free. Removing the locking in the terminator fixes the problem.
Change-Id: I714b243f3410a7fdc371b740def5ab962ae74a6f
Shannon McPherson [Tue, 9 Jun 2020 19:34:36 +0000 (13:34 -0600)]
build: Update known-good files for 1.2.145 header
Changes:
- Updated `known_good.json`
- Propagated `loader_genvk.py` changes
- Modified scripts to accommodate new genvk functionality
- Generated new source files
Change-Id: If54251171bb3c70cef305d1e954aa02124432106
Jan Beich [Fri, 19 Jun 2020 10:19:08 +0000 (10:19 +0000)]
build: include system headers last
Charles Giessen [Mon, 15 Jun 2020 19:20:11 +0000 (13:20 -0600)]
loader: Use MoltenVK in app bundle if found
The loader now loads the first ICD in an app bundle if one exists.
This is to prevent multiple copies of MoltenVK being loaded.
Change-Id: I1e4b8e854e5d709c6e229c9591f4a8856e3b2b41
Lenny Komow [Thu, 11 Jun 2020 15:33:04 +0000 (09:33 -0600)]
loader: Fix crash in vkGetDeviceQueue2
This function allows an driver to return a null handle. A previous
change caused that to crash.
Change-Id: Ic2e375b1959bb5a16a6c4854715521e4d392a616
dan sinclair [Tue, 9 Jun 2020 17:14:55 +0000 (13:14 -0400)]
scripts: Use named params for generator options
When calling in the vulkan header python generator the options have
changed in 1.2.142 which causes the options passed by the loader to be
off by one. This ends up setting the emitExtensions to the value of the
sortProcedure and eventually causes the script to fail.
This CL updates the loader to used named parameters for the generator so
that the addition of the genpath does not throw off the parameter
positioning.
Change-Id: I14fda7e90be985216c5243457a22fdcb01b5c82b
Shannon McPherson [Mon, 25 May 2020 22:43:56 +0000 (16:43 -0600)]
Build: Update known-good files for 1.2.141 header
Change-Id: Ib5f2fab581fb98fa1391c8fde1009bb8bd1c09c7
Charles Giessen [Mon, 28 Oct 2019 20:15:11 +0000 (14:15 -0600)]
loader: add per-application override layer settings
An array of strings was added to the override layer to provide
per-application overrides. The loader will now look for an override profile
which contains an app_key entry that matches the path & name of the currently
running executable. Previous behavior with a global override still works as
intended.
This changes is in conjunction with the VkConfig rewrite to allow for more
than one override profile to be enabled.
Changes to be committed:
modified: loader/loader.c
modified: loader/loader.h
modified: loader/vk_loader_platform.h
Change-Id: I9ddbc98a098d48064110db6c29998eddb336fcda