| Age | Commit message (Collapse) | Author |
|
Allows passing flags to assembler in order to build 32-bit targets
on 64-bit platforms.
A 32-bit build can be produced by passing -DCMAKE_ASM-ATT_FLAGS=--32
to cmake.
|
|
We were allocating the wrong struct for the dispatch table object
when creating the instance. This left us using invalid memory
when using the physical device extension trampolines.
Change-Id: I9939a8c9fe320b0d07592ab4beb5b6faaba40383
|
|
A previous change of mine broke the ninja build in the loader. This
commit resolves that by fixing the include path
Change-Id: Iaabf3488b323bb3d2d0e40a7d555769c528e61e3
|
|
Change-Id: I6a8de7feb44587601cc72342f996a26f8ae6bcd8
|
|
Convert unknown physical device extension trampolines to assembly
on windows. This is necessary because the previous method relied on
compiler optimizations that were not being run by MSVC, even with
full optimizations enabled.
Change-Id: Ibefa6ed24f8c91b1e723fab9c1cfd3039fabd64b
|
|
Add CMake flag INSTALL_LVL_FILES (default ON) that when
set to OFF, suppresses the installation of LVL artifacts
when running "make install" on Linux.
This flag doesn't have much use in the LVL repo because
when turned off, CMake won't generate an install target
in the makefiles.
However, for the downstream VulkanTools and VulkanSamples
repos, it can be useful to avoid installing LVL files on
top of files that may have already been installed from
a previous "make install" installation of the LVL repo.
An example of such a use case would be the desire to
have a more up-to-date version of LVL on the system
than the one last merged into the downstream repo.
This new flag is meant to address the need mentioned in
LVL Pull Request #1844.
Change-Id: I421f37ea4e885fbf0a268eff363a28f0537b1953
|
|
Change-Id: I88d9c5ae82159ad6b1976b0b498fbe4ee7f5e2d5
|
|
Change-Id: I560dda7156d8550af6b7073eb7fcd0a14aa97131
|
|
|
|
The size argument to a call to memcpy is for the wrong struct. The type
of `ext->list[idx].props` is VkExtensionProperties.
Credit goes to AddressSanitizer for spotting this bug.
|
|
Change-Id: I481ff8a2ae0ec5a82773fddd2b59c750126adc11
|
|
Add loader emulation for VK_KHR_get_surface_capabilities2 commands
Change-Id: I1de99d1bc94d6ec1191601e75b79c5c32fa81fdc
|
|
Fix the environment variable usage of VK_LOADER_DISABLE_INST_EXT_FILTER
so that it will also ignore the unknown extensions during
vkCreateInstance and clean up a few more messages.
The previous messages were confusing and didn't indicate what
was actually wrong.
Change-Id: Iccd0a4b2cfd673187cb7e92fe9cec23deb058ff2
|
|
Add support for VkPhysicalDeviceFeatures2KHR and
VkDeviceGroupDeviceCreateInfoKHX structs in the pNext chain
of VkDeviceCreateInfo for emulated physical devices
Change-Id: Ib00e35546f064f57f987d8eda14fba17bceab52c
|
|
The loader will now handle structures from VK_KHX_multiview and
VK_KHX_external_memory_capabilities in the pNext fields of commands
from VK_KHR_get_physical_device_properties2.
Change-Id: Ic7175e9334c56c7642b75360b35a6b9ff240ee98
|
|
Change-Id: I662a6a182680ef7da6ad51a738fcc5aaff54f043
|
|
Added table of all environmental variables. Also added note
about using LD_BIND_NOW usage for discovering problematic ICDs.
Change-Id: Iba4234b2226ab145491fc913f4361b098b21fd0b
|
|
Fix how the loader handles realloc calls. Instead of always overriding
the pointer, check to see if the allocation succeeds.
Also, set the paths in our run_all_tests.ps1 to global paths.
Finally, fix a spelling error in the test names.
Change-Id: I7b2e0d246dbe6353d29fb56367397c5d8767aaa2
|
|
Change-Id: I53ae66929ed38d81eb52cc0307341d5c8f97cdc8
|
|
Expand loader_platform_open_library_error on Windows to include
the error message from GetLastError();
Also, modify the loading of the layer library to use the
loader_platform_open_library_error message sincce we want
to get as much error information in that as possible.
And fix a typo in a comment.
Change-Id: I1ef5ede8c6716c4624b31ddb3b32b83392920a6c
|
|
Expand library search locations based on recommendations by
Dustin. We still attempt to use the old LoadLibrary first,
and then, only if that fails, do we attempt to use the new search.
Change-Id: I4cf1358f9eb7e45ac61f36435e926aa89c212f83
|
|
Pierre-Loup at Valve caught this. By using RTLD_NOW on dlopen
it fails if symbols are not resolved at dlopen time. This resolves
an error where an ICD is missing a symbol on a system causing
the loader to fail later at an unrecoverable time.
Change-Id: Icf43fd36aebfbcb4b08e7e3891570161234118f7
|
|
Change-Id: I5ad4e0794726029fe7fe21fdb8a9667f7eb9e7d5
|
|
Add the ability for the loader to emulate the commands in
VK_KHR_get_physical_device_properties2. This will only be used when
using multiple physical devices where only one supportes the ext.
Change-Id: I596c8ee9eea5e5136e5b478508abb21c5d8ad5a1
|
|
This doesn't completely satisfy GH 1675, but at least resolves a
few of the holes discovered by @randomascii.
Change-Id: Idb2273851e36d4470d2f14cb09d6ac1c314497a8
|
|
In the case we remove a meta-layer, use memmove once, not in an
array.
Change-Id: Ia7496c4436e987011a0ad504a096c15f9d320c28
|
|
Fix some potential issues discovered by Karl in the code review.
Also, fix CMake warning on newly added VkLayer_standard_layer.
The CMake generation code I had been using expected a project with
the same name as the JSON.
Change-Id: I8738ff03ac08bcfc13aa8d11c570a0b507de450a
|
|
Use the meta-layer Manifest API version to check against each
of its component layer API versions. This will force us to
make sure each JSON file is properly updated in sync.
Add a section to the LoaderAndLayerInterface markdown doc about
the usage of meta-layers, and an example of how they look in a
Manifest JSON file.
Change-Id: I667cfd3013cbcf201c83935dc6f1c2bb937c7742
|
|
This fixes a bug found by Timothee Besset regarding calling
vkEnumerateDeviceLayerProperties when no layers are present. This
resulted in a negative number being filled into a uint32_t which
caused an invalid number of layers to be returned.
Now that we have meta-layers implemented instead of hard-coded,
I created two lists: an application provided list of layers, and
an expanded list of layers (where meta-layers are broken up into
their component layers). The former is used when working with the
enumerate calls, but the later is used internally for final layer
activation.
Change-Id: If723fdfb5acb1dc57923282d2c641c582870ad1c
|
|
Integrate Lenny and my changes for Meta-layers.
Includes adding initial JSON file for standard_validation.
Change-Id: Ibc1da464fad4949e14e171dbc7dd9990621e1081
|
|
Change-Id: Id51ce907ca167a44f9f2db6db48b4ade679b129b
|
|
Restrict the loader's JSON errors when reading ICD manifest files
to only return an overall error if there are no valid drivers.
Change-Id: I10edb1cdc7e4db9cfdc0b3595416f0614ed22867
|
|
Resolve missing struct sType as well as extern of
vkNegotiateLoaderAndLayerInterface as a C function. Finally,
bump up the JSON file version so it looks for the negotiate
function.
Change-Id: I7fd4784fce6cbd0c303f7b2bb354542e4b16b1df
|
|
Change-Id: Ia72feb84bcc8bfa479694e901beb4fa685fdfdf3
|
|
This allows non-cmake platforms to compile the loader. Use a define
named VULKAN_NON_CMAKE_BUILD to disable CMAKE-specific features.
Change-Id: I6f6d8731fe1be60fd138e9fe1006c913fb029b47
|
|
Fix issue brought up by Masaki Takano in LunarXchange.
Change-Id: Ib6caa931decf5976e96bcd4629602b7f25b88001
|
|
Fixes #1582
Change-Id: I2f06a7016643f61d7e6341df20f355cb510350ab
|
|
vkEnumeratePhysicalDeviceGroupsKHX was not properly generating the
physical device information or groups. Several changes resolve
most of the issue, however, I'm still seeing issues when certain
layers enabled.
Change-Id: Id8d4553da25491a3d0a97e8d44e21340b41bc09c
|
|
This fixes the a few occurences in demos, the loader and a test.
It also adds the warning to the always-on list so it will prevent
future regressions.
Fixes #1587.
Change-Id: I26f69e977b57749a3ab4ddb548ada95384131edc
|
|
Fixes #757
On Linux, the build configures a vulkan.pc pkgconfig
file, writing it to <build_dir>/loader. The make 'install'
target then installs this file along with the others so that
it can be found with pkg-config. Then, issuing:
$ pkg-config --libs --cflags vulkan
emits compilation flags for vulkan programs.
Since retrieving the header version from vulkan.h was needed in
order to put the Version in the pc file, this commit also uses
the header version to specify the SO version, so it no longer needs
to be changed for every release.
Change-Id: If83c17bfbb59f2ee05d5f86f5e957fc11871546b
|
|
loader: Initialize json_version
|
|
- updated include/vulkan/vulkan.h
- updated scripts/cgenerator.py
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- updated loader SOVERSION
- updated include/vulkan/vulkan.hpp
- updated parameter_validation.cpp with new APIs
- updated object_tracker.cpp with new APIs
Change-Id: I1fd812cb376d5cddee5ab4acf2e4f8fe6d33b761
|
|
Fields of json_version were left uninitialized if file_format_version
in a layer json file was incomplete. Initialize them to 0.
|
|
Cleanup enabled extension array pointer passed down to driver.
If the loader overrode the create info struct, the pointer
could be garbage if the enabled extension count was 0. Now,
make sure it is NULL.
Change-Id: I558d768e786892e7afc44f58b4173a2b8db3deee
|
|
secure_getenv should only be used on something that is security
sensitive. Certain environment variable settings do not fall
into that category. So, only use it when necessary.
Change-Id: Ib8b8dc1a1528a2f67f7cdc25051be078292ee19a
|
|
The previous check was against the compiler, not against the libc.
Implement the check in CMake and generate a new header file which
defines appropriate defines (loader_cmake_config.h).
Change-Id: I2ae0e8d482fb4ce13089128157c11d18b0c178b9
|
|
Fix some spelling errors (caught by VS2017 spelling extension) and
a few floating func defs that are no longer valid.
Change-Id: Ifd9394227dfe3b3255c27429dadaf405433232d2
|
|
Use secure_getenv always if it's available. If it's not available,
fall back to getenv (because some libc's, like musl, don't export
secure_getenv).
Change-Id: I0cae57e1048dcbbadbdd9cc71cc17d51706161a0
|
|
Move the loader-specific generated files into the loader binary
folder when built.
Change-Id: Ib5f04eada8eb0b89d1d5e50adaf1e964d4f1a6d6
|
|
Fix several leaks caught by Valgrind. This change should fix all
memory leaks caught by David Hubbard in pull-request #811.
Change-Id: I55d7f3a6abbc32fde182702c4b9cf1041107c6df
|