Charles Giessen [Thu, 3 Jun 2021 22:47:19 +0000 (15:47 -0700)]
ci: Enable building of tests
Charles Giessen [Thu, 3 Jun 2021 22:24:06 +0000 (15:24 -0700)]
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
Charles Giessen [Thu, 3 Jun 2021 22:23:24 +0000 (15:23 -0700)]
ci: Enable regression tests in Windows CI
Change-Id: I5bb1d03f9c9a3be82f7ed0763a325996a5d8dae8
Mike Schuchardt [Mon, 7 Jun 2021 16:33:35 +0000 (09:33 -0700)]
build: Update to header 1.2.180
- Update known-good
- Generate source (no change)
Change-Id: I56d4483f777754c9e368ac9b0025d550070fdd83
Jamie Madill [Wed, 26 May 2021 13:45:20 +0000 (09:45 -0400)]
GN: Support custom library name.
This allows for projects like ANGLE that build the loader to prevent
conflicts with the system.
Biswapriyo Nath [Mon, 31 May 2021 07:16:38 +0000 (12:46 +0530)]
CMake: Fix linking option and libraries for MinGW.
Check MSVC for Visual Studio specific libraries.
Charles Giessen [Wed, 19 May 2021 04:36:35 +0000 (22:36 -0600)]
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
Charles Giessen [Thu, 27 May 2021 23:56:06 +0000 (17:56 -0600)]
tests: Include <memory> in test_util.h
Change-Id: If2b6766521dd6bea5478b6316eadef8ce3e048cf
Charles Giessen [Fri, 23 Apr 2021 18:37:46 +0000 (12:37 -0600)]
ci: Make linux CI run regression tests
Change-Id: I212a714cc0ec41da11bc69e216b4bb54685415a7
Charles Giessen [Fri, 23 Apr 2021 18:34:05 +0000 (12:34 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 18:33:12 +0000 (12:33 -0600)]
loader: Add pragma once to adapters.h
This allows the header to be included multiple times without error.
Change-Id: I4f4ca4ab57c0b7f8606f397d61dadfadc2597b0b
Charles Giessen [Fri, 23 Apr 2021 18:29:36 +0000 (12:29 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 18:29:10 +0000 (12:29 -0600)]
tests: fix spelling in loader_validation_tests
Change-Id: I2e278b959cd1d47bdc0d7fc19965e4d57e71b481
Charles Giessen [Fri, 23 Apr 2021 18:20:15 +0000 (12:20 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 18:07:08 +0000 (12:07 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 18:01:07 +0000 (12:01 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 17:53:53 +0000 (11:53 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 17:51:54 +0000 (11:51 -0600)]
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
Charles Giessen [Fri, 23 Apr 2021 17:49:09 +0000 (11:49 -0600)]
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
Charles Giessen [Sat, 6 Mar 2021 00:12:24 +0000 (16:12 -0800)]
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
Mike Schuchardt [Mon, 24 May 2021 15:17:34 +0000 (09:17 -0600)]
build: Update to header 1.2.179
- Update known-good
- Generate source (no change)
Change-Id: Ib52dc0ff04f76fd1db2dea4a125a094d30abab62
Mike Schuchardt [Tue, 11 May 2021 18:36:30 +0000 (11:36 -0700)]
build: Update to header 1.2.178
- Update known-good
- Generate source
Change-Id: I3e2756d9dc0452cc3743a05840d8e2a76961406a
Charles Giessen [Tue, 4 May 2021 22:06:04 +0000 (16:06 -0600)]
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
Mike Gorchak [Tue, 4 May 2021 20:33:16 +0000 (16:33 -0400)]
Use headers in the external folder prior to the system Vulkan headers
sfricke-samsung [Tue, 4 May 2021 06:03:06 +0000 (23:03 -0700)]
Match null queue check for vkGetDeviceQueue
Mike Schuchardt [Wed, 28 Apr 2021 16:22:18 +0000 (09:22 -0700)]
build: Update to header 1.2.177
- Update known-good
- Generate source (no changes)
Change-Id: I45f5702a6c975aa423b03f2e02fd19fca92d50d2
Mike Schuchardt [Wed, 28 Apr 2021 19:10:06 +0000 (12:10 -0700)]
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.
Lenny Komow [Tue, 27 Apr 2021 21:25:09 +0000 (15:25 -0600)]
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
Lenny Komow [Fri, 23 Apr 2021 21:02:18 +0000 (15:02 -0600)]
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.
Charles Giessen [Fri, 23 Apr 2021 20:04:38 +0000 (14:04 -0600)]
loader: Fix unused variable warning on Apple
Charles Giessen [Thu, 22 Apr 2021 04:35:39 +0000 (22:35 -0600)]
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
Charles Giessen [Thu, 15 Apr 2021 17:11:30 +0000 (11:11 -0600)]
loader: Accept layer manifest version 1.2.0
This change only prevents the loader from warning on the new version.
Change-Id: If8c0aedb2e0052d5b6eb6f72fc4e7ad70b58d8a7
Charles Giessen [Wed, 21 Apr 2021 16:25:14 +0000 (10:25 -0600)]
docs: Update pre-instance-function list
Add `vkEnumerateInstanceVersion` to the list of allowed pre instance
functions in the LoaderLayerInterface.md
Change-Id: I238aec5c3606af4d39bff5c50bbe75e909cd3224
Mike Gorchak [Wed, 21 Apr 2021 17:03:33 +0000 (13:03 -0400)]
build: Fix QNX build system
Add missing root Makefile for build-qnx folder and enable BETA
extensions by default.
Mike Schuchardt [Mon, 19 Apr 2021 07:33:45 +0000 (00:33 -0700)]
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
Charles Giessen [Mon, 19 Apr 2021 21:08:26 +0000 (15:08 -0600)]
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
Charles Giessen [Mon, 19 Apr 2021 22:42:22 +0000 (16:42 -0600)]
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
Mike Gorchak [Mon, 29 Mar 2021 23:36:17 +0000 (19:36 -0400)]
Add a couple of paragraphs about building process under QNX.
Mike Gorchak [Sat, 13 Mar 2021 00:17:03 +0000 (19:17 -0500)]
Rename build option to make it clearer that it belongs to QNX only.
Mike Gorchak [Thu, 11 Mar 2021 03:18:28 +0000 (22:18 -0500)]
Add QNX platform makefiles.
Mike Gorchak [Thu, 11 Mar 2021 03:17:20 +0000 (22:17 -0500)]
Add support for QNX platform.
Mike Schuchardt [Mon, 29 Mar 2021 19:49:57 +0000 (12:49 -0700)]
build: Update to header 1.2.174
- Update known-good
- Generate source (no changes)
Change-Id: Ia2099a0d63692c19ce8444721d5eb25f94c809d9
Lenny Komow [Tue, 23 Mar 2021 20:48:50 +0000 (14:48 -0600)]
docs: Update note about ICD proc addr
Mike Schuchardt [Tue, 23 Mar 2021 18:47:56 +0000 (11:47 -0700)]
build: Update known-good files for 1.2.173 header
- Update known_good.json
- Generate source files
Shannon McPherson [Mon, 8 Mar 2021 17:22:35 +0000 (10:22 -0700)]
build: Update known-good files for 1.2.172 header
Changes:
- Updated `known_good.json`
Change-Id: I7977f22711cefae65e6eabe00ec44d9e43e890a5
Shannon McPherson [Mon, 1 Mar 2021 17:27:51 +0000 (10:27 -0700)]
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
Shannon McPherson [Mon, 1 Mar 2021 17:51:41 +0000 (10:51 -0700)]
scripts: Update copyright in `common_codegen.py`
Change-Id: Id5049a260cb8521a1768b6b48b36bdef825e5508
Jeremy Gebben [Mon, 15 Feb 2021 13:41:45 +0000 (06:41 -0700)]
build: Update known-good files for 1.2.170 header
Changes:
- Updated `known_good.json`
- Generated new source files
Change-Id: I98c582a8cad9ffbdda5a1b2ffa5517b866803047
Lenny Komow [Wed, 10 Feb 2021 18:28:03 +0000 (11:28 -0700)]
docs: Update readme to point to github actions
Lenny Komow [Tue, 9 Feb 2021 22:27:19 +0000 (15:27 -0700)]
repo: Switch to github actions for CI
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.