aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.c
AgeCommit message (Collapse)Author
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-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-23loader: Use correct instance in gpdpa callTony Barbour
Change-Id: I662a6a182680ef7da6ad51a738fcc5aaff54f043
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-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-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-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-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-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-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-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
2017-02-13loader: Fix XDG path parsingKarl Schultz
Fixes #1474 Fix path parsing code to handle leading and trailing path separators. Also handle contiguous path separators. When encountering something like ::: in the path, the old code would add multiple entries containing only the relative part of the path (e.g., /vulkan.icd.d).
2017-02-10loader: Add env var to disable inst ext filterMark Young
Add an environmental variable to disable the instance extension filtering. Simply defining VK_LOADER_DISABLE_INST_EXT_FILTER to a non-zero number will disable the functionality. Change-Id: I953814b49e87289a35f154755521d5433474c920
2017-02-03loader: gh1449 - Fix mem leak on CTSMark Young
Fix a memory leak in the CTS test which fails randomly during the vkCreateInstance call. Change-Id: Ie72feac730d3854cb2af9e13a3687aa43081bfd5
2017-02-02loader: Improve Linux manifest searchBenjamin Saunders
Searching XDG_CONFIG_DIRS and XDG_DATA_DIRS instead of hard-coding specific paths improves portability, particularly on platforms which don't implement the Filesystem Hierarchy Standard. For example, this allows the loader to function correctly out of the box on NixOS.
2017-01-27build: Enable declaration hiding warning on WindowsKarl Schultz
Fixes #1388 Turn on the Windows compiler option (4456) to report hidden declarations. Fix all places where this was occurring. Change-Id: I3346d87da8b70d6299c206fcac68520a091ed1a6
2017-01-26repo: Clang-format LVL source files using GoogleMark Lobodzinski
Switch clang-format standard from the LLVM style to the Google style for more consistency. Change-Id: I247c4abc275d7873a91522e1e234198adaa24033
2017-01-26repo: Clang-format c/cpp/h LVL files using LLVMMark Lobodzinski
Bring all source files in the repo up to date with consistent coding style/standard. Change-Id: Iceedbc17109974d3a0437fc4995441c9ad7e0c23
2017-01-24loader: Update the loader to 1.0.39Mark Young
Add new extensions for 1.0.39. Also, updated layers to include minimal set of functionality for 1.0.39 extensions. Extensions include: - VK_KHR_get_physical_device_properties2 - VK_KHR_shader_draw_parameters - VK_EXT_direct_mode_display - VK_EXT_display_surface_counter - VK_EXT_display_control Also, redo the LoaderAndLayerIf document. Change-Id: I10412086da7a798afe832a3892e18f606259b5af
2017-01-14loader: Fix static analysis warningsKarl Schultz
Handle possible null pointer dereferences. Misc other warnings, nothing too serious. Not addressing alloca concerns yet. Change-Id: I712a6b4996a4d900604867e373521ff4d1c53df5
2017-01-13loader: Improve loader loggingMark Young
Clean up some more logging strings with extra spaces. Also, updated the command-line output of the VK_LOADER_DEBUG messages so that they clearly indicate what type of log message is being outputted: INFO, WARNING, ERROR, PERF, and DEBUG. Change-Id: I8cbb5b058094febdccf912eb595f5b4f01c3485b
2017-01-12loader: Fix phys device error messageLenny Komow
Change-Id: I37cfdb4b290dc8d5be7c606e32eb8d369ea43c6a
2017-01-12loader: Modify EnumPhysDev functionsMark Young
Modify the loader's trampoline and terminator vkEnumeratePhysicalDevice functions to utilize helper functions. Also, fix the failure in CTS. Change-Id: Id9356fffd42f878c660ac8ee831e7527cce608bd
2017-01-12loader: Fix variable shadowing warning.Jamie Madill
Change-Id: I71916c5300c24158901123f775b7b2fec3293e5b
2017-01-11loader: Add more logging messagesMark Young
Add more logging messages on Error cases to help debugging. Change-Id: I78b6bd7c73d7234283bf94d745c8733d59752422
2017-01-05loader: gl167 - Remove unknown inst extensionsLenny Komow
Change-Id: I24aecbdab452a04514fd42a9a9ae7f3bcf1cd2ca
2016-12-29loader: Switch variable appropriatelyMark Young
A delete was being done using a variable that wasn't directly tied to the array. Change-Id: I59ba4bc86a72fc8158e3a7c46e13c54fb2409873
2016-12-27loader: EnumPhysDev fixesMark Young
Found a few issues, and I had some concerns about the physical device values enduring over multiple queries. Change-Id: Ifaa94a4ecf9edfc79bdd3b3d473db068952e3264
2016-12-23loader: clean up comment and variableMichael Jurka
Make one variable's name plural to clarify that it contains more than one layer. Also, clean up a comment that wrapped prematurely to the next line.
2016-12-22loader: Fix out of memory in enumerate phys devsLenny Komow
Change-Id: I9f25875f065f7db58f9c8841965ba1f2f974de90
2016-12-22loader: Update term phys devices dynamicallyLenny Komow
Change-Id: Ib474a7af431746d9e820e188681d2a9310e94a0d