Update the loader VUID messages that were added in validating handles
so that thye include the validation flag when going through debug utils
messenger.
Fix some loader terminator functions for instance physical device
functions (that were pre-Vulkan 1.1). At that point in the API, we
didn't treat VkPhysicalDevices like VkDevices. Now, you must first
query the device for extension support for even VkPhysicalDevice calls.
Back then, the loader had to emulate the functionality.
Added tests to validate many of these functions.
Validate the Vulkan dispatchable handles (VkInstance, VkPhysicalDevice, etc) for
any trampoline functions the loader uses to query the dispatch table from.
This is so we can at least report errors before something bad happens.
Also, add tests to the test framework to catch this case. Right now they simply
check to make sure we aborted, but they don't know why the loader aborted.
Eventually, we need to come back and check the loader messages and make sure it
aborted for the reasons we want.
Fix a generator warning in dispatch_table_helper_generator.py where a compare was
the wrong type.
Fixes GH Issue #64.
The loader.rc file was used to set the version used in the loader. However,
this was always done manually (either by hand or a script to edit the file).
This commit makes the version number needed generated automatically based on
the current generated header version or uses a provided version, such as in
the case of SDK builds with a 'build revision', eg "1.2.191.2".
This commit also renames the atrosciously named
loader_generated_header_version_generator to a nicer
loader_versioning_generator.
Moves the many instances of #define _GNU_SOURCE into a single cmake call which
sets the macro in all translation units for the vulkan library. This way it
cannot be forgotten and makes behavior across the library consistent.
This changes the loader to always set the version to the one which was used when
generating the source files that are checked into the repo, instead of using the
version gotten from the Vulkan-Headers find cmake file.
Change-Id: Id0955ddfd10e35e0f358f5a77799d8baa4992b04
The loader_log messages were using the DEBUG_REPORT log levels
which just happened to coincide with the existing LOADER_ log levels.
Going forward, to add layer logging in its own level, this would not
have worked.
- Update known-good
- Generate source
- Fix version parsing in FindVulkanHeaders.cmake
- Add to VK_ENABLE_BETA_EXTENSIONS to GN build to pick up beta
VkObjectType values
Change-Id: Ied4e4e71017e48d344b1c9cacf037ae989aceec9
QNX_screen moved from generated code to wsi.c but the generator was not run
so the old code wasn't deleted. This commit rectifies that.
Change-Id: Iba9cc3e6871605f50159acf7b6a97428f940b49e
Changes:
- Updated `known_good.json`
- Generated new source files
- Added `VK_USE_PLATFORM_SCREEN_QNX` to platform list in
`common_codegen.py`
Change-Id: I2ef49799434ff31ff81680413a8700caea46593c
Changes:
- Updated `known_good.json`
- Propagated `loader_genvk.py` changes
- Generated new source files
- Modified `.gitattributes` to ensure generated source files should
always have LF line endings because that is how it will be generated on
all platforms going forward. Upstream change in Vulkan-Docs explicitly
generates code with LF line endings.
- Removed automatic CRLF to LF conversion git setting in `.appveyor.yml`
Change-Id: I1ca36b80dfabe83fa16e36116d1ad43c0a65ff78
Generated functions stubs had either a return type of void or
VkResult. Recent vulkan extensions had functions which returned
uint32_t, uint64_t, and VkDeviceAddress. The
dispatch_table_helper_generator didn't account for this and GCC would
complain about mismatching types. While likely not an issue, it did
create very noisy builds.
Modified files:
loader/generated/vk_dispatch_table_helper.h
scripts/dispatch_table_helper_generator.py
Change-Id: Iba229093461b75fd6ccd195cf60e200a22b8678f