Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I89320faf4c1063b9404cfca1d528edef4cfa8fb3
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
|
|
Change-Id: Ibcdb636a32951e23bd0871a93dd7ffa88a7cc2c6
|
|
Change-Id: If03b32419c4c094b5645009a008549b5f8510315
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
|
|
Change-Id: I891e70bd36594aa31fc6f405006e233c58ad35d1
|
|
dEQP-VK.api.object_management.alloc_callback_fail.device is crashed on
RPI4, it's caused by double free in icd_term->logical_device_list.
This patch intend to avoid duplicated item in
icd_term->logical_device_list.
Change-Id: Icfd35f8fad70a06a5697d9dc0c0a330f83e08fc6
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
|
|
1. Change version number
2. Add default path for mesa icd
Change-Id: Iea5a2636cb8215c82cb901fed3bf4dc058e86c62
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
|
|
|
|
- Update known-good
- Generate source
|
|
The loader.rc file is now checked into the source, and is automatically updated
by python whenever the headers are updated so that it contains the version used
to build the loader.
If BUILD_DLL_VERSIONINFO is set in the command line, then the loader will use
that version to configure a new loader.rc and place it in the build directory.
Then it will use that loader.rc rather than the checked in file. This allows
Vulkan Runtimes to be built with an exact version.
The file is checked in to allow builds without modifying the source directory
and allowing GN builds to not need any additional configuration to work.
|
|
|
|
This commit makes the copyright date to be taken from the day of the build
instead of it being hardcoded, which is liable to be out of date.
This commit also makes the loader.rc be generated into the build directory
rather than the source tree. Because this commit modifies the version info to
include the current header version for debug builds, this prevents needing to
update the file whenever the headers update.
|
|
The current design of the loader make the Override Layer, with its override
paths, take priority over VK_LAYER_PATH. This is fine, but if the override
layer accidentally was left around, it can cause confusion as VK_LAYER_PATH
suddenly stops working for no apparent reason. This commit adds a log message
to indicate that it is being ignored.
|
|
closes #1107
|
|
|
|
- Update known-good
- Generate source
|
|
The changes made by Version 7 are as follows.
If a Driver supports any of the following functions,
they must be exposed by with vk_icdGetInstanceProcAddr:
* vk_icdNegotiateLoaderICDInterfaceVersion
* vk_icdGetPhysicalDeviceProcAddr
* vk_icdEnumerateAdapterPhysicalDevices (Windows only)
This makes it optional for a driver to export these functions. Drivers may still
export them for compatibility with older loaders.
Loader and Driver Interface Version 7 allows for drivers provided through the
VK_LUNARG_direct_driver_loading extension to support the entire Loader and Driver
Interface.
This commit makes many small fixes to the documentation. Main changes are adding
Version 7 of the Loader and Driver Interface, clarifies when the functions
associated with this version must be exported, when they can be optionally exported
and when they must be exposed through vk_icdGetInstanceProcAddr. This also
clarifies LDP_DRIVER_10 to note the exact behavior of drivers that is disallowed.
In the process of these documentation changes, the glossary was amended with
definitions for Exported Functions, Exposed Functions, and Querying Functions.
|
|
|
|
|
|
vk_layer_dispatch_table.h may be included after vk_icd.h and may cause multiple
definitions. This commit adds a macro guard on whether the type is defined just
in case.
|
|
If there is an error loading a dynamic library, check to see if it is
the result of an OOM condition. Then return the appropriate OOM error
code up the callchain. This commit is the result of an OOM condition
when trying to load the validation layers, which resulted in the return
code VK_ERROR_LAYER_NOT_PRESENT. This is very misleading. If the
loader can catch then report more accurate information, then it should.
|
|
|
|
Vulkan::Registry was deprecated by Vulkan-Headers
Use 'VULKAN_HEADERS_REGISTRY_DIRECTORY' instead.
closes #1106
|
|
Document that a bundled driver on macOS will cause the loader to ignore drivers
in system installed locations.
|
|
Allow basic tests to be written which exercise the bundle discovery and loading logic
in the loader. This allows testing whether drivers found in bundles disables searching
for drivers on the rest of the system.
This commit also inclues fixes for a half dozen non essential spelling mistakes.
|
|
Previous commits broke the behavior of only using bundled drivers if found,
this commit fixes the condition to make sure the bundled drivers are used while
no other drivers are loaded.
|
|
The version of the Vulkan-Headers used to generate the source code is what should be
used to set the version of the binary, rather than the version of the Vulkan-Headers
that is currently available. This commit checks that version into the repo so that
it is used, and adds the necessary python code to update it.
This behavior was previously in the repo but was broken by the update to use the
version parsing logic from the Vulkan-Headers.
|
|
While working on the code, it is common to start the allocation tests at a fail_index
greater than zero, usually close to when the issue starts. This was accidentally
checked in, this commit fixes that mistake.
|
|
The revertion of gen_defines.asm generation during cross compilation changed the
form of add_custom_command used, which inadvertently relied on CMake 3.16 support.
From the CMake Docs:
DEPENDS:
...
A target-level dependency is added if any dependency is a byproduct of a target or
any of its build events in the same directory to ensure the byproducts will be
available before this target is built.
|
|
Removes need for a bit of python code / parsing.
And it's consistent with VVL's approach.
|
|
- Update known-good
- Generate source
|
|
|
|
- Update known-good
- Generate source
|
|
> If `VK_LAYER_PATH` is present, then `VK_ADD_LAYER_PATH` will not be
used by the loader and any values will be ignored.
This was present for the Windows documentation but not for linux and
company.
|
|
|
|
VK_LAYER_PATH does not only search directories
|
|
VK_LAYER_PATH env var
|
|
|
|
instead of just directories
|
|
both explicit directories and files
|
|
|
|
- Update known-good
- Generate source
|
|
These don't need to be exported from the shared library, as they're just
internal implementation details.
Closes #1079
|
|
Previously it used integrity_level > MEDIUM, which causes issues since
occasionally windows elevates certain regular user mode processes to
be MEDIUM + 0x100 or similar, causing the `is_high_integrity()` to
return true even though it isn't an admin level process.
|
|
Fixes #1076
|
|
There were more cases where OOM wasn't being propagated correctly, or
even caught in the first place. This change makes all of those paths
report OOM to the application as is expected. One case was due to linux
sorting erroring out but then leaking memory, which wasn't caught because
the tests didn't create devices that supported PhysDevProps2.
Lastly, since the Allocation tests were taking much longer due to making
many more allocations, the MemoryTracker was rewritten to use
std::unordered_map to speed up insertion and lookup of allocations made.
|
|
- Update known-good
- Generate source
|
|
This helps exercise the cJSON OOM handling code. The json file is
just a copy of the validation layer manifest file.
|
|
There was a few places where an out of memory error could be generated
by parsing json but were not passed on upwards, causing CTS tests to fail.
|
|
goto's were replaced by returns erroneously. This caused unfreed memory in
certain OOM scenarios, caught by CTS. The reason the loader tests didn't catch
this was because the fake drivers did not report any extensions, thus no memory
was allocated (which would later be leaked). This commit addressess this
deficiency in the tests as well, which included correctly incrementing the
MemoryTracker's allocation count during realloc.
|
|
If loader_get_json fails due to the file missing or the file being a
stale symlink, it returns VK_ERROR_INITIALIZATION_FAILED
which loader_parse_icd_manifest passed upwards. Since the caller of
loader_parse_icd_manifest wasn't expecting that error code, it didn't
skip the ICD, causing an infinite recusion in EnumInstExtProps due
to the call to dlsym("vkEnumerateInstanceExtensionProperties");
This also required changes to callers of loader_get_json which would
propagate VK_ERROR_INITIALIZATION failed during layer searching to
no longer cause vkCreateInstance to abort if any invalid files were
found.
Added tests for symlinks as the origin of this bug is due to 'stale'
symlinks after driver installers
|