The library originates from Vulkan-ValidationLayers, but is being moved
into this repo to make it easier for others to use it.
The library has also been modified to be header only and C compatible,
which allows more developers to be able to use it. This does require some
changes, but only affects the vkuFormatElementSize and vkuFormatTexelSize
functions which used default parameters. Two new functions,
vkuFormatElementSizeWithAspect and vkuFormatTexelSizeWithAspect have been
added to handle the non-default image aspect case (the default was COLOR_BIT).
Renaming was done using the following convention:
* public header files begin with `vk_`
* enums begin with VKU_FORMAT_
* functions begin with vku
CI will fail now if we ship a .h / .hpp file that doesn't use
the correct prefix.
I also documented the precedent for this prefix and the existing
integration testing.
After VK_EXT_layer_settings spec review, this new type
was judge unnecessary because it could be express by
three uint32. However, it still remains useful for the
layer settings library to correctly interpret formated
strings that represent "framesets".
Fixes the vk_layer_dispatch_table.h header file so that they can be used
in other projects. The contents of this header and
vk_dispatch_table_helper.h have been moved into a new header
vul_dispatch_table.h.
The structs VulDeviceDispatchTable and VulInstanceDispatchTable
struct contain function pointers for the device and instance, respectively.
The functions vul_init_device_dispatch_table and
vul_init_instance_dispatch_table fill out the aforementioned structs,
making the task of setting up the disptach table in a layer much simpler.
Pulling in latest changes from VVL
Use BUILD_TESTS instead of VUL_TESTS. While it's good practice to
prefix variable names it makes updating this code more difficult.
Also since tests can only ever be enabled if the project is top
level, it doesn't affect add_subdirectory users.
Other misc. CMake cleanup
- We need to use a different number and name to avoid conflict with the old extension
- Improve vlInitLayerSettings API to map GetProperties approach
- Settings may have no value