Enable /W4 errors on MSVC and fix all corresponding errors.
Refactor the CMakeLists.txt to allow for compiling with clang-cl. This required
figuring out that -Wall -Wextra mangle the set of warnings used. The solution
is to use /W4 instead when compiling with clang-cl on Windows.
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.
Gcc 11.2 build was failing to build with the GoogleTest version
that was being built. So bump to next version of GoogleTest with
fixes (GoogleTest release-1.11.0), but that also required changing
the build directory to build GoogleTest in so update our Makefiles
to build in the new folder as well.
Was out of date with the feature set VVL contained.
Fixed an issue where backslashes were used on windows, which caused issues when
cmake decided to escape a string one more time than necessary.
"C:\\Users\\..." -> "C:\Users" which has a `\U` escape symbol mucking things up.
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.