Age | Commit message (Collapse) | Author | Files | Lines |
|
- Update known-good
- Generate source
|
|
closes #1318, #1319
|
|
- Update known-good
- Generate source
|
|
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>
|
|
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>
|
|
Allows use of add_subdirectory with the loader
This is the same approach used by the validation layers.
|
|
asm_offset.c only makes sense for an executable
|
|
Next SDK we will be changing branch/tag naming scheme from
sdk-1.x.yyy to vulkan-sdk-1.x.yyy
|
|
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
|
|
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.
|
|
|
|
|
|
pulls uasm from msys2
Signed-off-by: Christopher Degawa <ccom@randomderp.com>
|
|
Signed-off-by: Christopher Degawa <ccom@randomderp.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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.
|
|
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>
|
|
- Update known-good
- Generate source
|
|
Signed-off-by: Joyce Brum <joycebrum@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
- Update known-good
- Generate source
|
|
The warning message about the binary having the wrong bitness for
ICD's was wrongly stating it was about layers having the wrong
bitness.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
Reverts KhronosGroup/Vulkan-Loader/pull/670 which produces an
invalid .pc file
closes #1278
|
|
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.
|
|
- Update known-good
- Generate source
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
- Update known-good
- Generate source
|
|
- Update known-good
- Generate source
|
|
https://github.com/google/googletest/pull/4288
|
|
Android isn't supported
|
|
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|