aboutsummaryrefslogtreecommitdiff
path: root/loader
AgeCommit message (Collapse)Author
2017-06-12docs: Remove swapchain refs from docs/text filesMark Lobodzinski
Change-Id: I88d9c5ae82159ad6b1976b0b498fbe4ee7f5e2d5
2017-06-12loader: Change std_val to ignore swapchain layerMark Lobodzinski
Change-Id: I560dda7156d8550af6b7073eb7fcd0a14aa97131
2017-06-12loader: replace UTF-8 “” with "Nekotekina
2017-06-05loader: Fix buffer overflow in loader_add_to_dev_ext_listGabríel Arthúr Pétursson
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.
2017-06-02loader: Add emulation for EXT inst extensionsLenny Komow
Change-Id: I481ff8a2ae0ec5a82773fddd2b59c750126adc11
2017-05-31loader: Emulate surface capabilities 2Lenny Komow
Add loader emulation for VK_KHR_get_surface_capabilities2 commands Change-Id: I1de99d1bc94d6ec1191601e75b79c5c32fa81fdc
2017-05-26loader: Fix env usage and cleanup messagesMark Young
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
2017-05-26loader: Extend emulation to VkDevice creationLenny Komow
Add support for VkPhysicalDeviceFeatures2KHR and VkDeviceGroupDeviceCreateInfoKHX structs in the pNext chain of VkDeviceCreateInfo for emulated physical devices Change-Id: Ib00e35546f064f57f987d8eda14fba17bceab52c
2017-05-26loader: Add additional extensions to ext emulationLenny Komow
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
2017-05-23loader: Use correct instance in gpdpa callTony Barbour
Change-Id: I662a6a182680ef7da6ad51a738fcc5aaff54f043
2017-05-19docs: Update docs with env varsMark Young
Added table of all environmental variables. Also added note about using LD_BIND_NOW usage for discovering problematic ICDs. Change-Id: Iba4234b2226ab145491fc913f4361b098b21fd0b
2017-05-19loader: gh1771-Fix realloc handlingMark Young
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
2017-05-18loader: Revert ICD dlopen back to using RTLD_LAZYLenny Komow
Change-Id: I53ae66929ed38d81eb52cc0307341d5c8f97cdc8
2017-05-16loader: Expand error message infoMark Young
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
2017-05-16loader: Expand lib search locationsMark Young
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
2017-05-16loader: Modify ICD dlopen to use RTLD_NOWMark Young
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
2017-05-15loader: Add ICD to extension emulation debug infoLenny Komow
Change-Id: I5ad4e0794726029fe7fe21fdb8a9667f7eb9e7d5
2017-05-10loader: Add basic phys dev props emulationLenny Komow
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
2017-05-10loader : gh1675 - Further strncat changesMark Young
This doesn't completely satisfy GH 1675, but at least resolves a few of the holes discovered by @randomascii. Change-Id: Idb2273851e36d4470d2f14cb09d6ac1c314497a8
2017-05-09loader: Optimize layer removalMark Young
In the case we remove a meta-layer, use memmove once, not in an array. Change-Id: Ia7496c4436e987011a0ad504a096c15f9d320c28
2017-05-09loader: Code review fixesMark Young
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
2017-05-09loader: Update meta-layersMark Young
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
2017-05-09loader: Fix layer Enumerate bugMark Young
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
2017-05-09loader: Meta-layer supportMark Young
Integrate Lenny and my changes for Meta-layers. Includes adding initial JSON file for standard_validation. Change-Id: Ibc1da464fad4949e14e171dbc7dd9990621e1081
2017-05-04docs: Update loader doc for linking and formatLenny Komow
Change-Id: Id51ce907ca167a44f9f2db6db48b4ade679b129b
2017-04-26loader: gh1681 - Restrict error in JSONMark Young
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
2017-04-07loader: Fix loader and layer negotiationMark Young
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
2017-03-31loader: Fix loader crash with multiple instancesLenny Komow
Change-Id: Ia72feb84bcc8bfa479694e901beb4fa685fdfdf3
2017-03-22loader: Add guard around cmake header include.Jamie Madill
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
2017-03-20docs: LX666 - Typos in DocsMark Young
Fix issue brought up by Masaki Takano in LunarXchange. Change-Id: Ib6caa931decf5976e96bcd4629602b7f25b88001
2017-03-16build: Improve pkg-config to handle 64-bit distrosleigh123linux
Fixes #1582 Change-Id: I2f06a7016643f61d7e6341df20f355cb510350ab
2017-03-16loader: Fix vkEnumeratePhysicalDeviceGroupsKHXMark Young
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
2017-03-16build: Fix potentially uninitialized VS2015 warningJamie Madill
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
2017-03-14build: Add pkgconfig file for the Vulkan loaderKarl Schultz
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
2017-03-14Merge pull request #1578 from KhronosGroup/stroyan_loader_json_initMike Stroyan
loader: Initialize json_version
2017-03-14header: Update to 1.0.43 header versionMark Lobodzinski
- 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
2017-03-14loader: Initialize json_versionMike Stroyan
Fields of json_version were left uninitialized if file_format_version in a layer json file was incomplete. Initialize them to 0.
2017-03-09loader: Set pointer to NULLMark Young
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
2017-03-09loader: Use secure_getenv only when necessaryMark Young
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
2017-03-09loader: Update secure_getenv checkMark Young
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
2017-03-08spelling: Fix spelling errorsMark Young
Fix some spelling errors (caught by VS2017 spelling extension) and a few floating func defs that are no longer valid. Change-Id: Ifd9394227dfe3b3255c27429dadaf405433232d2
2017-03-08loader: Update secure_getenv usageMark Young
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
2017-03-06loader: gh1528 - Move generated filesMark Young
Move the loader-specific generated files into the loader binary folder when built. Change-Id: Ib5f04eada8eb0b89d1d5e50adaf1e964d4f1a6d6
2017-03-03loader: Fix several leaksMark Young
Fix several leaks caught by Valgrind. This change should fix all memory leaks caught by David Hubbard in pull-request #811. Change-Id: I55d7f3a6abbc32fde182702c4b9cf1041107c6df
2017-03-02docs: Add new layer registries to loader docLenny Komow
Change-Id: I185d37096db07585d8b4015201656937fbf5714d
2017-03-02loader: gh1153 - Modify layer search pathLenny Komow
The loader will now seach HKEY_CURRENT_USER in addition to HKEY_LOCAL_MACHINE when looking up layers in the registries. Change-Id: I899dc7d65a2fe08f1e471fa8dccba5255f8ef7b7
2017-03-01loader: Remove floating fileMark Young
I had removed the need for loader/table_ops.h in my loader automatic generation changes, but forgot to remove the file. Change-Id: Ide46609d9eda354b712844782b97af6f1cc09ef0
2017-03-01vulkan: update to header 1.0.42Mark Young
Updated all necessary files to 1.0.42. This includes the various headers as well as the loader, and the parameter validation, object tracking, and threading layers. Additionally, bump all layer JSON files to 1.0.42. Also, in this change: - Enable loader extension automation so that the loader now generates all extension entry-points automatically during build to reduce likelihood of missing a critical piece on header update. - Enable layer dispatch table extension automation for the same reason. - Fixes from Mark Lobodzinski and Tony Barbour to resolve crash in loader when working with Intel's Windows driver due to GetInstanceProcAddr getting called on inappropriate command names. Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8
2017-02-20loader: Configurable fallback search pathsBenjamin Saunders
This makes it easier for non-FHS distributions to behave well when the loader is used by a SUID process or in an otherwise unusual environment.
2017-02-17loader: Fix a few potential overrunsMark Young
Fixed a few places a strcpy or strcat could overrun. Change-Id: I58184bd418ae5ee4596a40bf66ef2ab41400ee55