summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-10-16build: Update to header 1.3.268upstream/1.3.268upstreamMike Schuchardt3-4/+4
- Update known-good - Generate source
2023-10-09cmake: Fix vulkan.pc regressionsJuan Ramos2-1/+11
closes #1318, #1319
2023-10-06build: Update to header 1.3.267Mike Schuchardt4-8/+8
- Update known-good - Generate source
2023-10-05github: split mingw-no-asm jobChristopher Degawa1-0/+32
Splits the mingw-no-asm job into an explicit -D USE_MASM=OFF and one without to test the automatic detection of MASM. Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-05loader: Add check for working MASM compilerChristopher Degawa1-6/+35
CMake's detection of MASM is very broken, especially if not using MSVC. This adds a check to see if MASM is working, and if not, disables it, going back to the fallback path, as intended. Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-05cmake: Don't REQUIRE find_package(VulkanHeaders)Juan Ramos2-3/+2
Allows use of add_subdirectory with the loader This is the same approach used by the validation layers.
2023-10-04gn: asm_offset.c shouldn't be compiledJuan Ramos1-1/+0
asm_offset.c only makes sense for an executable
2023-10-04docs: New SDK branch conventionJuan Ramos1-3/+3
Next SDK we will be changing branch/tag naming scheme from sdk-1.x.yyy to vulkan-sdk-1.x.yyy
2023-10-04cmake: Remove CMAKE_INSTALL_INCLUDEDIR_PCJuan Ramos2-6/+1
Currently this just will default to `include` IE it will default to system includes. Which gcc already searches for: https://stackoverflow.com/a/19839946/19739129 Now vulkan.pc will more closely match VulkanLoaderConfig.cmake
2023-10-04cmake: Remove PRIVATE_LIBS from vulkan.pc.inJuan Ramos2-13/+4
We don't ship APPLE AND BUILD_STATIC_LOADER so supporting the pkg-config for it is unneccessary and error prone. This makes both configuration files consistent.
2023-10-04cmake: Cleanup package config codeJuan Ramos3-33/+32
2023-10-04Remove unnecessary comment in build.ymlCharles Giessen1-2/+0
2023-10-04github: re-enable normal mingw buildChristopher Degawa1-30/+36
pulls uasm from msys2 Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-04actions: Re-add -DUSE_MASM=OFFChristopher Degawa1-1/+1
Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-04loader/asm_offset: Add __USE_MINGW_ANSI_STDIOChristopher Degawa1-0/+6
This fixes warnings generated when compiling with mingw-w64 regarding printf format specifiers that are not available with base msvcrt. Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-04loader: Add uasm as an alternative name for jwasmChristopher Degawa1-1/+1
uasm is a drop-in replacement for jwasm most of the time, but doesn't always provide a binary named jwasm (such as on archlinux). Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-04loader: Fix cross-compiling with jwasmChristopher Degawa1-16/+9
fixes a few issues when cross-compiling from linux to windows using mingw-w64. Particularly with the result of jwasm not being used in the library. Additionally, allows running the generated asm_offset binary with wine, if the user provided the wrapper in their toolchain with `-DCMAKE_CROSSCOMPILING_EMULATOR=wine`. Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-10-02Fix problems detected by CodeQL static analysisCharles Giessen4-25/+28
3 types of issues were found: * Incorrect format specifiers * Not providing required format specifies * Using alloca in a loop There are multiple instances of alloca in loops, but to fix them would require significant refactoring. This commit includes 1 move of alloca inside a for loop to the outside, but this is because the logic was redoing work in a for loop that could have been done once at the start of the function.
2023-10-02loader/cJSON: Prefix/mark static/remove symbolsChristopher Degawa4-470/+106
Prefixes the symbols that are used outside the file with `loader_` to match the others. Marks symbols that are not used outside as static. Removes the symbols that are not used at all. Prevents conflicts with other libraries that might also use cjson. This may cause issues if the internal checkout of cJSON is updated, in that case, it may be simpler to just prefix all of cJSON's symbols with `loader_cJSON_`. Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2023-09-29build: Update to header 1.3.266Mike Schuchardt5-4/+120
- Update known-good - Generate source
2023-09-28feat: enable codeqlJoyce Brum1-0/+101
Signed-off-by: Joyce Brum <joycebrum@google.com>
2023-09-26XCode fix - warnings as errors and unused parameter triggers itRichard S. Wright Jr1-0/+1
2023-09-26Tweaked CMakeLists.txt for better organizationRichard S. Wright Jr1-6/+6
2023-09-26removed toolchainRichard S. Wright Jr1-1036/+0
2023-09-26WIP: Added defines for iOSRichard S. Wright Jr1-1/+1
2023-09-26WIP: Loader seems to work on iOSRichard S. Wright Jr4-0/+1051
2023-09-25build: Update to header 1.3.265Mike Schuchardt3-4/+4
- Update known-good - Generate source
2023-09-21Fix warning message refering to layers instead of ICDsCharles Giessen1-1/+1
The warning message about the binary having the wrong bitness for ICD's was wrongly stating it was about layers having the wrong bitness.
2023-09-17Use backtick instead of single quote in Loader DebuggingCharles Giessen1-1/+1
Surrounding text with ~ causes markdown to format the text with strike through, which is not intended. Surrounding the ~ with backticks instead of single quotes fixes it.
2023-09-15Check correct magic value in device dispatch tableCharles Giessen2-8/+10
The check for a correct magic value in the device dispatch table used LOADER_MAGIC_NUMBER instead of DEVICE_DISP_TABLE_MAGIC_NUMBER. This causes every device creation to emit the 'invalid magic value' message, which is wrong. This commit fixes that, as well as adds the expected value to the log message.
2023-09-13cmake: Add find_package supportJuan Ramos1-2/+9
2023-09-13cmake: Simplify install codeJuan Ramos1-4/+1
2023-09-12cmake: Only search for MASM when using MSVCsfan52-1/+4
2023-09-12cmake: Fix MinGW vulkan.pcJuan Ramos1-10/+7
Reverts KhronosGroup/Vulkan-Loader/pull/670 which produces an invalid .pc file closes #1278
2023-09-12Add device dispatch table magic value checkCharles Giessen8-24/+131
The device dispatch table has a magic value to ensure consistency, but there was no message logged in case the magic value was corrupted. This commit adds that check, fixes the message being printed for the instance magic value check, and adds tests to ensure they are contining to be checked in the future.
2023-09-11build: Update to header 1.3.264Mike Schuchardt3-4/+4
- Update known-good - Generate source
2023-09-08Make test_layer delete destroyed devicesCharles Giessen2-10/+10
Destroyed devices need to be removed from the test_layer's created_devices vector, so that it doesn't accidentally mistake dead devices for alive ones when checking for whether a device extension is supported or not. This caused multiple days of debugging headache as it caused sporadic test failures due to the re-use of VkDevice handle values (which is caused by the memory manager reusing allocations). Since a second VkDevice could share the handle value of the first, and the first wasn't removed from the vector, test_layer would use the data assocated with the first device by mistake.
2023-09-08Add Debug extension support to test layerCharles Giessen3-50/+356
Debug utils, debug report, and debug marker are now supported directly in the test layer, allowing easy testing of the behavior of layers which support these debug extensions. This allows testing the matrix of combinations between drivers, layers, and loader support for these debug extensions. This commit also adds a 'injected_extension' concept into the test_layer, which allows recreating the behavior of layers which modify the extension list returned by the driver.
2023-09-08Fix incorrect handling of Debug Marker functionsCharles Giessen4-47/+85
The implementation for VK_KHR_maintenance_5 exposed a bug in how the function for debug_marker functions were gotten. The bug was to only check if a driver supports a physical device when querying for device function pointers, which ignores the possibility of a layer supporting a device extension. This is an issue for VK_EXT_debug_marker, which requires trampoline functions to properly unwrap data passed in, resulting in the various debug marker functions returning NULL instead of a valid function pointer.
2023-09-08MSAN fixesShahbaz Youssefi2-2/+2
2023-09-05build: Update to header 1.3.263Mike Schuchardt3-4/+4
- Update known-good - Generate source
2023-08-25build: Update to header 1.3.262Mike Schuchardt3-4/+4
- Update known-good - Generate source
2023-08-25cmake: Fix gtest CMake warningJuan Ramos1-1/+1
https://github.com/google/googletest/pull/4288
2023-08-25cmake: Cleanup Threads::Threads logicJuan Ramos1-4/+1
Android isn't supported
2023-08-25cmake: Fail when building for AndroidJuan Ramos1-1/+1
2023-08-241. Update build-qnx content to make it buildable again.Mike Gorchak4-10/+12
2. Switch __QNXNTO__ macro check to __QNX__ During last 23 years the QNX Neutrino microkernel was active, __QNXNTO__ macro belongs to it. Now QNX Muon microkernel is under development, so __QNX__ macro covers both versions: Neutrino and Muon. First public announce of QNX Muon was here: https://blogs.blackberry.com/en/2023/04/get-in-the-sdv-podcast-from-blackberry-season-2-episode-3
2023-08-18Add support for AppleClang and iOS cross compilationCharles Giessen5-16/+38
Compiling for iOS on an intel mac failed due to not handling the locations of gen_defines.asm and asm_offset.s when running under AppleClang. This solution works for the toolchain file used during development but may not work in other situations. iOS does not support secure_getenv, which is fine, except that the cmake code check_function_exists seems to think it is supported, causing compilation to fail. Just hardcoding secure_getenv to not be supported is enough for the unix shim logic to compile. The compilation revelaed a few issues in the test code, like not using [[maybe_unused]] and a signed/unsigned comparison.
2023-08-09Document VK_DRIVER_FILES ability to look in foldersCharles Giessen5-10/+67
Orinigally VK_ICD_FILENAMES was documented to only be able to use full paths to ICD Manifest files. This is untrue, as VK_ICD_FILENAMES, and its replacement VK_DRIVER_FILES is able to find drivers using full paths as well as paths to folders containing manifest files. This commit amends the documentation to reflect that capability as well as adding a test for that use case.
2023-08-09Add VK_LOADER_LAYERS_ALLOW environment variable.Charles Giessen11-53/+629
This new environment variable prevents the VK_LOADER_LAYERS_DISABLE env-var from applying to layers in the VK_LOADER_LAYERS_ALLOw env-var. The purpose of it is to act like VK_LOADER_LAYERS_ENABLE in regards to VK_LOADER_LAYER_DISABLE without force enabling the layers. That way, implicit layers which normally would only be enabled in certain circumstances (eg their enable_environment is set) can be allowed while still disallowing other implicit layers.
2023-08-09Move filter Env-Var parsing to top level functionsCharles Giessen5-78/+93
The loader was querying the layer environment variable filters multiple times during instance creation. The solution is to move the queries out of the function that use them and do them once at the start of every API call that needs them. That way the filters can be passed into each function and shared.